其他分享
首页 > 其他分享> > GoogLeNet:《Going deeper with convolutions》论文详解

GoogLeNet:《Going deeper with convolutions》论文详解

作者:互联网

【名字】

1.标题中deep的双关含义

(1)以“Inception module”的形式引入的一种新层次的组织方式,境界更深

(2)网络深度(depth)更深

2.GoogLeNet名字起源:向LeNet致敬

3.Inception名字起源

(1)《Network in Network》

(2)We need to go deeper(internet meme)

 

【作者】

1.一作:Christian Szegedy(谷歌资深研究科学家,对抗样本+GoogLeNet)

他的其他文章:

[1] INCEPTION V1 : Going deeper with convolutions

[2] INCEPTION V2、V3 : Rethinking the Inception Architecture for Computer Vision

[3] INCEPTION V4、INCEPTION-ResNet:Inception-v4, Inception-ResNet and the Impact of Residual Connections on Learning

2.三作:贾扬清(caffe作者)

3.四作:Pierre Sermanet(纽约大学 Overfeat团队)

【摘要】

深度卷积神经网络结构Inception:

* 贡献1:ImageNet大规模视觉识别挑战赛2014(ILSVRC14)在分类(classification)和检测(detection)上取得最好结果。

* 贡献2:提高网络内部计算资源的利用率,增加网络深度(depth)和广度(width)并保持计算预算不变

* 基础:赫布理论(Hebbian principle)和多尺度信息处理(multi-scale processing)

PS:分类(what)、检测(where)

PS:赫布理论:神经元突触的用进废退。Fire together, wire together.

【引言】

GoogLeNet优点:

(1)参数少而准确率高

在ILSVRC 2014中提交的GoogLeNet参数只有AlexNet参数的1/12,而结果明显更准确。

(2)算法效率高,工程性强

随着移动和嵌入式设备的推动,考虑到电力和内存使用设计出此深度架构。不仅为了提高准确率和满足学术好奇心,还能实际工程应用。

【相关工作】

→Inception结构中所有的filters是学习到的;Inception层重复了很多次。

→1 × 1卷积两个目的:降维,提高运算效率。

→加强版。在第一个阶段使用多个候选框来使候选框中包含真目标的比例提高,并使用了更好的识别算法。

【动机和高层思考】

提高深度神经网络性能最直接的方式是增加它们的尺寸—深度(depth,网络层次的数目)和宽度(width,每一层的单元数目)

优点:(1)容易且安全(2)适用于大规模标记好的数据集

缺点:(1)更大的尺寸意味着更多的参数,更容易过拟合(over-fitting)(2)不适用于小的或获取标注成本大的数据集

计算效率问题①:两个相连卷积层,同步增加卷积核个数,计算量将平方级别地增加。若很多权重训练后接近于0,则此部分计算被浪费。

解决方案①:引入稀疏性(sparsity),用稀疏连接(sparse connectivity)取代密集连接。

理论基础:

《Provable bounds for learning some deep representations》如果数据集的概率分布可以通过一个大型稀疏的深度神经网络表示,则最优的网络拓扑结构可以通过分析前一层激活的相关性统计和聚类高度相关的神经元来一层层的构建。(当某个数据集的分布可以用一个稀疏网络表达的时候就可以通过分析某些激活值的相关性,将相关度高的神经元聚合,来获得一个稀疏的表示。)

Hebbian principle:如果两个神经元常常同时产生动作电位(fire),这两个神经元之间的连接(wire)就会变强,反之则变弱(neurons that fire together, wire together)

密集运算问题②:碰到在非均匀的稀疏数据结构(non-uniform sparse data structures)上进行数值计算时,现在的计算架构(适用于密集运算)效率非常低下。

提出问题:有没有一种方法,既能保持网络结构的稀疏性,又能利用密集矩阵的高计算性能?

解决方案②:将稀疏矩阵分解为密集的子矩阵,加速矩阵乘法。提出Inception架构。

【架构细节】

Inception架构的主要想法是考虑【怎样用密集模块来近似最优的局部稀疏结构 】

假设转换不变性,我们所需要做的是找到最优的局部构造并在空间上重复它。

设计思想:聚合高相关的特征输入到下一层

1 . 不同大小的卷积核,意味着不同尺度特征的抽象融合;

2 . 卷积核大小采用1、3和5,方便对齐。stride=1时,分别设定pad=0、1、2即可直接拼接在一起;

3 . 并行池化;

4 .局部信息由1×1卷积核提取,靠前面的层提取局部信息;大范围空间信息由大卷积核提取,靠后面的层提取大范围空间信息。 网络越到后面,特征越抽象,随着层数的增加,3x3和5x5卷积的比例也要增加

问题:在具有大量滤波器的卷积层之上,即使适量的5×5卷积也非常昂贵,池化层输出和卷积层输出的合并会导致这一阶段到下一阶段输出数量不可避免的增加,导致在几个阶段内计算量爆炸。

改进:在计算要求会增加太多的地方,明智而审慎地(judiciously)减少维度。

