码迷,mamicode.com
首页 > Web开发 > 详细

VERY DEEP CONVOLUTIONAL NETWORKS FOR LARGE-SCALE IMAGE RECOGNTION(翻译)

时间:2018-09-09 18:08:18      阅读:225      评论:0      收藏:0      [点我收藏+]

标签:准确率   不同   规则   裁剪   配置   均值   网络模型   架构   集群   

0 - ABSTRACT

  在这个工作中,我们研究了卷积网络的深度对于它在大规模图像识别设置上的准确率的效果。我们的主要贡献是对使用非常小的卷积核(3×3)来增加深度的网络架构进行彻底评估,这说明了通过将深度增加到16-19层能够比之前最好的业界水平更好。这些发现是我们参加ImageNet Challenge 2014的基础,在这个比赛中我们团队在定位和分类追踪任务上分别获得了第一和第二的名次。我们也表明了我们的模型可以很好的扩展到其他数据集上,并都达到了最佳的水平。我们已经将我们的两个效果最好的卷积网络模型开源,以此希望能够促进计算机视觉中深度视觉表达的更进一步的研究。

1 - INTRODUCTION

  卷积网络(ConvNets)最近在大规模图像和视频识别上面取得了很大的成功,这可能得益于大型的开源图像库,例如ImageNet,以及高性能的计算系统,例如GPUs或者大规模分布式集群。特别是在深度视觉识别架构发展中扮演重要角色的ImageNet Large-Scale Visual Recognition Challenge (ILSVRC),从高维浅层特征编码到深度卷积网络,它为几代大规模图像分类系统提供了测试平台。

  随着卷积网络在计算机视觉领域中的应用越来越广,越来越多人尝试在Krizhevsky等人提出的原始架构上进行改进从而获得更高的准确率。例如,ILSVRC-2013最好的参赛模型在第一个卷积层上使用了较小的接收窗口以及较小的步长。另一种改进方案是在增幅图像和它的几个尺寸上进行训练和测试网络。在本文中,我们关注了另一个卷积网络架构设计的重要方面——它的深度。为此,我们固定了网络架构中的其他参数,并且通过添加更多的卷积层有规则地增加网络的深度,因为沃恩所有层使用的是非常小的卷积核(3×3),因此这是可行的。

  因此,我们提出了有着更高精度的卷积网络架构,这个架构不仅实现了在ILSVRC分类和定位任务中的最好效果,而且在其他图像识别数据集上也表现了优异的性能,即时只是用来作为一个相对简单框架的一部分(例如作为无需微调的线性SVM的深度特征分类)。我们开源了两个性能最好的模型来促进进一步的研究。

  本文剩下的部分将被组织成如下几部分。在Sect. 2中,我们描述我们的卷积网络结构。Sect. 3将介绍图像分类任务的训练和评估的细节。Sect. 4将对在ILSVRC分类任务上的不同架构进行比较。Sect. 5总结这篇文章。为了文章的完整性,我们也在Appendix A部分描述和评估我们的ILSVRC-2014目标定位系统,并在Appendix B部分讨论了非常深的特征在其他数据集的泛化能力。最后,Appendix C部分包括了本文的主要修订记录。

2 - CONVNET CONFIGURATIONS

  为了公平的衡量由增加的卷积层深度所带来的性能提高,我们所有的卷积层都采用相同的方式设计,这由Ciresan等人(2011)Krizhevsky等人(2012)提出。在这个部分,我们首先描述我们卷积网络结构中的通用层(Sect. 2.1),然后描述在评估中具体的配置细节(Sect. 2.2)。在Sect. 2.3中讨论了我们的设计选择并且与向前最好的技术进行比较。

2.1 - ARCHITECTURE

  在训练阶段,卷积网络的输入为固定的244×244尺寸的RGB图像。我们唯一做的预处理是对每一个像素减去训练集中的RGB均值。图像通过堆叠起来的卷积层,这些层我们使用了非常小的接收域:3×3(这是用来获取左右、上下以及中心信息的最小尺寸)。在我们的一种配置中,我们也使用了1×1卷积过滤器,这可以看成对于输入通道的一个线性变换(其后面接一个非线性变换)。卷积的步长固定为1像素;卷积层的空间填充(spatial padding)用来保持卷积后的图像的空间分辨率,对于3×3卷积核填充为1个像素。空间池化包含5个最大池化层,它们接在部分卷积层后面(并不是全部卷积层都后接有池化层)。最大池化层是通过2×2像素的窗口,步长为2来表现的。

  在堆叠卷积层(在不同架构有着不同的深度)之后接着三个全连接层:前面两个全连接层有4096个通道,第三个用来做1000类的ILSVRC的分类因此包含1000个通道(每一个类别一个通道)。最后一层是soft-max层。全连接层的配置在所有网络中是一致的。

  全部的隐藏层都是用非线性修正(ReLU)。注意到我们的网络(除了一个)都不包含了局部响应标准化(LRN):这将在Sect. 4中展示,这个标准化并不会提高网络在ILSVRC数据集上的表现,但是反而增加了内存的消耗以及计算时间。在适用的情况下,LRN层的参数都是那些(Krizhevsky等人在2012提出的)。

 2.2 - CONFIGURATIONS

  本文所评估的卷积网络配置如表1所示,每一列代表一种网络。接下来我们将分别称它们为(A-E)。所有网络的配置遵循Sect. 2.1的通用设计,它们只有在深度上面不一样:从网络A中有11个权重层(8个卷积层和3个全连接层)到网络E中有19个权重层(16个卷积层和3个全连接层)。卷积层的宽度(通道的数量)非常小,从第一层的64开始,没经过一个最大池化层增加一倍,直到达到512。

 技术分享图片

