论文笔记:Going deeper with convolutions(GoogLeNet)

一、基本信息

标题:Going deeper with convolutions
时间:2014
出版源:IEEE
论文领域:深度学习,CNN
引用格式:Szegedy C, Liu W, Jia Y, et al. Going deeper with convolutions[C]//Proceedings of the IEEE conference on computer vision and pattern recognition. 2015: 1-9.

二、研究背景

随着移动设备和嵌入式发展,算法的有效性特别是在耗电和内存方面越来与重要。
最近研究增加网络层数和大小,使用dropout解决过拟合。

直接增加网络深度和宽度有2个缺点:

  • 更大尺寸意味更多参数,更容易过拟合,需要更好的训练集,然而这是困难的
  • 是计算资源的使用显著增加。如果大多数权重最终接近于零,那么就会浪费大量计算。

解决方法:
使用稀疏连接替代稠密结构。
理论依据(Arora):一个概率分布可以用一个大的稀疏的深度神经网络表示,最优的结构的构建通过分析上层的激活状态的统计相关性,并把输出高度相关的神经元聚合。这与生物学中Hebbian法则“有些神经元响应基本一致,即同时兴奋或抑制”一致。
存在问题:计算机的基础结构在遇到稀疏数据计算时会很不高效,使用稀疏矩阵会使得效率大大降低。
目标:设计一种既能利用稀疏性,又可以利用稠密计算的网络结构。

将稀疏矩阵聚类为相对密集的子矩阵,往往能给出稀疏矩阵乘法的最先进的实用性能.

Inception架构开始用来评估一个复杂的网络拓扑构造算法的假设输出,该算法试图近似于视觉网络中所暗示的稀疏结构,并用密集的、容易获得的组件覆盖假设的结果。

在进一步调整学习率、超参数和改进的训练方法之后,我们确定了由此产生的在先启架构在定位和目标检测的背景下特别有用。

三、创新点

  • 深度架构和经典计算机视觉的协同作用,如R-CNN算法。
  • 内存方面占用更少,可以应用于工业界

1 * 1卷积有双重用途:
用作降维模块,限制网络的大小。
在不影响性能的情况下增加网络的宽度。

结构细节

主要思想是基于找出卷积视觉网络中的最优局部稀疏结构如何被现成的密集组件逼近和覆盖。我们所需要的就是找到最优的局部结构,然后在空间上重复它
我们最终会将许多簇集中在一个区域,而在下一层中,它们可以被1 * 1卷积的层所覆盖。

channel的意思其实就是神经元的个数,这里降维的意思其实就是减少神经元的个数,比如原先的2828512 在11256 之后 就是2828256(stride为1的情况), 这样在整个网络结构这一层就降维了,原作者发现在没有1*1之前的参数空间存在很多稀疏的数据,这里降维之后,参数空间会更dense,这样就解决了文章说的痛点(也就是稀疏性增大计算困难的问题)

池化操作对于当前的卷积网络的成功至关重要,因此建议在每个这样的阶段中添加一个可选的并行池化路径也会产生额外的有益效果。
论文笔记:Going deeper with convolutions(GoogLeNet)_第1张图片

(a)是最原始的模型。可以看出,因为卷积并不一定就改变大小,而通道数目由于分散的连接最终会增加,这样很容易造成参数个数的指数级别的上升。论文中使用了NIN网络中提到的利用11卷积核降维的作用,在卷积层处理前,先对特征图层进行降维(注意是通道的降维,不是空间的降维),例如原本是M通道,降维到P通道后,在通过汇聚变成了M通道,这时参数的个数并没有随着深度的加深而指数级的增长,这样做的合理性在于,Hebbin法则说的“有些神经元同时兴奋或抑制”,而在区域中同一节点对应的区域可能一样,认为它们是相关的,所以通过11的卷积核将它们聚合(信息压缩)后再卷积,符合Arora的理论。同时,注意到还有一个最大化池化层。这样处理的好处是(1)深度增加,节点数目可控(2)出现多个尺度如33,11,55,77等。

论文笔记:Going deeper with convolutions(GoogLeNet)_第2张图片

  1. 卷积 - 池化

  2. 卷积 - 池化
    论文笔记:Going deeper with convolutions(GoogLeNet)_第3张图片

  3. inception(3a) - inception(3b) - 池化
    论文笔记:Going deeper with convolutions(GoogLeNet)_第4张图片

  4. inception(4a) … inception(4e) - 池化
    论文笔记:Going deeper with convolutions(GoogLeNet)_第5张图片

  5. inception(5a) - inception(5b) - 池化
    论文笔记:Going deeper with convolutions(GoogLeNet)_第6张图片

  6. dropout - liner - softmax
    论文笔记:Going deeper with convolutions(GoogLeNet)_第7张图片

GoogLeNet网络有22层,最后一层使用了NIN(??)网络中的全局平均池化层,但还是会加上FC层,再输入到softmax函数中。如下图:
论文笔记:Going deeper with convolutions(GoogLeNet)_第8张图片
在深度加深的情况下,在BP算法执行时可能会使得某些梯度为0,这会使得网络的收敛变慢。论文中使用的方法是增加两个输出层(Auxiliary Classifiers),这样一些权值更新的梯度就会来自于多个部分的叠加,加速了网络的收敛。但预测时会吧AC层去掉。

四、实验结果

论文笔记:Going deeper with convolutions(GoogLeNet)_第9张图片

五、结论与思考

作者结论

这种方法的主要优点是,与较浅和较不宽的网络相比,在计算需求适度增加的情况下,显著地提高了质量。

总结

思考

参考

CV论文阅读】Going deeper with convolutions(GoogLeNet)

你可能感兴趣的:(深度学习,计算机视觉)