Rethinking the Inception Architecture for Computer Vision
重新思考计算机视觉的 Inception 架构
首先阅读摘要和结论,然后对论文进行精度,其中包含一些模型优化的细节。
目录
卷积网络是大多数先进的计算机视觉解决方案的核心,适用于各种各样的任务。自2014年以来,深度卷积网络开始成为主流,在各种基准中产生了巨大的收益。尽管对于大多数任务(只要提供足够多的标记数据用于训练),增加的模型大小和计算成本往往转化为即时的质量增益,但计算效率和低参数计数仍然是各种用例(如移动视觉和大数据场景)的使能因素。在这里,我们正在探索扩大网络规模的方法,其目的是通过适当的分解卷积和积极的正则化来尽可能有效地利用增加的计算。我们效验我们的方法在ILSVRC 2012分类挑战验证集上展示了比当前最先进的方法的显著优势:21.2 %的top-1和5.6 %的top-5误差用于单帧评估,使用的网络每次推理的计算量为50亿乘加,使用的参数少于2500万。通过4个模式的集合和multi-crop评估,我们报告了3.5 %的top-5误差和17.3 %的top-1误差。
multi-crop:通过对图像进行裁剪进行图像数据增强。
我们提供了一些设计原则来扩展上卷积网络,并在Inception体系结构的背景下对它们进行了研究。这种指导可以导致高性能的视觉网络,与更简单、更单一的架构相比,具有相对适中的计算成本。我们的Inception-v3最高质量版本在ILSVR 2012分类的single-corp评估中达到了21.2 %的top-1误差和5.6 %的top-5误差,开创了最新的技术。这与《Batch normalization: Acceleratingdeep network training by reducing internal covariate shift. 》中描述的网络相比,在计算成本上增加了相对较小( 2.5 × )。不过,我们的解决方案比基于更密集网络的最佳发布结果的计算量要少得多:我们的模型优于《Delving deep intorectifiers: Surpassing human-level performance on imagenet classification. 》的结果- -分别将前5 (前1 )个误差减少了25 % ( 14 % ) - -同时在计算上便宜了6倍,并且使用了至少5倍的参数(估计)。我们的四个Inception - v3模型的集成达到了3.5 %,multi-crop评估达到了3.5 %的前5个误差,比最佳发布结果减少了25 %以上,几乎是ILSVRC2014 winining谷歌公司集成误差的一半。
我们也证明了在感受野分辨率低至79 × 79的情况下也能得到高质量的结果。这可能在检测相对较小物体的系统中有所帮助。我们研究了神经网络内部的因子分解卷积和激进的降维如何在保持高质量的同时产生计算成本相对较低的网络。较低的参数计数和额外的正则化与批标准化的辅助分类器(auxiliary classifiers)和标签平滑相结合,可以在较小的训练集上训练高质量的网络。
标签平滑(label smoothing):这是一种正则化策略,主要是通过soft one-hot来加入噪声,减少了真实样本标签的类别在计算损失函数时的权重,最终起到抑制过拟合的效果。
在这里,我们将描述一些基于卷积网络的各种体系结构选择的大规模实验的设计原则。在这一点上,下面的原则的效用是推测和额外的未来实验证据将是必要的,以评估其准确性和有效性的领域。尽管如此,对这些原则的严重偏离往往会导致网络质量的恶化,而这些偏差被发现的情况通常会导致体系结构的改进。
虽然这些原则可能是有意义的,但使用它们来提高网络的质量是不可能的。其思路是只在不明确的情况下明智地使用它们。
《Going deeper with convolutions》引入了auxiliary classifiers的概念,提高了深度网络的收敛性。最初的动机是将有用的梯度推到下层,使其立即有用,并通过对抗非常深的网络中的梯度消失问题来改善训练过程中的收敛性。《Deeply-supervised nets》认为auxiliary classifiers促进了更稳定的学习和更好的收敛。有趣的是,我们发现xauxiliary classifiers在训练初期并没有带来更好的收敛性:在两个模型都达到很高的准确率之前,有侧头(side head)和无side head网络的训练过程看起来几乎完全相同。在接近训练结束时,带有auxiliary 分支的网络开始超过没有任何auxiliary 分支的网络的精度,并达到一个稍高的平台。
《Going deeper with convolutions》在网络的不同阶段使用了两个侧头。删除较低的auxiliary分支对网络的最终质量没有任何不利影响。结合前面段落中的早期观察,这意味着最初的假设,即这些分支有助于发展低级特性,很可能是错误的。相反,我们认为auxiliary classifiers充当正则化器。这是因为如果两个侧头是 batch-normalization 或有一个 dropout 层,网络的主分类器性能更好。这也为批归一化充当正则化器的猜想提供了一个弱的支持证据。
最下面的网格是5*5的卷积,然后用两个3*3的卷积替代它,最终都是得到一个参数(最上面的正方形)
因子分解卷积后的线性激活函数和ReLU激活函数的比较。两个3*3的卷积,其中一个使用分解为线性+ ReLU层,另一个使用两个ReLU层。经过386万次运算后,前者达到76.2 %,后者在验证集上达到77.2 % top - 1的准确率。
左边是原始的Inception模块,右边是进行因子分解后的Inception模块。
3*3的卷积分解成前面是1*3的卷积和后面是3*1的卷积的组合。
下图是n × n卷积分解后的初始模块。在我们提出的架构中,对于17 × 17的网格,我们选择n = 7。
两种减小网格尺寸的替代方法。左侧的解决方案违反了“一般设计原则”中不引入表示瓶颈的原则1。右边的版本在计算上要昂贵3倍。
我们建议另一个变体降低计算成本甚至更进一步,同时消除代表性的瓶颈。左侧是Inception的变体。右图在扩展滤波器组的同时减小网格大小。它既便宜又避免了原则1所建议的代表性瓶颈。右边的图从网格大小的角度来提出的解决方案,左图是具体的操作。
过拟合和概率校准是训练深度学习模型时出现的两个问题。标签平滑是一种正则化技术,同时对抗过度拟合和过度自信。
它既扰动目标变量,使模型对其预测的确定性降低。也限制了softmax 函数的最大概率使最大概率不会比其他标签大得多,即过度自信(比如:一个标签的预测概率是99.99%,其他的标签的预测概率和是0.01%)。
视觉网络的一个典型用例是用于检测的后分类,例如《Scalableobject detection using deep neural networks》的多框分类。这包括对包含单个物体且具有某种上下文的图像的一个相对较小的块进行分析。任务是决定 patch 的中心部分是否与某个对象对应,如果是,则确定该对象的类。面临的挑战是物体往往相对较小且分辨率较低。这就提出了如何妥善处理低分辨率输入的问题。
通常的看法是,采用高分辨率感受野的模型往往会导致识别性能的显著提高。然而,重要的是要区分第一层感受野分辨率提高的影响和较大的模型容量和计算量的影响。如果我们只是改变输入的分辨率而不对模型做进一步的调整,那么我们最终使用计算上更便宜的模型来解决更困难的任务。当然,这是自然的,这些解决方案因为减少了计算的努力已经以失败告终。为了做出准确的评估,模型需要分析模糊的提示,以便能够"幻觉"精细的细节,然而计算成本昂贵的。因此,问题仍然是:在保持计算量不变的情况下,较高的输入分辨率是否有帮助。确保不断努力的一个简单方法是在较低分辨率输入的情况下减少前两层的步幅,或者简单地移除网络的第一个池化层。
为此,我们进行了以下三个实验:
所有三个网络的计算成本几乎相同。虽然第三种网络稍微便宜一些,但是池化层的成本是边际的,而且是在总成本的1 %以内的网络。在每种情况下,对网络进行训练,直到收敛,并在ImageNet ILSVRC 2012分类基准的验证集上测量其质量。结果见下表。虽然低分辨率网络需要更长的时间来训练,但最终结果的质量与高分辨率网络的质量相当接近。
表格中的这些结果表明,虽然随着感受野的尺寸变大,精确率随之升高,但是精确率的差别不是很大。表格中的这些结果也表明,对于 R - CNN 中的较小对象,可以考虑使用专用的高成本低分辨率网络。
有上述的表格可以观察到:Google_v3模型比Google_v1和Google_v2_BN有了很大的性能提升。
>>>如有疑问,欢迎评论区一起探讨。
>>>论文精读以及模型解析往期链接: