Inception-v1
思想: 加宽;多种不同卷积都用上
Inception module 的提出主要考虑多个不同 size 的卷积核能够增强网络的适应力,paper 中分别使用1*1、3*3、5*5卷积核,同时加入3*3 max pooling。
每一层 Inception module 的 filters 参数量为所有分支上的总数和,多层 Inception 最终将导致 model 的参数数量庞大,对计算资源有更大的依赖.解决方法:1*1卷积层既能跨通道组织信息,提高网络的表达能力,同时可以对输出有效进行降维
还有2个细节:
1.中间加入2个loss,保证更好的收敛,有正则化作用;
2.最后一个全连接层之前使用的是global average pooling
InceptionV2: Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift
Inception V2 学习了 VGG 用两个3x3的卷积代替5x5的大卷积,在降低参数的同时建立了更多的非线性变换,使得 CNN 对特征的学习能力更强;
BN 在用于神经网络某层时,会对每一个 mini-batch 数据的内部进行标准化(normalization)处理,使输出规范化到 N(0,1) 的正态分布,减少了 Internal Covariate Shift(内部神经元分布的改变)。
BN 的论文指出,传统的深度神经网络在训练时,每一层的输入的分布都在变化,导致训练变得困难,我们只能使用一个很小的学习速率解决这个问题。而对每一层使用 BN 之后,我们就可以有效地解决这个问题,学习速率可以增大很多倍,达到之前的准确率所需要的迭代次数只有1/14,训练时间大大缩短。而达到之前的准确率后,可以继续训练,并最终取得远超于 Inception V1 模型的性能—— top-5 错误率 4.8%。
Inception-V3
卷积分解(Factorization)
A模型
用了卷积分解
B模型
在不同的层使用的卷积核大小不同,开始使用3*3,当特征图到中,深层特征时不一样
上图只适合中等大小的特征(对于mxm大小的特征m的值在12-20之间)
c模型
上图适合深层特征,在8x8的特征层上,利用这种分解然后聚合的结构来提升高维度的表达能力
Inception-v3中的下采样模块
通常,卷积网络会利用pooling操作来降低特征图的大小。为了避免出现bottleneck现象,在应用Max Pooling或者average pooling之前,可以适当的扩大特征层的维度。
作者同时并行使用卷积和池化操作