论文
Going deeper with convolutions
论文地址
https://www.cv-foundation.org/openaccess/content_cvpr_2015/papers/Szegedy_Going_Deeper_With_2015_CVPR_paper.pdf
摘要
本文提出了一个名为Inception的深度卷积神经网络体系结构,在ImageNet大规模视觉识别挑战2014 (ILSVRC14)中实现了分类和检测的新水平。这种体系结构的主要特点是提高了网络内部计算资源的利用率。通过精心设计,我们增加了网络的深度和宽度,同时保持计算预算不变。
为了优化质量,网络结构决策基于Hebbian原理和多尺度处理的直觉。在我们为ILSVRC14提交的文件中使用的一个特别的化身被称为GoogLeNet,这是一个22层的深度网络,其质量在分类和检测上下文中进行评估。
介绍
在本文中,我们将关注一种高效的计算机视觉深度神经网络体系结构,其名为Inception,来源于Lin等人的网络论文中的网络[12],结合著名的“we need Going deeper”网络[1]。
“深度”一词有两种不同的含义:首先,我们以“Inception模块”的形式引入了一个新的组织层次,还有一个更直接的含义是增加了网络深度。一般来说,人们可以将Inception模型视为[12]的逻辑顶点,同时从Arora等人[2]的理论工作中获得灵感和指导。该体系结构的优势在ILSVRC 2014分类和检测挑战中得到了实验验证,在该挑战中,它的性能明显优于当前的技术水平。
前人工作
从LeNet-5[10]开始,卷积神经网络(CNN)通常具有一个标准结构—堆叠的卷积层(可选地跟随对比度归一化和最大池化)后面是一个或多个完全连接的层。这种基本设计的V变体在图像分类文献中普遍存在,并在MNIST、CIFAR和最显著的ImageNet分类挑战中产生了迄今为止最好的结果。
对于较大的数据集,如Imagenet,最近的趋势是增加层数[12]和层大小[21,14],同时使用dropout[7]来解决过拟合的问题。
尽管人们担心最大池化层会导致丢失精确的空间信息,但与[9]相同的卷积网络架构也已成功应用于定位[9,14]、目标检测[6,14,18,5]和人体姿态估计[19]。
Serre等人[15]受到灵长类动物视觉皮层神经科学模型的启发,使用一系列不同大小的固定Gabor滤波器来处理多个尺度,在这里使用了类似的策略。然而,与[15]固定的2层深度模型相反,Inception体系结构中的所有过滤器都是学习的。此外,Inception层要重复很多次,在GoogLeNet模型中形成22层的深度模型。
Network in Network是Lin等人[12]为了增加神经网络的表示能力而提出的一种方法。在他们的模型中,在网络中添加了额外的1 × 1卷积层,增加了网络的深度。
我们在体系结构中大量使用这种方法。然而,在我们的设置中,1 × 1卷积有双重目的:最关键的是,它们主要用作降维模块,以消除计算瓶颈,否则将限制我们的网络的大小。这不仅可以增加网络的深度,还可以增加网络的宽度,而不会造成显著的性能损失。
目前的目标检测技术是由Girshick等人[6]提出的带卷积神经网络的区域(R-CNN)方法。R-CNN将整个检测问题分解为两个子问题:利用诸如颜色和纹理这样的低级提示,以一种类别不可知的方式生成对象位置建议,并使用CNN分类器在这些位置识别对象类别。这种两阶段方法利用了具有低级线索的边界框分割的准确性,以及先进cnn的强大分类能力。我们在我们的检测提交中采用了类似的管道,但在两个阶段都探索了增强,如多框[5]预测以提高对象锚框召回率,以及集成方法以更好地分类锚框。
动量和深层考虑
提高深度神经网络性能最直接的方法是增加其规模。这包括增加深度(网络层数)和宽度(每层单元数)。这是训练高质量模型的一种简单而安全的方法,特别是考虑到大量标记训练数据的可用性。
这个简单的解决方案有两个主要缺点:
1、更大的规模通常意味着更多的参数,这使得扩大的网络更容易过拟合,特别是在训练集中标记的示例数量有限的情况下。这是一个主要的瓶颈,因为获取强标记数据集既费力又昂贵,通常需要专业的人工评分人员来区分各种细粒度的可视化类别,如ImageNet中的那些类别(甚至在1000类ILSVRC子集中)。
2、增加网络规模的另一个缺点是计算资源的使用急剧增加。在深度视觉网络中,如果两个卷积层是链式的,它们的过滤器数量的任何一致增加都会导致计算量的二次增长。如果没有有效地使用增加的容量(例如,如果大多数权值最终接近于零),那么大量的计算就被浪费了。由于计算预算总是有限的,有效分配计算资源比任意增加大小更可取,即使主要目标是提高性能的质量。
解决这两个问题的基本方法是引入稀疏性,用稀疏层取代完全连接的层,甚至在卷积内部也是如此。
架构细节
为了避免补丁对齐问题,当前Inception体系结构的化身被限制为过滤大小1×1、3×3和5×5;这一决定更多地是出于方便而非必要性。这也意味着建议的体系结构是所有这些层的组合,它们的输出滤波器组连接到一个单独的输出向量,形成下一阶段的输入。此外,由于池操作对于当前卷积网络的成功至关重要,它建议在每个这样的阶段添加一个备选的并行池路径也应该有额外的有益效果。
“inception模块”彼此堆叠在一起,它们的输出相关统计数据必然会有所不同:随着更高抽象的特征被更高的层捕获,它们的空间集中度预计会降低。这表明3×3和5×5卷积的比例应该随着我们移动到更高的层而增加。
在这种简单的形式中,即使是少量的5×5卷积,在具有大量过滤器的卷积层上也会非常昂贵。一旦池单元被添加到混合中,这个问题就变得更加明显:输出过滤器的数量等于前一阶段过滤器的数量。池化层的输出与卷积层的输出合并将不可避免地导致级与级之间输出数量的增加。虽然这种架构可以覆盖最优的稀疏结构,但它的效率非常低,导致在几个阶段内的计算爆炸。
于是引出了Inception架构的第二个想法:明智地减少那些计算需求会增加太多的维度。也就是说,在昂贵的3×3和5×5卷积之前,1×1卷积被用来计算约简。除了用作还原剂外,它们还包括使用整流线性活化,使它们具有双重用途。
inception网络是由上述类型的模块相互堆叠而成的网络,偶尔会出现最大池层,步幅为2,以将网格的分辨率减半。出于技术原因(培训期间的内存效率),似乎只在较高的层开始使用Inception模块,而以传统的卷积方式保留较低的层是有益的。
这种体系结构的一个有用的方面是,它允许显著增加每个阶段的单元数,而不会在后期阶段造成计算复杂性的失控膨胀。这是通过在使用较大的补丁大小进行昂贵的卷积之前普遍使用降维来实现的。此外,设计遵循实际直觉,即视觉信息应在不同尺度上进行处理,然后进行聚合,以便下一阶段可以同时从不同尺度上提取特征。
计算资源的改进使用允许增加每个阶段的宽度和阶段的数量,而不会造成计算困难。可以利用Inception架构来创建稍差但计算成本更低的版本。
GoogleNet结构
在ILSVRC 2014竞赛中提交的Inception架构的特殊化身。我们也使用了一个深度和广度稍高质量的Inception网络,但是将它添加到集合中似乎只能略微改善结果。表1说明了在竞赛中使用的最常见的Inception实例
所有卷积,包括初始模块内的卷积,都使用校正的线性激活。在RGB颜色空间中,我们网络中的感受野大小为224×224,平均值为零。“#3×3 reduce”和“#5×5 reduce“表示在3×3和5×5卷积之前使用的还原层中的1×1滤波器的数量。在pool proj列中内置的最大池之后,可以看到投影层中1×1个过滤器的数量。所有这些还原/投影层也使用校正的线性激活。该网络的设计考虑到了计算效率和实用性,因此推理可以在单个设备上运行,包括那些计算资源有限的设备,特别是内存占用较低的设备。
当仅计算带参数的层时,网络深度为22层(如果还计算池化层,则为27层)。用于构建网络的总层数(独立构建块)约为100层。在分类器之前使用平均池化层是基于[12]的,尽管我们的实现有一个额外的线性层。线性层使我们能够轻松地将我们的网络适应其他标签集,但它主要是为了方便而使用的,我们不希望它产生重大影响。从完全连接层到平均池化层的移动,top 1的准确性提高了约0.6%,但即使在删除了完全连接层之后,仍然需要使用dropout。
考虑到网络的深度相对较大,以有效方式将梯度传播回所有层的能力。较浅网络在这项任务上的强大性能表明,网络中间层产生的特征应该具有很强的区分性。通过添加连接到这些中间层的辅助分类器,可以在分类器的较低阶段进行区分。这是为了在提供正则化的同时解决消失梯度问题。
这些分类器以较小的卷积网络的形式放置在Inception(4a-softmax0)和(4d-softmax1)模块的输出之上。在训练期间,他们的损失以折扣权重加到网络的总损失中(辅助分类器的损失加权为0.3)。在推理时,这些辅助网络被丢弃。侧面额外网络(包括辅助分类器)的确切结构如下:
•具有5×5过滤器大小和步幅3的平均池层,导致(4a)输出为4×4×512,(4d)级输出为4 x 4×528。
•带有128个滤波器的1×1卷积,用于降维和校正线性激活。
•具有1024个单元和整流线性激活的完全连接层。
•输出下降率为70%的下降层。
•以softmax损失作为分类器的线性层(预测与主分类器相同的1000个类,但在推理时删除。
训练方法
GoogLeNet网络使用DistBelief[4]分布式机器学习系统进行训练,该系统使用适度的模型和数据并行性。GoogLeNet网络可以在一周内使用少量高端GPU进行训练以实现收敛,主要限制是内存使用。我们的训练使用了具有0.9动量的异步随机梯度下降[17],固定的学习速率计划(每8个周期将学习速率降低4%)。Polyak平均值[13]用于创建推理时使用的最终模型。受[8]的启发,一些模型主要针对相对较小的crop,其他模型则针对相对较大的crop。它包括对图像的各种大小的补丁进行采样,这些补丁的大小均匀分布在图像区域的8%到100%之间,纵横比限制在区间[3/4,4/3]。此外,我们发现Andrew Howard[8]的光度畸变有助于防止训练数据的成像条件过拟合。
ILSVRC 2014分类挑战设置和结果
ILSVRC 2014分类挑战涉及将图像分类为Imagenet层次结构中1000个叶节点类别之一的任务。大约有120万张图像用于培训,50000张用于验证,100000张用于测试。每幅图像都与一个真实图像类别相关联,性能是根据评分最高的分类器预测来衡量的。通常会报告两个数字:第一个准确率,它将真实图像类别与第一个预测类别进行比较;第五个错误率,它把真实图像类别与前五个预测类别相比较:如果真实图像类别在前五个类别中,无论其排名如何,图像都被视为正确分类。该挑战使用前5位错误率进行排名。
除了本文中提到的训练技术外,我们在测试期间还采用了一系列技术来获得更高的性能。
1、 我们独立训练了同一个GoogLeNet模型的7个版本(包括一个更宽的版本),并用它们进行了集成预测。这些模型使用相同的初始化(使用相同的初始权重)和学习率策略进行训练,它们仅在采样方法和随机输入图像顺序上有所不同。
2、 将图像大小调整为4个比例,其中较短的尺寸(高度或宽度)分别为256、288、320和352,取这些调整大小的图像的左、中、右方块(对于纵向图像,我们取顶部、中心和底部方块)。对于每个方块,我们取4个角和中心224×224裁剪,以及调整为224×244的方块及其镜像版本。这导致每张图像有4×3×6×2=144个crop。而在实际应用中,这种积极的种植可能没有必要,因为在种植了合理数量的crop后,更多crop的益处就变得微不足道了。
3、 对多个crop和所有单个分类器的softmax概率进行平均,以获得最终预测。在我们的实验中,我们分析了验证数据的替代方法,例如作物最大池和分类器平均,但它们的性能不如简单平均。
我们最终提交的挑战报告在验证和测试数据上均获得了6.67%的前5名错误,在其他参与者中排名第一。这与2012年的SuperVision方法相比,相对减少了56.5%,与上一年的最佳方法(Clarifai)相比,相对降低了约40%,这两种方法都使用外部数据来训练分类器。
通过改变表中预测图像时使用的模型数量和crop数量来分析和报告多个测试选项的性能。当我们使用一个模型时,我们选择了验证数据中top-1错误率最低的模型。
ILSVRC 2014检测挑战设置和结果
ILSVRC检测任务是在200个可能的类中生成图像中对象周围的边界框。
如果检测到的对象与groundtrue的类匹配,并且其边界框重叠至少50%(使用Jaccard索引),则视为正确。外来检测被视为误报,并受到处罚。与分类任务相反,每个图像可能包含许多对象,也可能不包含任何对象,并且它们的比例可能会有所不同,使用平均精度(mAP)报告结果。
GoogLeNet用于检测的方法类似于[6]的R-CNN,但使用Inception模型作为区域分类器进行了扩展。此外,区域建议步骤通过将选择性搜索[20]方法与多框[5]预测相结合来改进,以实现更高的对象边界框召回。为了减少误报的数量,超像素大小增加了2倍。这将使选择性搜索算法的建议减半。我们添加了来自multi-box[5]的200个区域提案,总计约占[6]所用提案的60%,同时将覆盖率从92%提高到93%。通过增加覆盖率减少提案数量的总体效果是,单个模型案例的平均精度提高了1%。最后,在对每个区域进行分类时,我们使用了6个GoogLeNets集合。将准确率从40%提高到43.9%。与R-CNN相比,由于时间不够,我们没有使用边界框回归。
在表中报告了官方分数和每个团队的常见策略:使用外部数据、集成模型或上下文模型。外部数据通常是ILSVRC12分类数据,用于预先训练模型,然后根据检测数据进行细化。由于检测数据集中不包含大部分本地化任务边界框,因此可以使用此数据预训练通用边界框回归器,方法与预训练中使用分类的方法相同。
在表中,我们仅使用单个模型比较结果。表现最好的模型是Deep Insight,令人惊讶的是,3个模型的组合只提高了0.3(40.5%-40.2%)点,而GoogLeNet的组合获得了明显更强的结果(43.9%-38.02%)。
结论
通过可用的稠密构造块逼近期望的最佳稀疏结构是改进计算机视觉神经网络的一种可行方法。与较浅和较窄的体系结构相比,该方法的主要优点是在计算需求适度增加的情况下显著提高了质量。
对象检测工作很有竞争力,尽管没有利用上下文,也没有执行边界框回归,这进一步证明了概念架构的优势。
对于分类和检测,可以期望通过相似深度和宽度的更昂贵的非Inception类型网络来获得相似的结果质量。我们的方法还是提供了确凿的证据,证明迁移到更稀疏的体系结构是可行的,也是有用的。这表明,未来的工作将在[2]的基础上,以自动化方式创建更稀疏、更精细的结构,并将Inception体系结构的见解应用于其他领域。