Going Deeper with Convolutions--Googlenet论文总结

Googlenet总结

论文:<>

注:

还需要深入研究Inception的结构,此处只是简单的介绍了一开始的Inception,后来GoogleInception的结构又升级了。

1.     概述

核心:

Ø  引入Inception结构

Ø  应用averagepooling代替FC

Ø  加入辅助softmax防止梯度消失

本文是Google公司的Christian Szegedy等大牛们于2014年提出的较深的网络,网络层数达到22层,其中提出了很多新颖的结构和想法。并在ILSVRC2014中获得了分类和检测第一的好成绩。该网络的特点是提升了计算资源的利用率,可以在保持网络计算资源不变的前提下,通过工艺上的设计来增加网络的宽度和深度,基于Hebbian法则和多尺度处理来优化性能。GoogLeNet用的参数比ILSVRC2012的冠军AlexNet的参数少12倍,但准确率更高。

自2012年Alexnet的提出以来,直到Googlenet提出来之前,大家的主流的效果突破大致是网络更深,网络更宽。但是纯粹的增大网络有两个缺点——过拟合计算量的增加。解决这两个问题的方法当然就是增加网络深度和宽度的同时减少参数。为了减少参数,那么自然全连接就需要变成稀疏连接,但是在实现上,全连接变成稀疏连接后实际计算量并不会有质的提升,因为大部分硬件是针对密集矩阵计算优化的,稀疏矩阵虽然数据量少,但是所耗的时间却是很难缺少。

所以需要一种方法,既能保持网络结构的稀疏性,又能利用密集矩阵的高计算性能。Inception就是在这样的情况下应运而生。

2.     Inception

Inception结构的主要思想是怎样用密集成分来近似最优的局部稀疏结构?

论文首先提出如图1所示的基本结构:

Going Deeper with Convolutions--Googlenet论文总结_第1张图片

图1 Inception结构

针对结构图做以下说明:

1) 采用不同大小的卷积核意味着不同大小的感受野,最后拼接意味着不同尺度特征的融合; 

2) 之所以卷积核大小采用1、3和5,主要是为了方便对齐。设定卷积步长stride=1之后,只要分别设定pad=0、1、2,那么卷积之后便可以得到相同维度的特征,然后这些特征就可以直接拼接在一起了; 

3) 文章说很多地方都表明pooling挺有效,所以Inception里面也嵌入了;

4)  网络越到后面,特征越抽象,而且每个特征所涉及的感受野也更大了,因此随着层数的增加,3x3和5x5卷积的比例也要增加;

但是,使用5x5的卷积核仍然会带来巨大的计算量。 为此,论文借鉴NIN结构,采用1x1卷积核来进行降维。 
例如:

上一层的输出为100x100x128,经过具有256个输出的5x5卷积层之后(stride=1,pad=2),输出数据为100x100x256。其中,卷积层的参数为128x5x5x256。假如上一层输出先经过具有32个输出的1x1卷积层,再经过具有256个输出的5x5卷积层,那么最终的输出数据仍为为100x100x256,但卷积参数量已经减少为128x1x1x32 + 32x5x5x256,大约减少了4倍。

具体改进后的Inception Module如图2所示: 

Going Deeper with Convolutions--Googlenet论文总结_第2张图片

图2 Inception降维结构图

3.     Googlenet结构

针对论文提出的Inception结构设计出了Googlenet结构如图3所示。后续的训练和测试到时候实践时可以跑此网络框架时在细看和深入研究原论文。

1)       显然GoogLeNet采用了模块化的结构,方便增添和修改; 

2)       网络最后采用了average pooling来代替全连接层,想法来自NIN,事实证明可以将TOP1 accuracy提高0.6%。但是,实际在最后还是加了一个全连接层,主要是为了方便以后大家finetune; 

3)       虽然移除了全连接,但是网络中依然使用了Dropout ; 

4)       为了避免梯度消失,网络额外增加了2个辅助的softmax用于向前传导梯度。文章中说这两个辅助的分类器的loss应该加一个衰减系数,但看caffe中的model也没有加任何衰减。此外,实际测试的时候,这两个额外的softmax会被去掉。

Going Deeper with Convolutions--Googlenet论文总结_第3张图片

Going Deeper with Convolutions--Googlenet论文总结_第4张图片

图3网络结构

你可能感兴趣的:(深度学习)