Going deeper with convolutions----------(GoogLeNet) 论文解读


Abstract:

*作者提出了一个深度卷积神经网络结构用于ILSVRC2014,网络结构的主要特征是提升了网络内部的计算资源。十分小心地提升了网络的深度和宽度并且使计算的预期结果不变。网络结构设计基于Hebbian原则和多尺度的直觉处理。该网络被命名为GoogLenet并在分类和检测中评价其性能。

1、introduction:

GoogLeNet比AlexNet少12倍的参数然而准确率却更高。在目标检测上的巨大成功不是因为单单采用了更深的网络和更大的模型,而是像RCNN那样的深层结构和经典计算机视觉的结合。在这篇论文中,我们关注有效的面向计算机视觉的深层神经网络结构,代号:Inception。在本文中,“deep”有两个意义:1、以‘初始模块’的形式引入一个新的组织层次,2、在更直接的意义上增加了网络深度。

2、相关工作:

以LeNet-5开始,CNN一般有一种经典结构,即堆叠式卷积层(通常伴随normalization和Max-pooling的对比)跟随着一个或多个全连接层,这个结构的变体在MNIIST,CIFAR特别是 ImageNet classification challenge中很常见。在更大的数据集中,近期的趋势是增加层数以及层的尺寸,使用dropout解决过拟合。及时考虑到max-pooling层倒置精确空间信息的丢失,相同的卷积神经网络比如alexnet成功应用于定位,目标检测,以及人体姿态估计。灵感来自灵长类视觉皮层的神经科学模型,Serre使用了不同尺寸的固定的Gabor滤波器来处理多个尺度,类似于Inception model。其中所有的Inception model的过滤器都是学习得到的。此外,Inception 层重复了很多次,形成了一个22层的GoogLeNet模型。
网络中的网络这一方法应用在CNN中时,该方法可以被看做是附加的1x1卷积层,其次通常是经过整流的线性激活。这使得集成在CNN通道中变得容易,我们在我们的结构中大量使用了这个方法。但是在我们的设置中,1x1的卷积层有两个目的,最主要的是他们用作维度降低模块去消除计算瓶颈,否则就会限制我们的网络尺寸,这在不损失网络性能的条件下允升我们提升网络的深度和宽度。
目前在目标检测方面的领先方法是R-CNN,R-CNN将整体检测问题分解成了两个子问题:首先使用类别不可知方式首先利用低级线索比如颜色和像素,然后使用CNN分类器来识别那些位置上的物体类别。这两个阶段的方法利用低级线索的bounding box的分割的准确性以及最先进的CNN的强大分类能力。我们在检测提交中采取了相似的通道,但在两个阶段都进行了改进,比如用于更高对象bounding box回归的多框预测。以及用于更好分类bounding box提案的集合方法。

3 Motivation and High Level Considerations

提升DNN最重要的方法是提高尺寸,包括深度—-层数 以及宽度—-每层神经元数量。这是一个简单又安全的方法去训练一个更好表现的模型,尤其是在有大数据集训练的前提下。但这个方法带来了两个问题—过拟合以及需要更大的计算量。
解决这两个问题的根本方法是将全连接甚至一般的卷积结构转化成稀疏连接。对于大规模的稀疏网络,可以通过分析 激活值的统计特性,以及对高度相关的输出进行聚类从而一层一层的构建出一个最优网络,这说明一个臃肿的网络可以在不损失性能的前提下被优化的。
但是如今对于非均匀稀疏数据结构的计算效率很低,但是可以将稀疏矩阵聚类为密集的子矩阵用来提高计算性能,这样既保持了网络的稀疏性又能利用密集矩阵的高计算性能,本文的Inception结构就此提出。

Architectural Details

Inception架构的主要思想是:近似可用的密集分量近似和覆盖卷积视觉网络中的最优局部稀疏结构。

基本结构:
Going deeper with convolutions----------(GoogLeNet) 论文解读_第1张图片

1 . 不同大小的卷积核意味着不同大小的感受野,最后拼接起来意味着不同尺度特征的融合;
2 . 卷积核大小采用1、3和5,主要是为了方便对齐。设定卷积步长stride=1之后,只要分别设定pad=0、1、2,那么卷积之后便可以得到相同维度的特征,然后这些特征就可以直接拼接在一起了;
3 . pooling有效,所以Inception也加入pooling。
4 . 越深层的layer,特征越抽象,即每个特征所涉及的感受野也更大,因此随着layer的增加,3x3和5x5卷积的比例也要增加。

5x5卷积核带来大量计算,所以采用1X1卷积核进行降维。for example:

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

具体改进后的Inception Module如下图:

Going deeper with convolutions----------(GoogLeNet) 论文解读_第2张图片

5 GoogLeNet

你可能感兴趣的:(CNN,机器学习算法,神经网络,网络,结构,性能,设计)