Googlenet-V3
论文题目:Rethinking the Inception Architecture for Computer Vision(重新思考计算机视觉中的 Inception 结构)
作者:Christian Szegedy etc.
单位: Google Inc.
时间: 2015
研究背景
1、基于ILSVRC比赛提出
2、相关研究:Goolgnet-v1、Goolgnet-v2、VGG
Goolgnet-v1:采用多尺度卷积核,1×1卷积操作,辅助损失函数,实现更深的22层卷积神经网络,夺得ILSVRC-2014 分类和检测冠军,定位亚军
Goolgnet-v1:在v1基础上加入BN层,并将并将55卷积全面替换为2个33卷积堆叠的形式,进一步提高模型性能
VGG网络模型大,参数多,计算量大,不适用于真实场景
研究成果
1、提出Inception-V2 和 Inception-V3, Inception-V3模型获得 ILSVRC 分类任务 SOTA
2、提出4个网络模型设计准则,为模型设计提供参考
3、提出卷积分解、高效降低特征图分辨率方法和标签平滑技巧,提升网络速度与精度
研究意义
1、总结模型设计准则,为卷积神经网络模型设计提供参考
2、提出3个技巧,结合Inception,奠定Inception系列最常用模型——Inception-V3
**补充说明:**GoogLeNet-V2(论文) 不是 Inception-V2, Inception-V2是GoogLeNet-V3(论文)中提出的
摘要
摘要核心:
1、 介绍背景:自2014年以来,深度卷积神经网络成为主流,在多个任务中获得优异成绩
2.、提出问题:目前精度高的卷积神经网络,参数多,计算量大,存在落地困难问题
3.、解决问题:本文提出分解卷积及正则化策略,提升深度卷积神经网络速度和精度
4.、本文成果:单模型+single crop,top-5, 5.6%; 模型融合+multi-crop,top-5,3.5%
网络设计准则
4个网络结构设计准则
通过大量实验得出的结论,并无理论证明
1、尽量避免信息瓶颈,通常发生在池化层,即特征图变小,信息量减少,类似一个瓶颈
2、采用更高维的表示方法能够更容易的处理网络的局部信息
3、大的卷积核可以分解为数个小卷积核,且不会降低网络能力
4、把握好深度和宽度的平衡
卷积分解
卷积分解(1):大卷积核分解为小卷积核堆叠
1个55卷积分解为2个33卷积
参数减少 1 – (9+9)/25 = 28%
卷积分解(2):分解为非对称卷积(Asymmetric Convolutionals)
1个nn卷积分解为 1n卷积 和 n1卷积堆叠
对于33而言,参数减少 1 – (3+3)/9 = 33%
**注意事项:**非对称卷积在后半段使用效果才好,特别是特征图分辨率在12-20之间,本文在分辨率为17*17的时候使用非对称卷积分解
辅助分类层
辅助分类层再探讨
GoogLeNet-V1中提出辅助分类层,用于缓解梯度消失,提升低层的特征提取能力
本文对辅助分类层进行分析,得出结论
1、辅助分类层在初期起不到作用,在后期才能提升网络性能
2、移除第一个辅助分类层不影响精度
3、辅助分类层可辅助低层提取特征是不正确的
4、辅助分类层对模型起到正则的作用
5、googlenet-v3在17*17特征图结束接入辅助分类
第一个辅助分类层结构图
高效特征图下降策略
传统池化方法存在信息表征瓶颈( representational bottlenecks)问题(违反模型设计准则1),即特征图信息变少了(如图所示)
简单解决方法:先用卷积将特征图通道数翻倍,再用池化
存在问题:计算量过大
解决方法:用卷积得到一半特征图,用池化得到一半特征图
高效特征图分辨率下降策略:
用卷积得到一半特征图,用池化得到一半特征图
用较少的计算量获得较多的信息,避免信息表征瓶颈( representational bottlenecks)
该Inception-module用于35×35下降至17×17
以及17×17下降至8×8
标签平滑
传统的One-hot编码存在问题——过度自信,导致过拟合
提出标签平滑,把One-hot中概率为1的那一项进行衰减,避免过度自信,衰减的那部分confience平均分到每一个类别中
举例:4分类任务,Label = (0, 1, 0, 0)
Label Smoothing = (0.001/4,1−0.001+ 0.001/4 , 0.001/4 , 0.001/4 ) = (0.00025, 0.99925, 0.00025 , 0.00025 )
标签平滑公式
交叉熵(Cross Entropy):
One-hot:q为one-hot向量, eg:(0, 1, 0, 0)
Label Smoothing: 将q进行标签平滑变为q′,让模型输出的p分布去逼近q′
q^′(k│x)=(1−ε)δ_k,y+εu(k) ,其中u(k) 为一个概率分布,这里采用均匀分布,则得到
q^′(k│x)=(1−ε)δ_k,y+ε/K
标签平滑后的交叉熵损失函数:
One-hot:q为one-hot向量, eg:(0, 1, 0, 0)
Label Smoothing: 将q进行标签平滑变为q^′, 让模型输出的p分布去逼近q^′
q^′(k│x)=(1−ε)δ_k,y+εu(k) ,其中u(k) 为一个概率分布,这里采用均匀分布,则得到
q^′(k│x)=(1−ε)δ_k,y+ε/K
标签平滑后的交叉熵损失函数:
Inception-V2/V3
Inception-V2
针对V1主要变化:
1、采用3个3 * 3卷积替换1个7 * 7卷积,并且在第一个卷积就采用stride=2来降低分辨率
2、第二个3个3 * 3卷积,在第2个卷积才下降分辨率
3、 第一个block增加一个inception-module,第一个inception-module只是将5 * 5卷积替换为2个3 * 3卷积
4、第二个block,处理17 * 17特征图,采用非对称卷积
5、第三个block,处理8*8特征图,遵循准则2,提出拓展的卷积
6、最后输出2048个神经元,V1是1024个神经元
Inception- V3
InceptionV3:在InceptionV2基础上改进4点
1、采用RMSProp优化方法
2、采用Label Smoothing正则化方法
3、采用非对称卷积提取17*17特征图
4、采用带BN的辅助分类层
低分辨率图像分类策略
低分辨率图片如何分类?
低分辨率图片分类在目标检测中广泛应用,而如何有效对低分辨率图像进行分类值得思考
本文方案:
将第一个卷积层stride=2改为stride=1,用于151151的图像
将第一个卷积层stride=2改为stride=1,移除第一个池化层,用于7979的图像
借鉴思路:修改网络模型头部stride和池化,来处理低分辨率图片,
可尽可能的保留原网络模型结构,不损失网络精度
实验结果对比
GoogLeNet系列对比
对比GoogLeNet-V1、V2,以及Inception-V2和本文采用的4个技巧,得到最优的Inception-V2 BN auxiliary(Inception-V3)
单模型对比
单模型上横向对比,Inception-V3优于目前各模型
图表里top-5 error和top-1 error的数据位置放反了。
多模型融合对比
采用4个Inception-v3进行融合,得到当时SOTA,
Top5-error为 3.58%
论文总结
关键点&创新点
1、非对称卷积分解:减少参数计算量,为卷积结构设计提供新思路
2、高效特征图下降策略:利用stride=2的卷积与池化,避免信息表征瓶颈
3、标签平滑:避免网络过度自信,减轻过拟合
启发点
-
CNN的分类是CNN视觉任务的基础:在分类上表现好的CNN,通常在其它视觉任务中表现也良好
One interesting observation was that gains in the classification performance tend to transfer to significant quality gains in a wide variety of application domains. (1 Introduction p2) -
Google很多论文的最优结果均是通过大量实验得出,一般玩家难以复现
Here we will describe a few design principles based on large-scale experimentation with various architectural choices with convolutional networks. (2 General Design Principles p1) -
非对称卷积分解在分辨率为12-20的特征图上效果较好,且用17和71进行特征提取
In practice, we have found that employing this factorization
does not work well on early layers, but it gives very good results on medium grid-sizes (On m×m feature maps, where m ranges between 12 and 20). On that level, very good results can be achieved by using 1 × 7 convolutions followed by 7 × 1 convolutions (3.2. Spatial Factorization into Asymmetric Convolutions p2) -
在网络训练初期,辅助分类层的加入并没有加快网络收敛,在训练后期,才加快网络的收敛
(是否可针对性的设定训练方式?论文中并未详细说明这一点)
Interestingly, we found that auxiliary classifiers did not result in improved convergence early in the training (4. Utility of Auxiliary Classifiers p1) -
移除两个辅助分类层中的第一个,并不影响网络性能
The removal of the lower auxiliary branch did not have any adverse effect on the final quality of the network. (4. Utility of Auxiliary Classifiers p2) -
标签平滑参数设置,让非标签的概率保持在 10-4 左右
In our ImageNet experiments with K = 1000 classes, we used u(k) = 1/1000 and ε = 0.1. (7. Model Regularization via Label Smoothing p6)