GoogLeNet理解

GoogLeNet在ILSSVRC2014的分类和检测上去的了很好成绩。这个网络的主要特点是提高了网络内部的计算资源的利用率,能在保持现有计算预算不变的情况下增加网络的深度和宽度。近年来用于分类和检测的深度网络模型的性能提升主要是由于新想法、算法和改进的网络架构。目前的目标检测表现最好的是R-CNN,它是通过使用深度学习网络与传统的计算机视觉相结合的。
本文提出的<Going Deeper with Convolutions >,这里的deep有两重含义:1、提出了新的组织模块inception,它本身比单层卷积层深;2、网络的总体层数深。
其次,本文使用的1x1的卷积也有两个目的:1、降维,消除计算瓶颈(否则会由于维度过大而产生GPU不足,这样会限制网络规模);2、增加网络深度和宽度以及非线性,并减少参数。

本文提及的R-CNN用于检测任务,它把检测分为两个子问题:1、使用诸如颜色、纹理等低级线索来以一种与类别无关的方式生成目标location proposal;2、使用CNNs分类器来对每个proposal进行分类。这主要是利用了低级线索分割的准确性以及CNNs分类的高性能。
增强网络性能的最直接的方式是增加网络的size即:深度和宽度,但是这也会有两个缺点:1、大的size会带来很多参数,容易过拟合;2、显著的增加了计算资源,对计算机性能要求高。这两个问题的解决办法是:引入稀疏层,用稀疏层替代全连接层。

Inception结构的主要思想是:一个卷积视觉网络的最优的局部稀疏结构如何能够被容易被现成的密集组件近似和覆盖。
由于较高层的特征被较高层所捕获,所以它们的空间集中度会下降。表明3×3和5×5卷积的比率应该是随着层次的增加而增加。
上面是一个Inception模块,(b)使用1x1卷积核来降维和增加非线性(使用relu)。

网络是由上面的模块堆叠起来的,偶尔会使用s=2的max-pooling来使分辨率减半。值得注意的是文中仅在高层(不是必须这样)中使用inception模块,在低层仍使用传统的cons,这样的好处是可以防止计算量过大。
模块中所有卷积(包括inception以及底层的卷积)后面都接了relu激活层。网络的感受野是0均值的224x224的RGB。

把全连接层替换为平均池化,top-1精度提高0.6%,即使没有全连接层,仍使用dropout。
训练

使用具有0.9动量的异步随机梯度下降法进行训练,每训练8个周期学习率下降4%。光度失真(photometric distortions)

这个办法是有用的,可以减少过拟合。

其他技巧:
1、训练7个模型然后综合求精度;

2、使用多尺度图像进行剪裁;
3、softmax是所有分类器以及所有经过剪裁之后的图片得到的结果的平均。
总结
本文通过使用密集的building blocks来提高神经网络的性能。本文表明向更稀疏的架构转变是一种可行和有用的想法,未来的工作可以创造更稀疏的网络以及将Inception架构的见解应用到其他领域。


阅读更多
个人分类: CNN
下一篇ResNet随堂笔记
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