序言
Google的Inception网络是卷积神经网络 (CNN) 分类器发展中的一个重要里程碑。
inception前,CNN 只是将卷积层堆叠得越来越深,GO DEEPER。
inception后,CNN花样百出,卷积层的表现力越来越强,NOT ONLY GO DEEPER, BUT ALSO GO STRONGER!
Inception模型进化史-从GoogLeNet InceptionV1到InceptionV4
Inception模型进化史:从GoogLeNet到Inception-ResNet
网络结构
图解
GoogLeNet Inception V1
GoogLeNet InceptionV1
Inception V2
GoogLeNet InceptionV2 【卷积分解(Fatorizing Convolutions)】
Inception V3
GoogLeNet InceptionV3 【卷积分解(Fatorizing Convolutions),与InceptionV2出现在同一篇论文之中】
最重要的改进就是分解,把7x7分解成两个一维的卷积(1x7和7x1),把3x3分解成两个一维的卷积(1x3和3x1)。
Inception V4
GoogLeNet InceptionV4
详解
Inception V1
Inception-v1即大名鼎鼎的GoogLeNet,2014年ImageNet竞赛冠军得主,力压VGG脱颖而出,它的名字也是为了致敬较早的LeNet网络。
【设计网络中间层两个附属loss作用】深度监督策略,paper中描述是为了避免梯度消失,一种正则化手段;
==【1x1卷积核作用】==减少维度,还可修正线性激活(ReLU);
【卷积层之后采用GlobalAveragePooling层而不是全连接层的原因】减少参数量。
Inception V2/V3
核心理念是==【Factorization-因子化】==,既可以加速运算,又可以将一个卷积拆成两个卷积,这样使得网络的深度进一步加深,并且增加了网络的非线性。
1.采用5x5卷积,参数量是5x5=25,而两个3x3卷积的参数量是3x3+3x3=18,参数量减少了28%,但是两者效果是等价的(感受野)。
2.将nxn的卷积分解成1xn和nx1卷积,例如3x3卷积进行分解成1x3和3x1两个卷积,参数量是3x3=9,而1x3和3x1两个卷积的参数量是1x3+3x1=6,参数量减少了33%。
3.不再直接使用max pooling层进行下采样,因为这样导致信息损失较大。paper使用了ShuffleNet网络中也采用的策略:两个并行分支中一个是pooling层,另外一个卷积层,最后将两者结果concat在一起,实现下采样功能。
Inception V4
Inception-v4就是利用残差连接(Residual Connection)来改进v3。同时,提出了
Inception-ResNet算法模型,其中Inception-Resnet-v1对标Inception-v3,而Inception-Resnet-v2对标Inception-v4,两者计算复杂度类似。
创新思想
核心点
Inception V1
1.go deeper ==>> go wider;
2.1X1 convolutions 限制输入通道数量;
3.引入了2个辅助分类器。
Inception V2/V3
1.5×5 卷积使用两个 3×3 卷积代替;
2.n×n卷积分割为1×n和n×1两个卷积。
Inception V4
引入Resnet的shortcut思想
感悟点
1.go deeper多了,可以试试go wider,没准就go stronger了呢,谁知道呢!工作生活中也是同理。
2.Google侧面证明了ResNet的重要意义,大巧若拙。
参考论文
[1]Going deeper with convolutions
[2]Rethinking the Inception Architecture for Computer Vision
[3]Inception-v4, Inception-ResNet and the Impact of Residual Connections on Learning