卷积网络的深度对大规模图像识别的影响
论文地址:[PDF] Very Deep Convolutional Networks for Natural Language Processing | Semantic Scholar
摘要
本文研究卷积网络的深度对大规模图像识别准确率的影响。主要贡献是全面计算了不同深度的卷积网络的性能,这些卷积网络都使用 3 x 3 的小型卷积核。计算后发现提升现有模型的层数到 16-19 层,可以显著增强识别性能。该计算基于 ImageNet 2014 比赛,我们的团队分别获得定位与分类任务的第一、第二名。本文也会展示我们建模的表示在其他数据集上的优秀泛化性,可达到最新算法的效果。我们公开了性能最好的两个卷积网络模型,以促进未来深度视觉表示相关研究。
简介
卷积网络最近在大规模图像与视频识别方面取得了重大进步。能取得该成果,离不开大型公开图片数据集,如 ImageNet,也离不开高性能计算系统,如 GPU 和分布式集群。实际上,ImageNet Large-Scale Visual Recognition Challenge ILSVRC 在深度视觉架构的成功上扮演了重要角色,它从高维特征浅层编码到深度卷积网络,都提供了测试基准。
在计算机视觉领域,卷积网络越来越像商品。人们在 Krizhevsky 等人的原始模型架构(AlexNet)上做了许多尝试来提升识别准确率。例如,ILSVRC 2013 比赛中最高性能的模型,使用了更小的感知窗口和更小的第一个卷积层的步长。另一种性能提升思路是在各种规模的数据集上训练与测试模型性能。本文,我们着眼于卷积架构设计的另一个重要方面,深度。为了研究该目标,我们固定网络其他参数不变,逐步添加卷积层数,提升网络深度。通过在所有层上使用非常小的 3 x 3 卷积核,增加卷积层数是可行的。
最终,我们提出一个更准确的卷积网络架构,不仅达到 ILSVRC 比赛最新模型的效果,还能用在其他图像识别数据集上,即使只用简单的流水线式模型(深度特征表示通过 SVM 分类),得到的分类效果也比之前的模型好得多。
本文其余部分组织如下。第二节,介绍卷积网络配置。第三节,介绍图像分类训练与计算细节。第四节,比较不同的模型架构。第五节,总结全文。
卷积网络配置
为了公平度量通过增加卷积网络层数带来的提升,我们使用同样的原则设计所有卷积层。本节介绍通用卷积网络配置,然后介绍计算时特殊配置的细节。本节也比较了我们的设计选择与当前最新的模型结构。
架构
训练时,卷积网络的输入是 224 x 224 RGB 图像。我们只做了在整个训练集上计算 RGB 平均值的预处理。图像在一串卷积层中传递,使用 3 x 3 的卷积核。该卷积核是能捕获上下、左右、中心等定义的最小规模的卷积核。我们也用过 1 x 1 卷积核做对比,该卷积核可视为对输入通道对线性转换。卷积步长固定为 1。通过填充保留原始图像大小,即对 3 x 3 卷积核来说,填充为 1。在五个卷积层后添加最大池化层,不是所有卷积层后都做最大池化。池化配置为 2 x 2 窗口,步长为 2 。
这一系列卷积层后跟 3 个全连接层 FC。前两个有 4096 宽度,第三个输出 1000 个类别。最后一层是 softmax 层。全连接层的配置在所有实验架构中都一样。
所有隐藏层后都跟着 ReLU 非线性处理。我们的模型不做局部响应归一化 Local Response Normalization LRN。该归一化处理不能提升 ILSVRC 数据集的识别性能,但会增加内存使用率与计算时间。说的是 Krizhevsky 论文中提到的那种 LRN 参数。
配置
本文计算的卷积层配置如下各列表所示。下文使用 A-E 来指代这些网络。所有的网络都按上一小节的架构设计,区别只有层数:从 11 层的 A 网络到 19 层的 E 网络。卷积层的宽度(通道数)都非常小,从第一层的 64 开始,在每次最大池化层后,以 2 的倍数增长,最大达到 512 。
下表介绍了不同网络的参数量,尽管深度增加不少,网络的参数数量几乎不变。
讨论
我们的卷积网络配置与 ISLVRC 比赛中最佳模型的配置非常不同。不是在第一个卷积层用相对大的感知域,我们在整个网络中使用 3 x 3 的小型感知域。很容易得到:堆叠两个 3 x 3 卷积层的效果等于一个 5 x 5 卷积层的感知域。堆叠三个的效果等于一个 7 x 7 的。那么通过多个小卷积层堆叠,能获得什么比单个大卷积层更好的效果呢?首先,我们合并了三个非线性层,而不是使用单个,这能使决策函数更具判断力。其次,我们增加了参数的数量:假设一个三层 3 x 3 卷积层堆叠的输入输出都是 C 个通道,那么该堆叠层具有 个参数。同时,单个 7 x 7 的卷积层参数量为 。这可被视为 7 x 7 卷积层的某种正则化,强行将其分解到 3 x 3 卷积。
组合 1 x 1 卷积层的操作,可看作是在不影响卷积感知域的前提下,提升决策函数的非线性判断力。虽然我们的 1 x 1 卷积只是做了相同空间里的线性映射,额外的非线性处理是 ReLU 函数产生的。
小型卷积核之前就有人用过,但他们的网络非常浅,且没有在大规模数据集上使用。GoogLeNet,ILSVRC 2014 最佳模型,与本文的研究相独立,但也利用了非常深的卷积网络和非常小的卷积核。然而它们的网络拓扑比我们的复杂多了,在第一层卷积对特征图的空间分辨率减少的更激进,以减少计算量。
分类框架
前边小节展示了模型配置细节,本节介绍卷积网络分类任务训练与计算细节。
训练
训练过程基本上遵照 Krizhevsky 的方法。训练是通过最优化多项式逻辑回归函数实现的,使用带动量的最小批梯度下降。BatchSize 为 256,动量为 0.9 。训练中使用权重衰减和 dropout 进行正则化。学习率初始设为 0.001 ,每遇到验证准确率不再提升时,衰减 1/10 ,共衰减 3 次。学习在 370k 次迭代后停止。尽管我们模型的参数量和深度都大于 Krizhevsky 等人的模型,我们网络需要更少的 epoch 达到收敛。推测其原因是,更深的层数和更小的卷积核带来隐式的正则化,另一个原因是某些层的预初始化。
网络权重预初始化非常重要,差的初始化参数会导致学习停滞,因为深度网络的梯度不稳定。为了规避该问题,我们首先训练网络 A ,该网络足够浅,可以用随机初始化的参数训练。然后,使用 A 的训练后参数初始化更深模型的对应层参数。我们并不减少这些被初始化的层的学习率。对于随机初始化,使用均值为 0 方差为 0.001 的正态分布。
对原始图片的处理与样本增强,略。
测试
使用 Sermanet 等人的方法对测试数据做处理,不必将其裁剪为固定大小。使用该方法能提高感知视野,捕获更多上下文。
分类实验
略
总结
本文评估了非常深的卷积网络在大规模图像分类的效果。通过实验展示了表示深度对分类准确率有益,确认了模型深度在视觉表示上的重要性。