【文献速读】Inception发展和1X1卷积核

认识1X1卷积核

  在速读文章前,我们要认识一下1X1卷积核。常用的卷积核有1X1,3X3,5X5(奇数)。根据一些文章的经验,更大的卷积核没有太大的意义。
  卷积层输入输出形状的计算公式:
N = ( W − F + 2 P ) / S + 1 N = (W − F + 2P )/S+1 N=(WF+2P)/S+1
  卷积核的形状为1X1,令步长 S = 1 S=1 S=1,令 p a d d i n g = 1 padding=1 padding=1
N = ( W − 1 + 2 × 0 ) / 1 + 1 = W N = (W −1 + 2\times 0)/1+1=W N=(W1+2×0)/1+1=W
  输入与输出等宽等长,输出的通道数等于卷积核的个数。因此,1X1卷积核只改变通道数,不改变原图像测的长宽,较好的保留了原图像的特征图的尺度。这里考虑两种情况。1X1卷积核的通道数小于输入的通道数时,卷积层发挥了降维的作用(为什么在network in network中要降维,当然是减少卷积核参数,降低运算复杂度。这里涉及到卷积核参数计算的公式 F × F × C i n × C o u t F \times F\times C_{in}\times C_{out} F×F×Cin×Cout 。);反之,升维。由于1X1卷积核只在输入图像的通道上做线性组合,实现了通道间的信息交互。
  回到Inception V1的文献 Going Deeper with Convolutions (2014)
  图像中突出部分的大小差别很大。按照前期之前的前馈CNNs,在同一层相同大小的卷积核不太可能提取到有效特征。以下图的狗狗图像为例,在不同图片中,“狗”的位置,“狗”所占据区域的像素大小都不同。有没有一种网络结构可以在每次特征提取(相同层级)中提取不同不同尺寸的特征呢?因此Inception V1产生了。【文献速读】Inception发展和1X1卷积核
  左图为原始的Inception模块(最大池化是为了将子层的输入级联起来),为了减少卷积核参数,节约计算资源,又进一步提出了右图的结构。

【文献速读】Inception发展和1X1卷积核

a图 b图

【文献速读】Inception发展和1X1卷积核
【文献速读】Inception发展和1X1卷积核

Inception V2

文献:Rethinking the Inception Architecture for Computer Vision
  提出问题:

  •     减少特征的表征性瓶颈。直观上来说,当卷积不会大幅度改变输入维度时,神经网络可能会执行地更好。过多地减少维度可能会造成信息的损失,这也称为「表征性瓶颈」。
  •     使用更优秀的因子分解方法,卷积才能在计算复杂度上更加高效。
      解决办法:
      从Inception V1到Inception V2,使用2个3x3的卷积代替5x5的卷积,这样既可以获得相同的视野(经过2个3x3卷积得到的特征图大小等于1个5x5卷积得到的特征图),还具有更少的参数,还间接增加了网络的深度,如下图。
    【文献速读】Inception发展和1X1卷积核
      将大的卷积核进一步分解成小的卷积核是否在增加深度的同时,进一步减少了参数总量呢?因此文章引入了几个堆叠1Xn和nX1的非对称卷积来替代3X3卷积核。
    【文献速读】Inception发展和1X1卷积核

   (未完待续)

参考

Inception深度网络家族盘点 | Inception v4 和Inception-ResNet未来走向何方 ?