计算机系统应用教程网站

网站首页 > 技术文章 正文

Inception系列:V1 GoogLeNet (2)

btikc 2024-09-04 03:17:59 技术文章 12 ℃ 0 评论

原创翻译,论文来自:https://arxiv.org/pdf/1409.4842.pdf

如有翻译瑕疵,敬请见谅

Going deeper with convolutions

4 Architectural Details

Inception架构的主要思想是基于发现,卷积视觉网络中的最优局部稀疏结构如何被可获得的密集分量估计并覆盖。请注意,假设位移不变形意味着我们的网络将由卷积构建块构建。我们需要的是找到最佳的局部构造,并在空间上重复。Arora组提出了一个层次结构,其中最后一层应该分析其correlation statics,并通过高相关性将他们聚类。这些聚类组成了下一层的单元,并和上一层的单元相连接。我们假设来自较早层的每个单元对应于输入图像的某个区域,同时这些单元被分组成滤波器组。在较低层(接近输入层),相关单元会集中关注局部区域。这意味着,我们会得到很多聚类只注重于单个区域,而如Network in Network提出的那样,它们可以在下一层被1x1的卷积层覆盖。然而,人们还可以预期,在更大的区块下,更少数量的空间扩散聚类可以被卷积覆盖,随着区域增大,这样的区块会越来越小。为了防止区块对齐问题,Inception架构的当前形势仅限于过滤尺寸1x1,3x3和5x5,不过这更多的是基于方便而不是必要性。这也意味着这个结构是这样一些层的集合,这些层的输出集中在一个单独的输出矢量作为下一阶段的输入。另外,由于pooling操作在目前最佳的卷积网络的成功中十分必要,所以在每一个阶段添加一个平行的pooling操作应该有额外的益处(如图2(a))。

图2:Inception模块

由于这些Inception modules堆叠在一块,他们输出的correlation statisctics必然会发生变化:由于更高级的抽象由更高级的层提取,那么他们空间的相关性会降低,那么3x3和5x5的卷积核应该增加。

在幼稚形态的Inception module中有一个大问题,在具有大量滤波器的卷积层之上,即使是中等数量的5x5卷积也可能是非常昂贵的。一旦将pooling单元添加到组合中,这个问题会变得更加明显:它们的输出滤波器数量等于前一级的滤波器数量。卷积层和pooling层的输出合并将导致,在一个个阶段下,输出数量不可避免地增加。即使这种架构有可能覆盖最佳稀疏结构,但也非常没有效率,并导致计算量的爆炸增长。

这引导了我们提出架构的第二个想法:在计算需求会增加太多的地方,明智地进行维度减少和预测。这是基于嵌入的成功:即使是低维度嵌入可能包含大量有关较大图像区块的信息。然而,嵌入式表达信息(密集压缩的形式)和压缩后的信息是很难进行模型化的。我们希望在大部分地方保持表达稀疏性,并只有在它们必须大量聚合的时候才压缩信号。那就是,在昂贵的3x3和5x5卷积之前,用1x1卷积进行降维。除了被用作降维之外,它们还包括ReLU,这样它们就有双重目的了。最终结果在图2(b)描绘。

总的来说,Inception网络是由上述类型的模块组成的网络,彼此堆叠,夹杂着步长为2的max-pooling层,用来将网格分辨率减半。出于某些技术原因(训练时的内存效率),开始仅在较高层使用Inception模块似乎更有益,同时在较底层保持传统卷积方式。这不是绝对必要的,只是反映了我们目前实现中的一些基础设施效率低下的问题。

该架构的主要优点之一是他可以显著增加每个阶段的单元数量,而不造成计算复杂的的不受控制地爆炸。降维得一直使用,使得大量的输入滤波图得以在下个层的前一阶段屏蔽,如何去做呢,就在使用大尺寸卷积之前首先减少它们的维度。该设计的另一个实际有用的方面是它与视觉信息的直觉(视觉信息应该由不同尺度来处理然后聚合到一起,这样下一个阶段可以同时抽取不同尺度的特征)相一致。

改进使用计算资源允许增加每个层的宽度以及层的数量,而不会导致计算资源增加。使用Inception架构的另一个方法是创建稍微较差但是计算量较低的版本。我们已经发现,所有包含knobs和levers的计算资源都可以进行受控平衡,可以使网络比类似于非Inception架构的网络快2-3倍,但是这需要在这一点上仔细的手动设计。

5 GoogLeNet

我们在ILSVRC14比赛中选了GoogLeNet作为我们的团队名称。这个名字是对Yann LeCuns开创LeNet 5网络的致敬。我们还使用GoogLeNet来指代我们提交的竞赛中使用的Inception架构的一个版本。我们还使用了一个更深更宽的Inception网络,其质量稍差一些,但将其添加到结果集似乎略有提高准确率。我们省略了该网络的细节,因为我们的实验表明,具体的架构参数的影响相对较小。在这里,为了演示目的,表1中描述了最成功的特定实例(名为GoogLeNet)。在我们的集合中,7个模型中的6个使用完全相同的拓扑结构(不同的采样方法训练)。

