基于深度卷积神经网络的图像识别分类外文翻译资料

 2022-10-30 10:32:59

英语原文共 9 页,剩余内容已隐藏,支付完成后下载完整资料


基于深度卷积神经网络的图像识别分类

摘要

我们训练了一个大型深度卷积神经网络,它可以将ILSVRC-2010比赛中的120万张高分辨率图片分成1000种不同的类别。在测试数据中,我们的top-错误率1和top-5错误率分别为37.5%和17.0%,这比以往的技术有了显著的提高。这个大型神经网络包含6千万个参数和65万个神经元;由5个卷积层,部分卷积层附带一个最大值汇合层,3个全连接层和一个能进行1000种分类的最终分类器构成。为了让训练过程更快,我们在卷积操作部分使用了非饱和神经元和一个高效率GPU。我们采用了一种近期发展成熟的正则化方法——dropout方法来降低在全连接层发生的过拟合现象,这种方法经证明非常有效。我们也在ILSVRC2012比赛中采用了这种模型的一个变体形式,最终我们以15.3%的top-5成绩赢过了第二名26.2%的测试错误率。

1介绍

当前主流的目标识别的实现重点利用了机器学习的方法。为了提高它们的分类能力,我们可以收集更大的数据集,学习更强大的模型,并且采用更好的防止过拟合的技术。目前,有标记的图片数据集还是比较小——大约是以万计(例如NORB[16],Caltech-101/256[8,9]和CIFAR-10/100[12])。这样的数据量可以完成简单的识别任务,尤其是当数据经过保留标签转换处理后。例如,目前为止MNIST数字识别项目最低的错误率(lt;0.3%)基本达到人类的识别水平[4]。但是现实环境中的物体展示出多样性,所以想要获得更好的识别能力需要更加庞大的训练数据。其实,数据量小的缺点已经是众所周知,但一直到最近才可以收集到百万级的带标签图像数据集。最新的大型数据库包括LabelMe [23] , 其内含数十万张完全分块化图像,以及ImageNet [6] , 其内含超过1500万张、共22000多类带标签的高分辨率图像。

为了从百万计的图像中训练适用于数千个图像的分类模型,我们需要一个具有很大训练容量的模型。但是,图像识别问题本身极大的复杂性使得即使利用ImageNet这样庞大的数据库也还是难以完美地解释该问题。所以为了弥补数据的不足,我们的模型需要基于许多前人研究。CNN就是符合我们要求的一类模型 [16,11,13,18,15,22,26]。通过调整CNN模型的深度和宽度,我们可以控制其容量。另外CNN模型对图象性质的假设全面且基本正确(即统计量的定态假设以及像素局部依赖性假设)。因此,相比于传统的前馈神经网络使用相同大小的中间层,CNN使用更少的连接数和参数,所以能够更好地训练模型,同时其理论最优识别能力仅稍弱于传统模型。

即使CNN具有良好的性质以及相对高效的架构,应用于大规模的高清图像时还是很耗资源。幸运的是,现在的GPUs配合高度优化的二维卷积,已经可以用于训练出乎意料的大型CNN模型。另外像ImageNet这样最新的数据集包含足够的标签样本,可以很好地训练CNN模型的同时不引起严重过拟合问题。

本文的主要贡献是:我们基于ILSVRC-2010及ILSVRC-2012的ImageNet数据集,训练了目前最大的CNN[2],并且取得了目前为止对该数据集最好的分类结果。我们编写了一个高度优化的在GPU环境执行的二维卷积过程,以及其他训练CNN的相应操作,其内容已发表。我们的网络包含了一些新颖的特征,不仅提高了分类效果还减少了训练耗时,具体详见第三节。由于我们的模型过于庞大,即使有120万训练标签样本,还是会面临过拟合的问题,这在第四节中有具体讨论。我们最后训练出的网络包含五个卷积层和三个全连接层,这个深度设置非常关键:我们发现移除任何一个卷积层(虽然只包含不超过全局1%的参数)都会导致较劣的分类效果。

最后,神经网络的大小主要是受限于所使用的GPU的显存,以及我们所能接受的训练耗时。我们的CNN训练使用了两个GTX 580 3GB GPU,总共耗时5至6天。实验结果还表明,只要有更快的GPU和更大的数据集可使用,模型的分类效果还可以提高。

2 数据集

ImageNet内含超过1500万张、共22000多类带标签的高分辨率图像。图像是从网络上收集并通过亚马逊土耳其机器人众包工具人工添加标签。ILSVRC - ImageNet Large-Scale Visual Recognition Challenge起始于2010年,是一年一度的比赛,也是属于Pascal Visual Object Challenge比赛的一部分。ILSVRC用ImageNet的部分数据集,包含1000个类别,每个类别选取约1000张图像,总计有120万张训练图像,5万张验证图像,和15万张测试图像。

