手记

卷积神经网络的网络结构——GoogLeNet

《Going deeper with convolutions》
  • 2014,Google,GoogLeNet(向早期的LeNet致敬),Inception V1

Google Inception Net首次出现在ILSVRC 2014的比赛中(和VGGNet同年),就以较大的优势取得了第一名。它最大的特点是控制了计算量和参数量的同时,获得了非常好的分类性能—top5的错误率6.67%。Inception V1有22层深,比AlexNet的8层或者VGGNet的19层还要更深,但其计算量和参数量仅为AlexNet的1/12,却可以达到远胜于AlexNet的准确率。
(1)Inception V1降低参数量的目的有两点,第一,参数越多模型越庞大,需要供模型学习的数据量就越大,而目前高质量的数据非常昂贵;第二参数越多,耗费的计算资源也会更大。
(2)Inception V1参数少但效果好的原因除了模型层数更深、表达能力更强外,还有两点:一是去除了最后的全连接层,用全局池化层(即将图片尺寸变为1*1)来取代它。全连接层几乎占据了AlexNet或VGGNet中90%的参数量,而且会引起过拟合,去除全连接层后模型训练更快并且减轻了过拟合。二是Inception V1中精心设计的Inception Module提高了参数的利用效率。

1.动机和思考:
一般来说,提升网络性能最直接的办法就是增加网络深度和宽度,这也就意味着巨量的参数。但是,巨量参数容易产生过拟合也会大大增加计算量。
文章认为解决上述两个缺点的根本方法是将全连接甚至一般的卷积都转化为稀疏连接。
所以,现在的问题是有没有一种方法,既能保持网络结构的稀疏性,又能利用密集矩阵的高计算性能。大量的文献表明可以将稀疏矩阵聚类为较为密集的子矩阵来提高计算性能,据此论文提出了名为Inception 的结构来实现此目的。(Hebbian原理)
注:Inception Net的主要目标就是找到最优的稀疏结构单元,最后Inception model通过4个分支中不同尺寸的1*1、3*3、5*5等小型卷积将相关性很高的节点连接在一起,就完成了其设计初衷,构建出了很高效的符合Hebbian原理的稀疏结构。

2.Architectural Details:
Inception 结构的主要思路是怎样用密集成分来近似最优的局部稀疏结构。  
作者首先提出下图这样的基本结构:

对上图做以下说明:  
1 . 采用不同大小的卷积核意味着不同大小的感受野,最后拼接意味着不同尺度特征的融合;  
2 . 之所以卷积核大小采用1、3和5,主要是为了方便对齐。设定卷积步长stride=1之后,只要分别设定pad=0、1、2,那么卷积之后便可以得到相同维度的特征,然后这些特征就可以直接拼接在一起了;  
3 . 文章说很多地方都表明pooling挺有效,所以Inception里面也嵌入了。  
4 . 网络越到后面,特征越抽象,而且每个特征所涉及的感受野也更大了,因此随着层数的增加,3x3和5x5卷积的比例也要增加。
但是,使用5x5的卷积核仍然会带来巨大的计算量。 为此,文章借鉴NIN2,采用1x1卷积核来进行降维。

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

3.GoogLeNet的整体结构如下图:

对上图做如下说明:  
1 . 显然GoogLeNet采用了模块化的结构,方便增添和修改;  
2 . 网络最后采用了average pooling来代替全连接层,想法来自NIN,事实证明可以将TOP1 accuracy提高0.6%。但是,实际在最后还是加了一个全连接层。
3 . 虽然移除了全连接,但是网络中依然使用了Dropout ;  
4 . 为了避免梯度消失,网络额外增加了2个辅助的softmax用于向前传导梯度。此外,实际测试的时候,这两个额外的softmax会被去掉。
注:给定深度相对较大的网络,有效传播梯度反向通过所有层的能力是一个问题。在这个任务上,更浅网络的强大性能表明网络中部层产生的特征应该是非常有识别力的。通过将辅助分类器添加到这些中间层,可以期望较低阶段分类器的判别力。这被认为是在提供正则化的同时克服梯度消失问题。这些分类器采用较小卷积网络的形式,放置在Inception (4a)和Inception (4d)模块的输出之上。在训练期间,它们的损失以折扣权重(辅助分类器损失的权重是0.3)加到网络的整个损失上。在推断时,这些辅助网络被丢弃。后面的控制实验表明辅助网络的影响相对较小(约0.5),只需要其中一个就能取得同样的效果。
包括辅助分类器在内的附加网络的具体结构如下:
1)一个滤波器大小5×5,步长为3的平均池化层,导致(4a)阶段的输出为4×4×512,(4d)的输出为4×4×528。
2)具有128个滤波器的1×1卷积,用于降维和修正线性激活。
3)一个全连接层,具有1024个单元和修正线性激活。
4)丢弃70%输出的丢弃层。
5)使用带有softmax损失的线性层作为分类器(作为主分类器预测同样的1000类,但在推断时移除)。

4.参数配置:

训练时 :
训练了7个模型,为了使问题更精细,一些模型在较小的crop上训练,一些模型则在大的crop上训练。  
使模型训练较好的因素包括:  
(1)图像各种尺寸patch的采样,这些patch 的size平均分布在图像区域的8%到100%间,长宽比例在3/4和4/3间。  
(2)光照变化对于对抗过拟合有用。  
(3)在后期使用随机差值进行图像的resize  
测试时 :
(1)训练7个相同的模型,其中包括一个较宽的版本,并且对结果进行集成。这些模型用相同的初始化和学习率测量,不同的是采样的方法不同和输入图像的顺序不同。  
(2)测试时更暴力的crop。  
把图像resize成4个不同的尺度,使的短边分别是256,288,320和352.从这些resize后的图像中取左中右的方块。对每一个方块,取4个角落,中间的224*224crops,以及整个方块的224*224的resize,同时对这patch镜像。这样每个图像提取出的patch数是:4*3*6*2=224.  
然而,似乎这种crop不是必须的。  
(3)softmax概率在多个crops和所有分类器上进行平均,获得最终的预测

5.结论
我们的结果取得了可靠的证据,即通过易获得的密集构造块来近似期望的最优稀疏结果是改善计算机视觉神经网络的一种可行方法。相比于较浅且较窄的架构,这个方法的主要优势是在计算需求适度增加的情况下有显著的质量收益。


注:博众家之所长,集群英之荟萃。

原文出处

0人推荐
随时随地看视频
慕课网APP