【Imagenet LSVRC系列模型】GoogLeNet-2014 Going Deeper with Convolutions

Szegedy C, Liu W, Jia Y, et al. Going deeper with convolutions[C]. Cvpr, 2015.

ImageNet 图像分类 2014 冠军模型

文中主要是提出一种称为Inception的深度卷积神经网络结构。Inception的优势在于增加网络的深度和宽度的同时,将计算量控制在一定范围内。另外,Inception的设计理念中还包含了Hebbian原则以及多尺度处理。

1、Introduction

自2012年Alexnet被提出以来,深度学习以及卷积网络的快速发展使物体分类以及检测水平迅速提高。值得令人鼓舞的是,取得的这些进步不单单是更多数据或更大的模型或更多硬件力量的结果,也是众多新想法、新算法、不断改善的网络结构的结果。例如,本文的提出的GoogLeNet在不增加更多训练数据量的前提下,在ImageNet分任务中比Alexnet更准确,且参数量少于后者的十二分之一。也就是说我们在考虑模型更复杂更深的同时,也需要考虑到计算资源,比如移动端或其他嵌入式应用。

本文聚焦于一个有效的深度神经网络结构—Inception。“深”体现在两方面:第一则是直观上的增加网络层数;第二是Inception模块以及Inception带来的模型深度增加。

2、motivation

提升深度神经网络效果的最直接的方法就是增加模型深度(模型层数的增加)和模型宽度(每层feature map数的增加)。但同时会带来三个问题:

(1)模型size越大,则参数越多。在训练数据量一定的情况下,更容易过拟合。

(2)模型size越大,计算量越多。而且,在网络中,大多数权重倾向于零,对于这些“近零”的计算,实际上是一种计算浪费。

(3)模型越深,梯度反向传播困难,带来梯度消失问题。

要想解决这个问题,则可以:引入稀疏性以及用稀疏层代替全连接层甚至中间的卷积层。理由:

(1)人类神经系统也具有稀疏性。

(2)有坚实的理论分析。如果用一个大型的稀疏深度神经网络来表达数据集的分布,则可以分析前层**值的相关统计特性然后聚类为后层高度相关的神经元输出,一层一层地构建最优网络拓扑结构。具体参考:S. Arora, A. Bhaskara, R. Ge, and T. Ma. Provable bounds for learning some deep representations. CoRR,abs/1310.6343, 2013.

(3)Hebbian准则:neurons that fire together,wire together。(关于神经元之间相关性的一个假说)

但是,引入稀疏性又带来了问题:现今的基础计算资源建设对于稀疏数据计算并不友好。也就是说,不论是CPU或GPU,它们擅长于稠密计算,对于它们来说,稀疏计算也是和稠密计算一样的处理方式,并不能凸显稀疏带来的计算资源节省(自己理解的,不知道对不对)。

于是,现在要解决的问题是:有没有一种折中的可能,找到一种结构,这个结构既可以保证稀疏性,同时充分利用现有计算资源的稠密性计算。有发现,把稀疏矩阵聚类为相对稠密的子矩阵,能节省计算量。

因此,文中提出了Inception结构。

3、Inception

结构如图1,(a)是初始结构,(b)是加入降维处理后的结构。Inception最主要还是在于结构稀疏性的同时转化为传统稠密计算。(The main idea of the Inception architecture is to consider how an optimal local sparse structure of a convolutional vision network can be approximated and covered by readily available dense components. )

Inception的特点:

(1)不同大小的卷积核保证了不同尺度的特征提取和融合。

(2)1*1的卷积核可以降低参数量。(比如previous layer 为56*56*64,不加1*1卷积核而直接加128个5*5卷积核时,参数量为5*5*64*128;而先加入32个1*1卷积核再连接128个5*5卷积核时,参数量为1*1*1*64*32+5*5*32*128)

(3)Inception模块适合加在网络的高层。

(5)越往上,Inception模块中的3*3以及5*5卷积核数量应该增加。

【Imagenet LSVRC系列模型】GoogLeNet-2014 Going Deeper with Convolutions

图1 Inception结构

4、GoogLeNet

(1)结构如图2,共22层(只包括含有参数的层,不包含pool层);

(2)用average pooling代替全连接层(与network in network中一样),但保留了dropout,此操作提高0.6%的top-1准确率。

(3)为了弥补梯度消失,在中间层插入额外的浅层softmax分类网络结构,如图2,直接传递一定权重的loss。

【Imagenet LSVRC系列模型】GoogLeNet-2014 Going Deeper with Convolutions

图2 GoogLeNet结构

5、其他

Inception的主要思想来源:

(1)稀疏性理论支撑:S. Arora, A. Bhaskara, R. Ge, and T. Ma. Provable bounds for learning some deep representations. CoRR, abs/1310.6343, 2013.

(2)网络结构启发:

NIN网络:M. Lin, Q. Chen, and S. Yan. Network in network. CoRR, abs/1312.4400, 2013.

不同大小的Gabor滤波器实现多尺度特征:T. Serre, L.Wolf, S. M. Bileschi, M. Riesenhuber, and T. Poggio. Robust object recognition with cortex-like mechanisms. IEEE Trans. Pattern Anal. Mach. Intell., 29(3):411–426, 2007.

另一篇讲的比较详细的博客参考:https://blog.****.net/shuzfan/article/details/50738394