英语原文共 9 页,剩余内容已隐藏,支付完成后下载完整资料
ImageNet分类与深卷积神经网络
摘要
我们训练了一个大而深的卷积神经网络将120万高分辨率图像在ImageNet LSVRC-2010比赛中分为1000个不同的类。在测试数据上,我们实现了第一位和前五位的错误率为37.5%和17.0%,这明显优于先前的状态。 神经网络具有60万个参数和650,000个神经元,由五个卷积层组成,其中一些跟随有最大池层,三个完全连接的层具有最后的1000路softmax。为了使训练更快,我们使用非饱和神经元和对于卷积运算非常有效的GPU实现。为了减少完全连接层中的过拟合,我们采用了一种被称为“dropout”的最近开发的正则化方法,证明是非常有效的。我们还在ILSVRC-2012比赛中输入了这个模型的一个变体,赢得了排名前五15.3%的测试错误率,相比之下,第二好的方法获得了26.2%的胜率。
1简介
当前的对象识别方法必须使用机器学习方法。为了提高它们的性能,我们可以收集更大的数据集,学习更强大的模型,并使用更好的技术防止过度拟合。直到最近,标记图像的数据集相对较小 - 大约数万个图像(例如,NORB [16],Caltech-101/256 [8,9]和CIFAR-10/100 [12])。简单的识别任务可以很好地解决这个大小的数据集,特别是如果它们增加了标签保留变换。例如,MNIST数字识别任务(lt;0.3%)上的当前最佳误差率接近人的性能[4]。但是,在现实设置中的对象表现出相当大的变化性,因此为了学习识别它们,必须使用更大的训练集。事实上,小图像数据集的缺点已被广泛认可(例如,Pinto等人[21]),但是最近才有可能收集带有数百万图像的标记数据集。新的更大的数据集包括LabelMe [23],它包括成千上万的完全分割的图像,ImageNet [6]包括了超过1500万标记的高分辨率图像就超过了22000个类别。
要从数百万个图像中了解数千个对象,我们需要一个具有很大学习能力的模型。然而,对象识别任务的巨大复杂性意味着即使是像ImageNet一样大的数据集也不能指定这个问题,所以我们的模型也应该有大量的先验知识来补偿我们没有的所有数据。卷积神经网络(CNN)构成了这样一类模型[16,11,13,18,35,22,26]。 它们的能力可以通过改变它们的深度和宽度来控制,并且它们还对图像的性质(即,统计的稳定性和像素依赖性的局部性)做出强烈且大多正确的假设。因此,与具有类似尺寸的层的标准前馈神经网络相比,CNN具有更少的连接和参数,因此它们更容易训练,而它们的理论最佳性能可能仅略微更差。
尽管CNN的有吸引力的性质,并且尽管它们的局部结构的相对效率较高,但是它们在大规模应用于高分辨率图像方面仍然是昂贵的。幸运的是,当前GPU与高度优化的2D卷积实现相结合,具有了足够强大的功能,可以方便的进行有趣而大型的CNN训练,最近的数据集(如ImageNet)包含足够的标签示例来训练这样的模型,而不会严重过度拟合。
本文的具体贡献如下:我们训练了迄今为止在ILSVRC-2010和ILSVRC-2012比赛中使用的ImageNet的子集上的最大的卷积神经网络之一[2],并且实现了迄今为止所报道的最好的结果这些数据集。我们编写了一个高度优化的GPU实现2D卷积和所有其他操作固有的卷积神经网络,这我们会将它实现开源。我们的网络包含一些新的和不寻常的功能,提高其性能和减少训练时间,详见第3节。我们的网络的规模过度拟合产生一个重大的问题,即使有120万标记的培训示例,所以我们使用几个我们的最终网络包含五个卷积层和三个完全连接的层,这个深度似乎很重要:我们发现删除任何卷积层(每个卷层包含不超过1个%的模型参数)会导致较差的性能。
最后,网络的大小主要受限于当前GPU上可用的内存量以及我们愿意容忍的训练时间量。我们的网络需要五到六天的时间来训练两个GTX 580 3GB GPU。 我们的所有实验表明,我们的结果可以通过等待更快的GPU和更大的数据集来提高。
2数据集
ImageNet是一个有大约22,000个类别的包含超过1500万标记的高分辨率图像的数据集。从网络收集图像,并使用由人类标签机标记的亚马逊的Mechanical Turk群体采购工具。从2010年开始,作为Pascal视觉对象挑战的一部分,每年举行一次名为ImageNet大规模视觉识别挑战赛(ILSVRC)的比赛。ILSVRC使用ImageNet的子集,在1000个类别中大约有1000张图像。在这其中总共有大约120万张训练图像,50,000张验证图像和15万张测试图像。
ILSVRC-2010是ILSVRC的唯一版本,其测试集标签可用,因此这是我们执行大多数实验的版本。由于我们还在ILSVRC-2012比赛中进入了我们的模型,在第6节中我们发布我们在此版本的数据集上的结果,以及测试集标签不可用。 在ImageNet上,通常报告两个错误率:第一和前五位,其中前5的错误率是测试图像的分数,其中正确的标签不在被认为含有最可能的五个标签的模型中。
ImageNet由可变分辨率图像组成,而我们的系统需要恒定的输入维度。因此,我们将图像下采样为256times;256的固定分辨率。给定矩形图像,我们首先重新缩放图像,使得较短边的长度为256,然后从所得的中间256times;256像素的图片。我们没有以任何其他方式预处理图像,除了从每个像素减去训练集上的平均活动。因此,我们在像素的(中心)原始RGB值上训练我们的网络。
3架构
我们的网络的架构总结在图2中。它包含八个学习的层 - 帧卷积和三个完全连接。下面,我们描述一些我们网络的架构的故事或不寻常的功能。第3.1-3.4节根据我们对它们的重要性的估计进行排序,其中最重要的是排第一位的。
3.1 ReLU非线性
将神经元输出f模型化为其输入x的函数的标准方法是使用f(x)= tanh(x)或者。在具有梯度下降的训练时间方面,这些饱和非线性比非饱和非线性f(x)= max(0,x)慢得多。在Nair和Hinton [20]之后,我们将具有这种非线性的神经元称为整流线性单位(ReLUs)。 具有ReLU的深卷积神经网络比具有tanh单元的等价物快几倍。这在图1中示出,其示出了对于特定四层卷积网络,在CIFAR-10数据集上达到25%训练误差所需的迭代次数。 这个图表明,如果我们使用传统的饱和神经元模型,我们将不能够为这项工作尝试这样大的神经网络。
我们不是第一个考虑替代传统神经元模型在CNNs。例如,Jarrett et al.[11]声称非线性f(x)= | tanh(x)| 特别适用于对比度标准化类型,然后在Caltech-101数据集上进行局部平均合并。然而,在这个数据集上,主要关注的是防止过度拟合,因此它们观察到的效果不同于使用ReLU时我们报告的训练集的加速能力。更快的学习对大型数据集训练的大型模型的性能有很大的影响。
图1:具有ReLUs(实线)的四层卷积神经网络在CIFAR-10上达到25%的训练误差率比具有tanh神经元(虚线)的等效网络快六倍。独立地选择每个网络的学习速率以使训练尽可能快。没有采用任何形式的正规化。这里展示的效果的大小随着网络架构而变化,但是具有ReLUs的网络一致地比具有饱和神经元的等效体学习快几倍。
3.2在多GPU上进行训练
单个GTX 580 GPU只有3GB的内存,这限制了可以在其上训练的网络的最大大小。事实证明,120万个训练样本足以训练网络太大,无法适应一个GPU。因此,我们将网络分布在两个GPU上。当前的GPU特别适合于跨GPU并行化,因为它们能够直接从彼此的存储器读取和写入,而不需要经过主机存储器。我们使用的并行化方案基本上将一半的内核(或神经元)放在每个GPU上,一个额外的技巧:GPU仅在某些层中通信。这意味着,例如,第3层的内核从第2层中的所有内核映射获取输入。然而,第4层中的内核仅从位于同一GPU上的第3层中的那些内核映射获取输入。选择连接模式是交叉验证的问题,但这允许我们精确地调整通信量,直到它是计算量的可接受的分数。
所得到的结构有点类似于Ciresan et al. [5]等人采用的“柱状”CNN的结构。,除了我们的列不是独立的(见图2)。与在一个GPU上训练的每个卷积层中具有一半的内核的网络相比,该方案将我们的第1和前5的错误率分别减小了1.7%和1.2%。双GPU网络比单GPU网络需要更少的时间训练。
3.3本地响应规范化
ReLUs具有期望的性质,它们不需要输入归一化以防止它们饱和。如果至少一些训练样本产生对ReLU的肯定输入,则学习将在该神经元中发生。然而,我们仍然发现以下局部归一化方案有助于泛化。 由表示通过在位置(x,y)应用核i然后应用ReLU非线性计算的神经元的活动,由表达式得出响应标准化活动 :
在这其中公式的和在相同空间位置处在n个“相邻”核图上运行,并且N是层中的内核的总数。 内核映射的顺序当然是任意的,并且在训练开始之前确定。 这种反应归一化实现了一种形式的侧向抑制,其受到在真实神经元中发现的类型的启发,产生了使用不同内核计算的神经元输出之间的大活动的竞争。常数k,n,alpha;和beta;是超参数,其值是使用验证集确定的; 我们使用k = 2,n = 5,alpha;=和beta;= 0.75。我们在某些层中应用ReLU非线性之后应用此归一化(参见第3.5节)。
该方案与Jarrett et al. [11]等人的局部对比归一化方案有些相似。 [11],但我们将更正确地称为“亮度归一化”,因为我们不减去平均活动。响应标准化将我们的前1和前5的错误率分别降低了1.4%和1.2%。我们还验证了该方案对CIFAR-10数据集的有效性:四层CNN实现了13%的测试误差率并且实现没有归一化和11%的归一化。
3.4重叠池
CNN中的汇集层汇总到相同核图中的相邻神经元组的输出。传统上,由相邻池单元概括的邻域不重叠(例如,[17,11,4])。 更准确地说,池层可以被认为是由间隔开的像素分开的合并单元网格组成,每个合并单元总计以合并单元的位置为中心的大小为ztimes;z的邻域。如果我们设置s = z,我们获得在CNN中常用的传统的局部合并。如果我们设置slt;z,我们获得重叠池。 这是我们在整个网络中使用的,其中s = 2和z = 3。与非重叠方案相比,当s = 2,z = 2,该方案将第1和前5的错误率分别减少0.4%和0.3%,产生等效尺寸的输出。 我们通常在训练期间观察到具有重叠池的模型发现它稍微更难以过度拟合。
3.5整体架构
现在我们准备描述我们的CNN的整体架构。如图2所示,网结构包含具有权重的八个层; 前五个是卷积的,其余三个是完全连接的。 最后完全连接的层的输出被馈送到1000路softmax,其产生的分布在1000个类标签上。我们的网络最大化多项在后台回归目标,这相当于在预测分布下最大化正确标记的对数概率的训练案例的平均值。
图2:我们的CNN架构的图示,明确显示了两个GPU之间责任的划分。一个GPU在图的顶部运行层部分,而另一个GPU在底部运行层部分。GPU仅在某些层通信。网络的输入是150,528维,并且网络的剩余层中的神经元的数量由253,440 186,624-64,896-64,896-43,264-4096-4096-1000给出。
第二、第四和第五卷积层的内核仅连接到位于同一GPU上的先前层中的那些内核映射(参见图2)。 第三卷积层的内核连接到第二层中的所有内核映射表。 完全连接的层中的神经元连接到前一层中的所有神经元。 响应归一化层跟随第一和第二卷积层。 最大池层,在3.4节描述的类型,遵循响应归一化层以及第五卷积层。 ReLU非线性应用于每个卷积和完全连接层的输出。
第一卷积层用具有4个像素的跨度(这是在核图中的相邻神经元的接收场中心之间的距离)的96个大小为11times;11times;3的内核来过滤224times;224times;3输入图像。 第二卷积层将第一卷积层的(响应归一化和合并)输出作为输入,并且用256个大小为5times;5times;48的内核对其进行滤波。第三,第四和第五卷积层彼此连接任何中间池或规范化层。 第三卷积层具有连接到第二卷积层的(归一化,合并)输出的大小为3times;3times;256的384个内核。第四卷积层具有384个大小为3times;3times;192的内核,并且第五卷积层具有256个大小为3times;3times;192的内核。完全连接的层具有4096个神经元。
4减少过度拟合
我们的神经网络结构有6千万个参数。 虽然ILSVRC的1000个类使每个训练样例对从图像到标签的映射强加10位约束,但是这证明不足以学习这么多参数而没有相当的过拟合。下面,我们描述我们打击消除过度拟合的两种主要方式。
4.1数据增量
减少对图像数据的过度拟合的最简单和最常见的方法是使用标签保留变换(例如,[25,4,5])人工地放大数据集。 我们采用两种不同形式的数据增强,这两种形式允许从具有很少计算的原始图像产生变换的图像,因此变换的图像不需要存储在磁盘上。在我们的实现中,变换的图像是由 Python代码在CPU上执行,而GPU正在训练上一批图像。因此,这些数据增加方案实际上是计算自由的。
数据增加的第一种形式包括产生图像平移和水平反射。 我们通过从256times;256图像中提取随机的224times;224个补丁(及其水平反射)并在这些提取的补丁上训练我们的网络。 这使我们的训练集的大小增加了2048倍,但是所得到的训练示例当然是高度相关的。 没有这个方案,我们的网络遭受大量过度拟合,这将迫使我们使用更小的网络。 在测试时,网络通过提取五个224times;224个补片(四个角补片和中心补片)以及它们的水平反射(因此共有十个补片)进行预测,并在十个补丁上对网络的softmax层做出的预测进行平均计算。
第二种形式的数据增加包括改变训练图像中的RGB通道的强度。 具体来
剩余内容已隐藏,支付完成后下载完整资料
资料编号:[137083],资料为PDF文档或Word文档,PDF文档可免费转换为Word
课题毕业论文、外文翻译、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。