表1:Inception架构的GoogLeNet实例

所有的卷积,包括那些在Inception模块里面的,使用ReLU。我们网络的初始感知域大小是RGB三色通道的224x224,需要减掉均值。“#3x3 reduce”和“#5x5 reduce”表示降维层的1x1滤波器,分别在3x3和5x5卷积之前。在max-pooling之后,在pool proj列中内置投影层中1x1滤波器数量。所有这些reduction/projection层都使用了ReLU。

网络设计考虑了计算效率和实用性,因此可以在单个设备上进行前向推导,包括具有有限计算资源的设备,特别是具有低内存占用的设备。当仅计算有参数层时,这个网络深度为22层(如果计算pooling层,则为27层)。网络构建的总层数(独立的构建块)大约是100。不过这个数字也和机器学习框架系统相关。在分类前使用average pooling是基于NIN,但我们的实现稍有不同,用了额外的线性层。这使得我们的网络能够对其他的标记集更简单地适应和微调,但最主要的还是方便,我们也不希望它产生主要影响。全连接层改变为average pooling能令top-1准确率提高0.6%,但dropout的使用仍然非常重要,即使不使用全连接层。

考虑到网络的相对较大的深度,有效地将梯度传递会所有层中的能力,是一个主要考虑的问题。一个有趣的见解是,相对较浅的网络在梯度传播这个任务上有强大的表现,这表明网络中间层产生的特征应该是有区分性的。通过添加这些中间层的辅助分类器,我们期望加大分类器中较低阶段的区分,增加区分度,增大被回传的梯度信号,并提供额外的regularization。这些分类器采用较小的卷积网络的形式,放置在Inception(4a)和(4d)模块的输出之上。在训练过程中,他们的loss以打折的形式加载网络的total loss上(辅助分类器的权重是0.3)。在前向推导的时候,这些辅助分类器会被抛弃。

包括辅助分类器在内的总网络的确切结构如下:

  • 5x5的average pooling层步幅是3,产生了如(4a)4x4x512的输出,如(4d)4x4x528的输出。

  • 128个1x1的卷积层做降维和ReLU。

  • 1024个单元的全连接层和ReLU。

  • 以softmax作为loss的线性层作为分类器(预测相同的1000类,但在前向推导时去除)。

所得的网络示意图如图3所示。

图3:GoogleNet的网络结构

6 Training Methodology

我们的网络使用DistBelief分布式机器学习系统,运用适当数量的模型进行数据并行训练。虽然我们仅使用基于CPU的实现,但粗略的估计表明,如果使用少数高端GPU进行融合训练,GoogleNet可以在一个星期内训练完成,主要的限制是内存使用。我们的训练使用0.9的momentum,固定学习速率计划的异步随机梯度下降(每8个epochs将学习率降低4%)。最终推理的模型,使用polyak averaging来创建。

在这几个月的竞赛中,我们的图像抽样方法发生了重大变化,已经聚合的模型用其他选择进行训练,有时结合变更的超参数,如退学和学习率,因此很难给出明确的指导来表明最有效的单一方式来训练这些网络。进一步使事情复杂化的是,其中一些模型主要是对相对较小的修剪做训练,其他模型主要是对较大的修剪进行训练。然而,有一个有效方法在经过竞赛后得到验证,对图像尺寸均匀分布在图像区域的8%到100%之间的各种大小的裁剪进行抽样,长宽比在3/4和4/3之间。此外,我们发现光度扭曲在一定程度上有助于防范过拟合。此外,我们开始使用随机插值方法(bilinear, area, nearest neighbour和cubic, 等概率)进行相对较晚的大小调整,并结合其他超参数变化,所以我们无法确定最终结果是否受运用它们到积极影响。

7 ILSVRC 2014 Classification Challenge Setup and Results

The ILSVRC 2014 classification challenge涉及将图像分类为Imagenet层级中的1000个叶节点类别之一的任务。有大约120万张训练图,5万张validation图和10万张测试图。每个图像与一个ground truth类别相关联,并且基于分类器的最高评分来测量性能。通常需要上报2个数字:top-1准确率,将ground truth和最高预测值类别比较;top-5的错误率,将ground truth和前5个预测值比较:如果ground truth在前5中,则图像被认为分类正确,无论这个准确分类在第几名。这个挑战使用top-5错误率做排名依据。

