2.1 卷积操作的概念
2.2 卷积操作的种类
2.3 卷积操作后特征图谱大小计算公式
3.1 池化操作的作用/为什么要进行池化操作?
3.2 池化操作的种类
3.3 池化操作后特征图谱大小计算公式


2D Convolution: the multi-channel version
拥有多个通道的卷积,例如处理彩色图像时,分别对R, G, B这3个层处理的3通道卷积,如下图:

再将三个通道的卷积结果进行合并(一般采用元素相加),得到卷积后的结果,如下图:


6. 空洞卷积(膨胀卷积)




具体运算过程如下:

第二步,用卷积核1x1x3对三个通道再次做卷积,这个时候的输出就和正常卷积一样,是8x8x1:

这步就是正常的卷积过程,只是卷积核大小为(3x1x1),一个卷积核得到一个特征图;8x8x3 * 1x1x3x1 => 8x8x1。
深度可分离与普通卷积神经网络的区别
添加了一个1*1的卷积核
如果仅仅是提取一个属性,深度可分离卷积的方法,不如正常卷积
随着要提取的属性越来越多,深度可分离卷积就能够节省更多的参数
计算量比较
默认输入图像大小为D*D
默认卷积核大小为K*K
M:输入通道数,N:输出通道数,
普通卷积 = K * K * M * N * D * D
深度可分离卷积 = K *K * M * D * D + M * N * D * D
优化比例 = (K *K * M * D * D + M * N * D * D)/ (K * K * M * N * D * D)=1/N+1/(K * K)
总结
==========
DSC作为普通卷积的一种替代品,它的最大优点是计算效率非常高。
因此使用DSC构建轻量级模型是当下非常常见的做法。
不过DSC的这种高效性是以低精度作为代价的。
===========
经过某层卷积操作后的特征图大小计算方式:
====
h1代表输入图像的高度,w1代表输入图像的宽度,k代表卷积核大小,s代表步长
====
h2、w2分别代表输出的特征图像高度和宽度
====
h2 = (h1-k+2padding)/s + 1
w2 = (w1-k+2padding)/s + 1
空洞卷积的等效卷积核大小
h1代表输入图像的高度,k代表卷积核大小,s代表步长,d为diarate参数
h2代表输出的特征图像高度
=====
h2=1+[h1-(k*d-1)+2padding]/s
普通卷积:
3x3x3x4=108
3x3是卷积核尺寸,3是输入图片通道数目,4是输出卷积核的个数。
====================
深度可分离卷积:
DW:3x3x3x1=27
这里卷积核个数其实只设置为1。会形成3张feature map
PW:1x1x3x4=12
1x1为卷积核的尺寸,3为上一层feature map的数量,4为最终需要的维度。其实这里我们也得到了4维的feature map。
total: 27+12=39
明显可以看到,深度可分离卷积计算量比普通卷积小很多,只有其近三分之一的计算量。
池化层大大降低了网络模型参数和计算成本,也在一定程度上降低了网络过拟合的风险。概括来说,池化层主要有以下4点作用:
1.增大网络感受野
2.抑制噪声,降低信息冗余
3.降低模型计算量,降低网络优化难度,防止网络过拟合
4.使模型对输入图像中的特征位置变化更加鲁棒
1. Max Pooling(最大池化)
2. Average Pooling(平均池化)
3.Global Average Pooling(全局平均池化)
作用
在卷积神经网络训练初期,卷积层通过池化层后一般要接多个全连接层进行降维,最后再Softmax分类,这种做法使得全连接层参数很多,降低了网络训练速度,且容易出现过拟合的情况。在这种背景下,M Lin等人提出使用全局平均池化Global Average Pooling来取代最后的全连接层。用很小的计算代价实现了降维,更重要的是GAP极大减少了网络参数(CNN网络中全连接层占据了很大的参数)。
全局平均池化是一种特殊的平均池化,只不过它不划分若干矩形区域,而是将整个特征图中所有的元素取平均输出到下一层。
作为全连接层的替代操作,GAP对整个网络在结构上做正则化防止过拟合,直接剔除了全连接层中黑箱的特征,直接赋予了每个channel实际的类别意义。
使用GAP代替全连接层,可以实现任意图像大小的输入,而GAP对整个特征图求平均值,也可以用来提取全局上下文信息,全局信息作为指导进一步增强网络性能。
论文地址: https://arxiv.org/pdf/1312.4400.pdf%20http://arxiv.org/abs/1312.4400
代码链接: https://worksheets.codalab.org/worksheets/0x7b8f6fbc6b5c49c18ac7ca94aafaa1a7
4. Mix Pooling(混合池化)
为了提高训练较大CNN模型的正则化性能,受Dropout的启发,Dingjun Yu等人提出了一种随机池化Mix Pooling的方法,随机池化用随机过程代替了常规的确定性池化操作,在模型训练期间随机采用了最大池化和平均池化方法,并在一定程度上有助于防止网络过拟合现象。
其中,是0或1的随机值,表示选择使用最大池化或平均池化,换句话说,混合池化以随机方式改变了池调节的规则,这将在一定程度上解决最大池和平均池所遇到的问题。
混合池化优于传统的最大池化和平均池化方法,并可以解决过拟合问题来提高分类精度。
此外该方法所需要的计算开销可忽略不计,而无需任何超参数进行调整,可被广泛运用于CNN。
====
h1代表输入图像的高度,w1代表输入图像的宽度,k代表卷积核大小,s代表步长
====
h2、w2分别代表输出的特征图像高度和宽度
====
h2 = (h1-k) /s + 1
w2 = (w1-k) /s + 1