AI智能
改变未来

Googlenet-V3


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、标签平滑:避免网络过度自信,减轻过拟合

启发点

  1. 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)

  2. 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)

  3. 非对称卷积分解在分辨率为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)

  4. 在网络训练初期,辅助分类层的加入并没有加快网络收敛,在训练后期,才加快网络的收敛
    (是否可针对性的设定训练方式?论文中并未详细说明这一点)
    Interestingly, we found that auxiliary classifiers did not result in improved convergence early in the training (4. Utility of Auxiliary Classifiers p1)

  5. 移除两个辅助分类层中的第一个,并不影响网络性能
    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)

  6. 标签平滑参数设置,让非标签的概率保持在 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)

赞(0) 打赏
未经允许不得转载:爱站程序员基地 » Googlenet-V3