Inception v1
论文:《Going deeper with convolutions》
在较低的层(靠近输入的层)中,相关单元更侧重提取局部区域的信息。因此使用1x1的特征可以保存这些特征,从而与其他支路提取的特征进行融合。
3x3和5x5的卷积是想要提取不同尺度的特征,3x3卷积和5x5卷积之前的1x1的卷积作用是减少channel,从而降低参数量。
论文中说到之所以使用pooling,是因为pooling操作在目前最好的卷积网络中是必要的,个人理解是pooling操作可以增强网络的平移不变性。
GoogLeNet结构(Inception V1)
输入为224x224的RGB图像,‘#3x3 reduce’和‘#5x5 reduce’表示3x3和5x5卷积之前1x1的卷积核的个数。
为了阻止该网络中间部分梯度消失,作者引入了两个辅助分类器。它们对其中两个 Inception 模块的输出执行 softmax 操作,然后在同样的标签上计算辅助损失。总损失即辅助损失和真实损失的加权和。辅助损失只是用于训练,在推断过程中并不使用。
Inception v2
论文:《Rethinking the Inception Architecture for Computer Vision》
大尺度的卷积往往会造成计算的浪费,因为大尺度卷积可以分解为几个小尺度的卷积,从而减小计算量。例如5x5的卷积可以分解为两层3x3的卷积,而后者的计算量也更小。因此,在inception v2中,大尺度的卷积被分解为小尺度卷积。此外,论文还提出了使用1xn和nx1的两层卷积代替nxn卷积。inception模块之间使用stride=2的卷积来降低尺度,而非pooling操作。
论文提出的几种inception模块如下
Figure 5
Figure 6
Figure 7
GoogLeNet的结构如下
inception之间使用下面模块降低尺度。
Inception v3
作者注意到辅助分类器直到训练过程快结束时才有较多贡献,那时准确率接近饱和。作者认为辅助分类器的功能是正则化,尤其是它们具备 BatchNorm 或 Dropout 操作时。是否能够改进 Inception v2 而无需大幅更改模块仍需要调查。
解决方案:
Inception Net v3 整合了前面 Inception v2 中提到的所有升级,还使用了:
- RMSProp 优化器;
- Factorized 7x7 卷积;
- 辅助分类器使用了 BatchNorm;
- 标签平滑(添加到损失公式的一种正则化项,旨在阻止网络对某一类别过分自信,即阻止过拟合)。
Inception v4
论文:《Inception-v4, Inception-ResNet and the Impact of Residual Connections on Learning》
改论文提出了inception结合ResNet的网络模块。卷积网络参数中标V的,padding使用valid类型。由于论文提出的模块较多,在此方向模块结构,不做详细说明。