机器学习/深度学习入门:卷积神经网络零碎知识点

  • 开始的CNN为什么需要固定输入图像的尺寸?

       CNN中的卷积层和全链接层中,卷积层对于图像是没有尺寸限制要求的,全链接层需要固定输入向量的维数,全链接层输入向量的维数对应全链接层的神经元个数,所以如果输入向量的维数不固定,那么全链接的权值参数个数也是不固定的,这样网络就是变化的。而在卷积层,我们需要学习的是11*11的kernal filter 参数个数是固定的。

  • CNN参数和连接个数

特征图边长:(输入图像长+2*padding-卷积核边长+步长)/步长

需要注意的是卷积是向下取整,池化是向上取整

参数个数:(卷积核边长*卷积核长+偏置项即1)*卷积核个数

连接个数:参数个数*特征图大小即(卷积核边长*卷积核长+偏置项即1)*卷积核个数*特征图边长*特征图边长

  • 多通道卷积核计算

对于单通道图像,若利用10个卷积核进行卷积计算,可以得到10个特征图;若输入为多通道图像,则输出特征图的个数依然是卷积核的个数(10个)。 

对于多通道多卷积核来说:

图片:假设图片的宽度为width:W,高度为height:H,图片的通道数为D,一般目前都用RGB三通道D=3,为了通用性,通道数用D表示; 
卷积核:卷积核大小为K*K,由于处理的图片是D通道的,因此卷积核其实也就是K*K*D大小的,因此,对于RGB三通道图像,在指定kernel_size的前提下,真正的卷积核大小是kernel_size*kernel_size*3。 
对于D通道图像的各通道而言,是在每个通道上分别执行二维卷积,然后将D个通道加起来,得到该位置的二维卷积输出,对于RGB三通道图像而言,就是在R,G,B三个通道上分别使用对应的每个通道上的kernel_size*kernel_size大小的核去卷积每个通道上的W*H的图像,然后将三个通道卷积得到的输出相加,得到二维卷积输出结果。因此,若有M个卷积核,可得到M个二维卷积输出结果,在有padding的情况下,能保持输出图片大小和原来的一样,因此是output(W,H,M)。

  • 1*1卷积核作用

1.实现跨通道的交互和信息整合(具有线性修正特性,实现多个feature map的线性组合)

2.特征通道色升维和降维

3.减少网络参数(简化模型)

4.可以实现与全连接层等价的效果。如在faster-rcnn中用1*1*m的卷积核卷积n(如512)个特征图的每一个位置(像素点),其实对于每一个位置的1*1卷积本质上都是对该位置上n个通道组成的n维vector的全连接操作。

5.在保持feature map尺度不变的(即不损失分辨率)的前提下大幅增加非线性特性(利用后接的非线性激活函数),把网络做的很deep。(平均池化是针对每个feature map的平均操作,没有通道间的交互,而1×1卷积是对通道的操作,在通道的维度上进行线性组合)

持续更行中……

猜你喜欢

转载自blog.csdn.net/M_Z_G_Y/article/details/81413852
今日推荐