ILSVRC-2010是所有ILSVRC系列比赛中唯一提供测试图像标签的比赛,所以我们大部分的实验是基于该数据集。我们还将模型应用于ILSVRC-2012,在第六节中我们会提供训练结果,不过该数据集没有提供测试图像标签。使用ImageNet训练模型,一般大家都会计算两个错误率,即前文提到的Top-1错误率及Top-5错误率,其中Top-5错误率指的是测试图像中,未能被模型的前五个预测结果正确分类的图像占所有图像的比例。

ImageNet包含各种清晰度的图像,但我们的模型需要固定的输入维度。因此我们将所有图像都进行下采样处理,统一调整为256times;256规格。具体步骤是,对一张长方形图像,我们先将其短边长度缩小至256像素,然后截取图像中央256times;256大小的部分作为最终使用图像。除此以外,我们还对图像的每一个像素进行中心化处理。所以神经网络训练使用的是图像像素中心化后的RGB值。

3 架构

我们的网络架构总结在图2中。它包含了八个训练层 - 五个卷积层和三个全连接层。以下我将介绍我们的网络架构中所引入的新颖的特征。下文3.1-3.4的顺序依照其重要性排列,其中3.1最重要。

3.1 ReLU 非线性化神经元

神经元根据输入值x的输出函数f一般采用tanh作为激活函数,即f(x)=tanh(x)或者f(x)=。当使用梯度下降法寻找最优解时,这类饱和非线性激活函数,相比于非饱和非线性激活函数,耗费更长的训练时间。借鉴Nair和Hinton [20]的研究,我们采用ReLUs非线性化神经元。采用ReLUs的Deep-CNN比采用tanh的CNN训练起来快很多,如图1所示。我们比较了采用不同激活函数的四层神经网络对CIFAR-10数据集训练,记录分别达到25%训练错误率所需要的循环数。此图表明,如果使用传统的饱和激活函数神经网络模型的话,我们无法完成如此大型的神经网络训练项目。

不过,我们也并不是最早想到使用非传统神经元模型的团队。Jarrett等人 [11] 曾提出将非线性激活函数f(x)=|tanh(x)|运用于他们所构建的模型对Caltech-101数据集的训练取得了良好的效果,该模型包含了对比度归一化层及局部平均汇合层。但训练Caltech-101数据集主要关注的是过拟合问题,所以他们观察到的良好效果与我们采用ReLUs提到的训练速度提升效果是有所区别的。更快的训练速度对大型数据集的模型训练效果有很大的影响。

3.2 使用多个GPU训练

单个GTX580 GPU只有3GB显存,这限制了其所能训练的神经网络的最大规模,而且实践证明120万张训练图像所需要的神经网络对于单个GPU来说过于庞大。因此,我们将神经网络搭建于两个GPU上。我们使用的GPU特别适合并行作业,因为他们能够直接互相读取和写入显存而不需要经过主机内存。通过并行作业,我们在每个GPU上各搭载了一半的神经元,并且设置了一个机制,即两个GPU只在特定的层级中互相交流。举例说明,就是某层级接收前一层级所有神经元的输出结果,而另一层级只接收搭载于同一GPU上的上一层级神经元的输出结果。具体连接模式可以通过交叉验证来调整,但这一机制使得我们可以精确地调整连接数,使得其占总计算量的比例达到我们可以接受的程度。

最后我们搭建的架构有一些类似Ciresan等人[5]提出的“柱状”CNN,不过我们的CNN网络的columns之间是非独立的(见图2)。使用两个GPU的神经网络通过运用这一机制与使用单个GPU且卷积层神经元数减半的神经网络相比,Top-1错误率及Top-5错误率分别低了1.7%和1.5%。而双GPU模型比单GPU模型所用的训练时间还稍短一些。

3.3 局部响应归一化(Local Response Normalization)

ReLUs有一个良好的性质,就是它不需要对输入数据进行归一化以防止饱和。如果至少有一部分训练样本提供正的输入值给ReLU,那么训练就会在该神经元内执行。不过,我们还是发现下述局部归一化机制可以提高归纳能力。公式中表示神经元活动,即输入数据的局部(x,y)经过卷积核i处理然后经过ReLU处理。响应归一化活动的计算公式为:/

其中,累加项汇总同一空间范围内n个“相邻”的卷积核,N表示该层中的卷积核总数。卷积核map的顺序是随机的且在训练开始前就已定好。这类响应归一化其实是受到真实神经元侧抑制现象的启发在进行类似的操作。其效果就是使不同卷积核计算的神经元输出值之间对计算值比较大的神经元活动更为敏感。