我们参加挑战,没有用外部数据做训练。除了本文提到的训练技术之外,我们在测试中采用了一套技术来获得更高的性能,我们在下面阐述。

  1. 我们独立训练了7个版本的相同结构的GoogleNet模型(包括一个宽版),并用它们做总体效果评估。这些模型用相同的初始化(相同的初始化权重)和学习率策略,仅在抽样方法和图片顺序中有所不同。

  2. 测试时,我们采用比Krizhevsky的AlexNet更为积极的裁剪方式。具体地说,我们将图像大小调整为4个尺度,其中较短的维度(高或宽)大小分别为256,288,320,352,取这些调整大小后的图像的左,中,右的正方形(在纵向图像的情况下,我们采用顶部,中心和底部方格)。对于每个正方形,我们提取四个角和中心的224x224做裁剪,然后都调整大小到224并提取他们的左右镜像。这使每张图能够提取4x3x6x2=144张裁剪图。Andrew Howard在前一年的竞赛中采用了相似的方法,我们经过实验证明表现略逊于我们的方案。我们注意到,在实际应用中,这种侵略性作物可能不是必需的,因为出现合理数量的裁剪后,更多裁剪的益处将变得边缘化(我们稍后将会展示)。

  3. softmax概率在多个裁剪图和所有的单个分类器上进行平均,以获得最终预测。在我们的实验中,我们分析了验证集的替代方法,例如对裁剪图做最大池化和对所有分类器做平均,但是它们比简单的平均产生了更差的效果。

在本文的其余部分,我们分析了有助于最终提交的整体绩效的多个因素。

我们在挑战的最终提交结果中,验证集和测试集的top-5错误率是6.67%,排在所有参与者的第一位。与2012年的SuperVision方法相比,这相对减少了56.5%,与上一年的最佳方法(Clarifai)相比,相对减少了40%,而且两者都使用了额外的数据来训练分类器。下表显示了一些效果最佳的方法的统计信息。

表2:分类效果

下表中,我们还通过改变预测图像的模型数量和裁剪图数量,来分析多个测试选项的性能。当我们使用1个模型时,我们选择了在验证集上top-1错误率最小的那个。所有数字都在验证数据集上报告,以免过度对测试数据过拟合。

图3: GoogleNet 分类图片效果

8 ILSVRC 2014 Detection Challenge Setup and Results

ILSVRC detection task是在200个可能的类中,对图像中的目标产生bounding box。如果他们的分类准确且bouding box和基准框重叠超过50%(使用Jaccard索引),则判定检测物体正确。其他检测被认为是假阳性,并被处罚。与分类任务相反,每个图像可能包含许多目标,也可能不包含任何目标,而且它们的尺度可能会从小到大变化极大。报告结果采用mean average precision(mAP)。

GoogleNet用于检测的方法与selective search RCNN类似,但是以Inception模型作为区域的分类器。此外,reigion proposal步骤采用selective search和muti-box predictions来改进。为了减少误报次数,超像素大小增加两倍。这将选择搜索算法的proposals减半。我们补充了来自multi-box的200个reigin proposals,总共有60%的proposals用于selective search RCNN,覆盖率从92%增加到93%。减少proposal数量并提高覆盖率的总体效果是单个模型平均精度提高1%。最后,我们使用了6个模型综合结果对每个区域进行分类,将结果从40%提高到43.9%。和R-CNN不同的是,由于缺少时间,我们没有使用bouding box regression。

图4:检测效果

我们首先报告了最佳检测结果,并显示了自第一版检测任务以来的结果。相较于2013年的结果,准确率几乎翻倍了。表现最好的几个团队都使用了卷积网络。我们在表4中报告了官方分数和每个团队的常见策略:使用额外的数据,集合模型或上下文模型。外部数据通常是ILSVRC12分类数据,用于预先训练的模型对检测数据进行改进。一些队伍提到使用位置数据。由于很大一部分boudingbox不包括在检测数据集中,所以可以使用该数据预训练一个通用的bouding box regressor,这与分类的预训练方式相同。GooleNet并没有使用位置信息进行预训练。

图5:检测任务的单个模型效果

在表5中,我们比较了使用单个模型的结果。最佳模型是Deep Insight,令人惊奇的是,3个模型的组合对于Deep Insight只提升了0.3%,但GoogleNet得到了非常明显的提升。

9 Conclusions

我们的结果似乎导致了一个坚实的证据,即通过容易获得的密集构建块近似预期最优的稀疏结构是改进计算机视觉神经网络的可行方法。与较浅和较宽的法律相比,该方法的主要优点是在适度增加计算要求方面具有显著的质量增益。还要注意,尽管既不利用上下文也不用bounding box regression,我们的检测工作仍然具有竞争力,这一事实进一步证明了Inception架构的实力。虽然类似的深度和宽度的网络可以实现类似的结果质量,但我们的方法可以得出坚实的证据,表明移动到稀疏架构是一般可行和有用的想法。这表明,未来将会以自动化的方式创造更为精细的结构。

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表