表1:卷积网络配置(以列表示)。从A到E网络结构的深度逐步增加,同时加入了更多的层(加入的层用粗体表示)。卷积层的参数表示为"conv<receptive field size>-<number of channels>"。为了简洁,ReLU激活函数没有显示。

  在表2,我们展示了每一种配置的参数数量。经过网络很深,我们网络的权重数量并不比一个更浅但有更大卷积层宽度和接收域的网络的权重数量多。

       技术分享图片

表2:参数数量(单位:百万)

2.3 - DISCUSSION

  我们的卷积网络架构与ILSVRC-2013和ILSVRC-2013中表现最好的模型很不一样。我们在整个网络中使用了很小的3×3接收域,而不是在第一层卷积使用相对较大的接收域(11×11以及步长为4)或者7×7和步长为2,这样做可以对输入的每一个像素都进行卷积(步长为1)。很容易发现,两个3×3卷积层堆叠(中间没有空间池化)相当于一个5×5的有效接收域;3个堆叠的话则相当于7×7的有效接收域。所以为何我们要使用三个3×3卷积层而不是一个简单的7×7卷积层呢?首先,我们使用三个非线性修正层而不是简单的一个,这使得决策函数变得更具判别性。其次,我们减少了参数的数量:假设三个3×3卷积层的输入和输出都有C个通道,那么这个堆叠起来的网络有$3(3^2C^2)=27C^2$个权重;同时,一个单一的7×7卷积层将需要$7^2C^2=49C^2$个参数,也就是相对增加了81%。这相当于在7×7卷积核上强加了一个正则化,迫使它们通过3×3的滤波器来分解(中间有非线性的加入)。

  1×1卷积层的使用(架构C,表1)是在不影响卷积层接收域的情况下增加非线性决策函数的一种方法。虽然在我们的情况下,1×1卷积层本质上相当于到相同空间维度的一个线性投影(输入和输出的通道数是一样的),但是修正函数使其加入了非线性。值得注意的是,1×1卷积层最近被Lin等人使用在"Network in Network"架构中。

  之前Ciresan等人(2011)使用过小尺寸的卷积核,但是它们的网络远没有我们的深,并且他们也没有在大规模ILSVRC数据集上进行评估。Goodfellow等人(2014)在街道数值识别任务中应用了深度卷积网络(11个权重层),并且证明了增加的深度使得模型产生更好的性能。Szegedy等人(2014)提出的GoogLeNet,ILSVRC-2014分类任务的第一名,区分于我们的工作,其有独立的方向研究,但是相似的是我们都是基于非常深的卷积网络(22个权重层)以及小的卷积核(除了3×3,他们还使用了1×1以及5×5卷积)。他们的网络拓扑比我们的更加复杂,并且为了降低计算量,其特征图的空间分辨率在第一层下降非常严重。Sect. 4.5将会展示我们的模型在单一网络分类准确率上优于GoogleNet。

 3 - CLASSIFICATION FRAMEWORK

  在前面的部分我们展示了我们网络配置的细节。在这个部分,我们将描述用于分类的卷积网络训练和评估的细节。

3.1 - TRAINING

  卷积网络训练过程基本遵循Krizhevsky等人(2012)(除了从多尺度训练图像上采样裁剪的输入图像,稍后会做解释)。也就是说,通过使用含动量的最小批量梯度下降(基于反向传播)优化多元逻辑回归来对模型进行训练。其中batch size设置为256,momentum为0.9。训练将通过权值衰减进行调整($L_2$惩罚系数设置为$5\times 10^{-4}$以及对前面两个全连接层执行dropout来进行调整(dropout的比率设置为0.5)。学习率被初始化为$10^{-2}$,而后当验证集的准确率停止提高的时候,将学习率除以10。学习率总共降低了3次,训练一共进行了370K次迭代(74个epoch)。我们猜测,尽管与Krizhevsky等人(2012)相比我们的网络有着更大数目的参数以及更深的深度,当我们的网络只需要更少的epoch来收敛,这得益于(a)更深的深度和更小的卷积核尺寸隐式地增强了正则化;(b)对某些层进行了预初始化。

  网络权重的初始化时非常重要的,因为不合适的初始化由于深度网络梯度的不稳定性而会阻碍网络的学习。为了避开这个问题,我们从训练配置A(表1)开始,它足够浅以使得能够使用随机初始化进行训练。然后,当训练更深的架构的时候,我们使用网络A的相应网络层来初始化开始的四个卷积层和后面的三个全连接层(中间层采用随机初始化)。我们对于与初始化层的学习率不进行降低,允许它们(有于初始化的参数?)在训练过程中进行改变。对于随机初始化,我们从均值为$0$以及方差为$10^{-2}$的正态分布中对权重进行采样。偏置项将被初始化为$0$。值得注意的是,在文章提交后我们发现可以使用Glorot & Bengio(2010)中的随机初始化程序来对权重进行初始化而不需要进行预训练。

  为了获得固定的244×244尺寸的卷积网络输入图片,将从尺寸放缩过后的训练图像上进行随机裁剪(每一张图像的每一个SGD迭代时候裁剪一次)。为了进一步增强训练集,裁剪图片进行随机的水平翻转以及随机的RGB颜色转换。训练图像的尺寸放缩将在后面部分进行解释。

 

VERY DEEP CONVOLUTIONAL NETWORKS FOR LARGE-SCALE IMAGE RECOGNTION(翻译)

标签:准确率   不同   规则   裁剪   配置   均值   网络模型   架构   集群   

原文地址:https://www.cnblogs.com/CZiFan/p/9613982.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!