这个方法和Jarrett [11]等人使用的局部对比度归一化有一些类似,但是我们的模型更符合亮度归一化这一范畴,因为我们没有减去均值。响应归一化使得我们模型的Top-1错误率及Top-5错误率分别降低了1.4%和1.2%。我们还用CIFAR-10数据集验证了响应归一化的效率:四层CNN没有归一化层时错误率为13%,而有归一化层时错误率为11%。

3.4 重叠汇合

CNN里的汇合层对同一卷积核map内邻近的神经元组的输出值进行总结。传统方法里被汇合层单元处理后的邻近神经元是不重叠的(比如[17,11,4])。汇合层,具体来说,可以表示为一个网格里相互间隔s个像素的一个个汇合单元,每一个单元处理邻近的以该单元为中心,大小为ztimes;z的神经元组。如果我们设置s=z,就得到传统的CNN。如果slt;z,就得到我们模型使用的重叠汇合。我们的模型设置s=2,z=3,如此设置使得我们模型的top-1错误率及top-5错误率相比没有使用重叠汇合的模型(设置s=2,z=2)低了0.4%和0.3%,非重叠汇合模型得出的结果的维度和我们模型的一样。我们还在训练过程中发现使用重叠汇合的模型较不容易产生过拟合问题。

3.5 整体架构

现在,我们开始介绍CNN模型的整体架构。如图2所示,模型包含八个参数层;前五个是卷积层,后面三个是全连接层。最后一个全连接层的输出结果提供给1000-way softmax,并得出1000个分类标签的概率分布。我们的模型训练目标是最大化多元逻辑斯蒂函数,等价于最大化训练集预测分布下正确分类的log概率的均值。

模型中第二、四和五卷积层的卷积核只接收位于同一GPU上前一层的卷积核输出结果(见图2)。而第三卷积层的卷积核接收前一层所有的卷积核。全连接层的神经元也是接收前一层所有的输出结果。第一和第二卷积层后面各附带一个响应归一层。3.4中介绍的汇合层位于每一个响应归一层之后以及第五个卷积层之后。每一个卷积层和全连接层的输出结果都会经过ReLU非线性化处理。

第一个卷积层用96个大小为11times;11times;3的卷积核过滤维度为224times;224times;3的输入图像,步长为4像素(步长是指卷积核接收的相邻神经元组感受野中心之间的距离,也就是卷积核每次操作移动的像素数,用于决定输出结果的尺寸)。第一个卷积层的输出结果经过响应归一以及汇合后的结果作为第二卷积层的输入值,第二卷积层使用256个卷积核,大小为5times;5times;48。第三、四和五卷积层之间没有其他归一层或汇合层。第三卷积层使用384个卷积核,大小为3times;3times;256,连接第二卷积层的输出结果(归一 汇合处理后)。第四卷积层使用384个卷积核,大小为3times;3times;192,第五卷积层使用256个卷积核,大小为3times;3times;192。每一个全连接层都有4096个神经元。

4 降低过拟合

我们的神经网络总共有6000万个参数。虽然ILSVRC的数据集仅有1000个标签类别使得每一个样本对其到所属标签的映射施加了10bits的限制,但即便如此,训练含有如此多参数的模型时,还是会出现较严重的过拟合现象。

4.1 数据增量(Data Augmentation)

最简单也最常见的减少过拟合的方法就是通过保留标签转换人为地扩大数据集(例如[25,4,5])。我们运用两种数据增量方式,计算量都很小,所以转换得到的新图像不用存在硬盘中。我们的转换操作是在CPU上用python实现的,而GPU专门用于训练模型。所以实际训练中,数据增量操作对我们的CNN训练的总计算量没有影响。

第一种数据增量方式是图像变换和水平翻转。具体操作是从原本大小为256times;256的图象中随机提取一块224times;224的子图像(以及他们的水平翻转图像),然后将这些子图象作为我们CNN的输入图像。经过如此操作,我们的训练数据集变为了原来的2048倍。虽然扩大后的数据之间的相关性非常大,但如果不这样操作,我们的网络会出现严重的过拟合现象,可能会迫使我们使用规模更小的网络。在测试的时候,模型对每个输入图像提取五个224times;224子图像(四个角落和中心)以及他们分别的水平翻转图像(总共10个),通过softmax层进行预测,并将10个预测值平均。

第二种方式是调整训练图像的RGB各颜色通道强度。具体操作是,对训练数据集所有图像的每个像素RGB值分

剩余内容已隐藏,支付完成后下载完整资料


资料编号:[138302],资料为PDF文档或Word文档,PDF文档可免费转换为Word

原文和译文剩余内容已隐藏,您需要先支付 30元 才能查看原文和译文全部内容!立即支付

以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。