Inception V2 & Inception V3

Paper : Rethinking the Inception Architecture for Computer Vision
Code : torchvision

摘要

Inception 在缩小参数规模的道路上越走越远,之前遇到的卷积核大多是方形卷积核的,而这篇论文尝试使用长宽不同的长方形卷积核进行进一步的参数规模压缩。

网络结构

通用的网络模型设计原则

  1. 设计神经网络时应当避免表示瓶颈,即使是在网络的前几层也一样。也就是说,网络结构从输入层到输出层,特征的规模应当逐渐的减小。层与层之间进行信息的传输时,要避免出现剧烈的数据压缩。
  2. 高维度特征在网络局部处理更加容易。在卷积网络中增加非线性可以解耦合特征,训练更快。
  3. 空间聚合可以以低纬度嵌入进行,这样不会影响特征的表示能力。例如,在进行大尺度卷积(3x3)时,在空间聚合前,先对输入进行降维,这样不会带来严重影响。
  4. 平衡宽度和深度。增加宽度或深度都会带来性能上的提升,两者同时增加带了并行提升,但是要考虑计算资源的合理分配,这也就是Inception V1的核心观点:深度不能加大的时候考虑增大宽度。

在Inception V1中已经介绍了引入1*1卷积核来减少参数规模的操作,下面来介绍新的降低参数规模的方法。VggNet一文中已经介绍了如何使用两个3*3的卷积核代替一个5*5的卷积核,简要的用图展示一下为什么两个3*3的卷积核的感受野与5*5的卷积核的感受野相同

Inception V2 & Inception V3

使用这种方法,我们首先将Inception Module 改造成如下的形式

Inception V2 & Inception V3

而类似的,我们可以使用一个1*n的卷积核和一个n*1的卷积核代替一个n*n的卷积核

Inception V2 & Inception V3

进一步对Inception module进行改造,得到的结构如下

Inception V2 & Inception V3

在实践过程中,作者发现这种模块放在网络的前几层并没有太好的效果,而是在feature map的长宽适中时(12~20)才能发挥出较好的效果。

对该种结构我们还可以再次采用Inception的思想:如果担心多层叠加带来梯度反向传播不成功的话,我们可以变深度为宽度,得到如下的一种结构

Inception V2 & Inception V3

这篇论文还讨论了之前提到的辅助分类器的作用。它否定了之前认为辅助分类器可以帮助有用的梯度传递会浅层,在这篇论文中作者认为,辅助分类器的作用类似于一个正则项,有它没它对于参数收敛的速度没什么影响。

为了避免设计原则中提到的表示瓶颈问题,在使用MaxPool或是AvgPool进行池化缩小特征的长宽之前,我们应当先提高特征的通道数。例如输入和输出具有同样的规模,但是左侧的结构更可能引入表示瓶颈。

Inception V2 & Inception V3

这样带来的代价就是右侧结构会耗费更多的计算资源。因此,我们尝试对Inception Module进行进一步的修改,既可以避免表示瓶颈,也可以节约计算资源。

Inception V2 & Inception V3

将以上的几种Inception Module组合起来,形成了Inception V2的网络模型

Inception V2 & Inception V3

Inception V3 与Inception V2相比只是引入了batch norm的技术,事实上Inception V2和V3哪个版本对应哪个模型比较混乱,可以简单记成Inception V2/V3。

论文的最后,作者引入了一个新的技术——标签平滑。作者认为使用one-hot编码的标签与交叉熵损失函数搭配进行训练的话,太过于依赖正确的那一项的输出,而忽略了其他的项的输出。作者分析了交叉熵损失过于自信导致过拟合的原因,提出一种机制鼓励模型减少这种自信。

对于标签为y的样本,将标签分布q(kx)=δk,yq(k|x) = \delta _{k,y} 替换为

q(kx)=(1ϵ)δk,y+ϵu(k) q'(k|x) = (1-\epsilon) \delta_{k,y}+\epsilon u(k)

在实验中,使用均匀分布u(k)=1Ku(k) = \frac{1}{K},这样式子变为

q(k)=(1ϵ)δk,y+ϵK q'(k) = (1-\epsilon)\delta_{k,y} + \frac{\epsilon}{K}

交叉熵也就变为

H(q,p)=(1ϵ)H(q,p)+ϵH(u,p) H(q',p) = (1-\epsilon) H(q,p) + \epsilon H(u,p)

核心观点

  1. 使用非对称的卷积核(矩形卷积核)进一步减小了参数规模。
  2. 提出了通用的网络模型设计原则,影响了之后的若干篇论文(例如Pyramidal Net)。
  3. 提出了标签平滑化的技术,这种技术在提高网络的准确率上个人感觉效果一般,但是在提高模型的鲁棒性上应该有不错的表现。