太过密集压缩的嵌入向量不便于模型处理。在3×3和5×5卷积之前,1×1卷积用来计算降维。

 PS:1×1卷积作用:

  1. 升/降维度;
  2. 跨通道信息交融;
  3. 减少参数量/计算量;
  4. 增加模型深度,提高非线性表达能力。

 

例如:上一层的输出为28x28x256,经过具有32个输出的5x5卷积层之后(stride=1,pad=2),输出数据为28x28x32。其中,卷积层的参数为256x28x28x32。假如上一层输出先经过具有16个输出的1x1卷积层,再经过具有32个输出的5x5卷积层,那么最终的输出数据仍为为28x28x32,但卷积参数量已经减少为256x1x1x16 + 16x5x5x32,参数量大大减少。

底层先用普通卷积层,后面用Inception模块堆叠。

优点:

【GoogLeNet】

GoogLeNe是在ILSVRC 2014竞赛的提交中使用的Inception架构的特例。

params:参数量

ops:乘-加计算量

辅助分类器:

包括辅助分类器在内的附加网络的具体结构如下:

* 一个大小5×5,步长3的平均池化层

* 具有128个1×1卷积,用于降维和修正线性激活

* 具有1024个单元和修正线性激活的全连接层

* 70% dropout层

* 带有softmax损失的线性层作为分类器(作为主分类器预测同样的1000类,但在推断时移除)

【训练方法】

说不清这些调参和图像增强技巧对最后结果有没有用。

【ILSVRC 2014分类挑战赛设置和结果】

分类比赛规则:

训练图像大约有120万张,验证图像有5万张,测试图像有10万张。

top-1准确率,比较实际类别和第一个预测类别

top-5错误率,若图像实际类别在前5个预测类别中,则图像分类正确。(挑战赛使用top-5错误率来进行排名。)

竞赛中我们的最终提交在验证集和测试集上得到了top-5 6.67%的错误率,排名第一。

与2012年的Super Vision方法相比相对减少了56.5%,与前一年的最佳方法(Clarifai)相比相对减少了约40%,这两种方法都使用了外部数据训练分类器。

表2显示了过去三年中一些表现最好的方法的统计。

当预测图像时通过改变表3中使用的模型数目和裁剪图像数目。

【ILSVRC检测任务】

若算法给出的框分类正确且与正确标签框的交并比IOU > 0.5,则预测正确,无关的检测记为假阳性且被惩罚。

与分类任务相反,每张图像可能包含多个对象或没有对象,并且它们的尺度可能是变化的。

报告的结果使用平均精度均值(mAP)。

GoogLeNet检测方法类似R-CNN,不同在于:

  1. 结合selective search和multi-box prediction减少无用的候选框
  2. 没有使用框回归,直接对候选框分类
  3. 使用Inception模型作为分类器

我们首先报告了最好检测结果,并显示了从第一版检测任务以来的进展。与2013年的结果相比,准确率几乎翻了一倍。所有表现最好的团队都使用了卷积网络。我们在表4中报告了官方的分数和每个队伍的常见策略:使用外部数据、集成模型或上下文模型。外部数据通常是ILSVRC12的分类数据,用来预训练模型,后面在检测数据集上进行改善。一些团队也提到使用定位数据。由于定位任务的边界框很大一部分不在检测数据集中,所以可以用该数据预训练一般的边界框回归器,这与分类预训练的方式相同。

在表5中,我们仅比较了单个模型的结果。

【总结】

* 证明通过易获得的密集构造块(readily available dense building blocks)来近似期望的最优稀疏结果是改善计算机视觉神经网络的一种可行方法。

* 在计算需求适度增加的情况下有显著的质量收益。

* 对于分类和检测,预期通过更昂贵的类似深度和宽度的非Inception类型网络可以实现类似质量的结果。然而,我们的方法取得了可靠的证据,即转向更稀疏的结构一般来说是可行有用(moving to sparse architectures is feasible and useful idea)的想法。这表明未来的工作将在[2]的基础上以自动化方式创建更稀疏更精细的结构,以及将Inception架构的思考应用到其他领域。

【参考文献】

【comments】

亮点:

缺点:

注意:output size=(input size - filter size + 2 * padding)/ stride + 1

【Inception发展】

Inception v1 → BN Inception → Inception v2 → Inception v3 → Inception v4 → Inception-ResNet → Xception

  

【GooLeNet与其他网络对比 】

  

AlexNet 2012

conv1

max pool1

norm1

conv2

max pool2

norm2

conv3

conv4

conv5

max pool3

fc6

fc7

fc8

ZFNet 2013

VGG

ps:感受野(Receptive Field)的定义是卷积神经网络每一层输出的特征图(feature map)上的像素点在输入图片上映射的区域大小。再通俗点的解释是,特征图上的一个点对应输入图上的区域

GoogLeNet

ResNet 2015

标签:deeper,卷积,分类,网络,GoogLeNet,Going,图像,Inception
来源: https://blog.csdn.net/weixin_46933478/article/details/122003956