【深度学习 论文篇 01-1 】AlexNet论文翻译

前言:本文是我对照原论文逐字逐句翻译而来,英文水平有限,不影响阅读即可。翻译论文的确能很大程度加深我们对文章的理解,但太过耗时,不建议采用。我翻译的另一个目的就是想重拾英文,所以就硬着头皮啃了。本文只作翻译,总结及代码复现详见后续的姊妹篇。

Alex原论文链接:https://proceedings.neurips.cc/paper/2012/file/c399862d3b9d6b76c8436e924a68c45b-Paper.pdf

 

使用深度卷积神经网络进行ImageNet图像分类

作者:Alex Krizhevsky、Ilya Sutskever、Geoffrey E. Hinton   多伦多大学

摘要

    我们训练了一个大型的深度卷积神经网络,将ImageNet LSVRC-2010竞赛中的120万张高分辨率图像分类成1000种不同的类别。在测试数据上,我们取得了Top1 37.5%和Top-5 17.0%的错误率,这个结果已经远超以前的最高水平。该神经网络具有6千万个参数和650,000个神经元,它由5个卷积层和3个全连接层构成,其中部分卷积层后边跟有最大池化层,全连接层后边则是一个1000路的softmax分类器。为了使训练速度更快,我们使用了非饱和神经元和一种卷积操作的非常高效的GPU实现。为了减少全连接层中的过拟合,我们使用了一个最近开发的被称作“暂退法”的正则化方法,该方法已被证明十分有效。在IOLSVRC-2012竞赛中,我们正式提出这个模型的一种变体,并以15.3%的top-5测试误差率赢得榜首,相比而言,第二好的参赛队伍则只取得26.2%的成绩。

1 简介

    当前的目标识别方法在机器学习方法中有着非常重要的应用。为了提高他们的性能,我们可以收集更大的数据集,学习更强大的模型,以及使用更好的避免过拟合的技术。屹今为止,含标注的图像数据集相对还是比较小的——近数万张图像(例如,NORB [16],Caltech-101/256 [8,9],和CIFAR-10/100 [12])。简单的识别任务使用这种规模的数据集可以取得相当不错的结果,特别是当他们使用保留标签的转换进行增强时。例如,在MNIST手写数字识别任务中,当前最好的错误率达到了0.3%以内,接近了人类的识别水平 [4]。但是现实数据集中的目标表现出相当大的不确定性,因此使用更大的训练集去学习识别他们是必要的。的确,小型图像数据集的缺点已经被广泛地认识到(比如Pinto等人 [21]),但这仅仅是在最近收集带有数百万图像的标记数据集时才变得重要起来。新的大型数据集包括由成千上万张全分割图像组成的LabelMe [23],以及由包含超过22000个类别的1500多万张带标签的高分辨率图像组成的ImageNet [6]。

    要从数百万张图像里边学习数千个目标,我们需要一个有很强学习能力的模型。然而,目标识别任务极大的复杂度意味着这个问题即便通过一个像ImageNet一样大的数据集都无法被明确描述,因此我们的模型也应当具有大量的先验知识,来补偿所有我们所没有的数据。卷积神经网络(CNNs)构造了一个此类的模型 [16, 11, 13, 18, 15, 22, 26]。他们的容量可以通过改变其深度和广度来控制,并且他们也构造了强大的近乎正确的关于图像本质的假设(即统计数据的平稳性和像素依赖的局部性)。因此,相比标准的具有相似大小的层的前馈神经网络,CNNs具有更少的连接和参数,并且也更易于训练,同时他们理论上的最佳性能可能只是略差而已。

    尽管CNNs有着出色的性能,以及相对有效的局部结构,但他们在大规模高分辨图像的应用上依然是代价及其昂贵的。幸运的是,当前的GPUs与高度优化的2D卷积实现相结合,足以促进有趣的大型CNNs的训练,并且最近的诸如ImageNet的数据集,含有足够多带标签的样本去训练这种没有太大过拟合的模型。

    本文具体的贡献如下:我们在ILSVRC-2010和ILSVRC-2012竞赛中所使用的ImageNet子集上训练了屹今为止最大的卷积神经网络之一,并取得了屹今为止在这些数据集上报告的最佳结果。我们编写了一个高度优化的2D卷积GPU实现以及训练卷积神经网络所有固有的其他操作,这些我们公开提供(http://code.google.com/p/cuda-convnet)。我们的网络包含了许多新的且不寻常的特征,可以提高网络性能和降低训练时间,详见第3节。我们网络的规模使得过拟合成了一个重要的问题,即便这是在拥有120万已标注的训练样本的情况下,因此我们使用了数种有效的技术来避免过拟合,这部分将在第4节详细介绍。最终的网络包含5个卷积层和3个全连接层,并且这个深度似乎很重要:我们发现移除任何卷积层(每一个包含不超过1%的模型参数)都会导致性能变差。

    最后,网络大小主要受限于当前GPUs可用内存的数量和我们能容忍的训练时间的多少。我们的网络在两个GTX 580 3GB的GPU上花费了5-6天时间训练。我们所有的实验都表明,我们的结果仅仅通过等待更快的GPU和更大的数据集就能变得可用来被改进。

2 数据集

    ImageNet是一个包含大约22000类别的超过1500万张的带标签的高分辨率图像数据集。其图像收集自Web,并且使用亚马逊的Mechanical Truk众包工具人工标注而成。在2010年,作为Pascal视觉目标挑战赛(Pascal VOC)的一部分,一个被称作ImageNet大规模视觉识别挑战赛(ILSVRC)的年度竞赛开始举办。ILSVRC使用了ImageNet的的一个子集,其中包含1000个类别且每个类别包含大约1000张图像。总计有大约120万训练图像,50000张验证图像,以及15万测试图像。

    ILSVRC-2010是ILSVRC仅有的可获取其测试集标签的版本,因此这是一个可以在上边验证我们绝大多数实验的版本。后来我们也携该模型参加了ILSVRC-2012竞赛,在第6节,我们也会公布在这个版本的数据集上的结果,在该版本无法获取测试集标签。在ImageNet上,习惯公布两个错误率:top-1和top-5,其中top-5错误率是一个分数,即测试图像中正确的标签不在前5概率里边的样本数除以样本总数。

    ImageNet包含各种分辨率的图像,同时我们的系统需要一个固定的输入维度。因此,我们对图像下采样得到一个256*256的固定分辨率。给定一个矩形图像,我们首先重新调节图像大小至最短边长为256,然后从结果图像中裁剪出中心256*256的小块。除了从每个像素减去训练集的平均活度之外,我们没有对图像做其他任何方式的预处理。因此我们是在像素的(居中的)原始RGB值上训练我们的网络。

3 网络结构

    网络结构在图2中做了概括。它包含8个学习层——5个卷积层和3个全连接层。随后,我们描述了网络结构中的一些新颖的和与众不同的特征。我们根据重要性的评估对3.1-3.4节的内容依次做了排序,最重要的在前。

3.1 ReLU非线性

    将神经元的输出f模拟成它的输入x的函数的标准方法是:。就使用梯度下降的训练时间来说,这些饱和非线性要比非饱和非线性更慢。继Nair和Hinton 之后[20],我们将具有这种非线性的神经元称为矫正线性单元(ReLUs)。使用ReLUs的深度卷积神经网络的训练速度是使用tanh的同等网络的数倍。这在图1中得到了证实,图1显示了使用一个特殊的4层卷积网络进行CIFAR-10数据集的训练,其达到25%训练误差所需的迭代次数。该图表明,如果使用传统的饱和神经元模型,我们将无法为这项工作去验证如此大型的神经网络。

图1:一个使用ReLUs(实线)的四层卷积神经网络在数据集CIFAR-10上只需要6次训练就可达到25%的训练错误率,快于使用tanh神经元(虚线)在同等网络下的效果。每种网络都是独立地选择使训练速度尽可能快的学习率。没有使用任何类型的正则化。这里虽然证实了ReLUs的有效程度会随着网络结构不同而变化,但是同样的网络使用ReLUs的学习速度始终要比使用饱和神经元的学习速度快数倍。

 

    我们并非一开始就去考虑替代CNNs中的传统神经元模型。比如Jarrett等人[11]提出,在数据集Caltech-101上,非线性的使用它们的对比度归一化类型然后紧接局部平均池化,其效果特别好。然而在这个数据集上,主要的关注点是防止过拟合,所以他们观察到的效果是不同于我们在使用ReLUs时提出的适用于训练集的加速能力。更快的学习对在大型数据集上训练的大型模型的性能影响更为显著。

3.2 GPU训练

    单个GTX 580 GPU只有3GB内存,这限制了能够在其上训练的网络的最大尺寸。事实证明120万个训练样本足以去训练由于太大而无法在一个GPU上容纳的网络。因此我们把网络分布在两个GPU上。当前的GPU特别适合跨GPU并行化,因为他们能够直接读写另一个GPU的内存,而不需要经过主机内存。我们使用的并行化方案基本上是在每一块GPU上布置一半的内核(或神经元),还有一个技巧:GPUs只在某些层交互。这意味着,例如,第三层内核从第二层的所有内核映射中获取输入。然而第四层内核仅仅从第三层中居于同一GPU上的内核映射中获取输入。选择连接的方式是一个交叉验证的问题,但是这允许我们去精调连接数量直到计算量可以接受。

    最终的结构有点类似于Ciresan等人[5]使用的“柱状”CNN,除了我们的列不是独立的(见图2)。对比网络的每一个卷积层的一半内核在一个GPU上训练,这个方案使我们的top-1和top-5错误率分别降低了1.7%和1.2%。训练时间上看,双GPU网络花费的训练时间比单GPU网络略少。(在最终的卷积层上,单GPU网络实际上拥有和双GPU网络相同数量的内核。这是因为大多数的网络参数都是在第一个全连接层上,该层取最后一个卷积层为输入。所以为了让两个网络具有大致相同的参数数量,最后一个卷积层没有尺寸(随后的全连接层也是如此)。因此这个比较是倾向于支持单CPU网络的,因为它比双GPU网络的“一半尺寸”更大。)

3.3 LRN局部响应归一化

    ReLUs最可取的属性在于它们不需要输入归一化来避免它们饱和。如果至少一些训练样本产生了正输出到ReLU,那么学习将发生在那个神经元。然而,我们仍然发现随后的局部归一化方案有助于概括。表示的是使用(x,y)位置的内核i以及使用ReLU非线性计算出来的神经元的活度。响应归一化活度由下边表达式给出: 

    上式是在相同空间位置上的n个的“毗连的”内核映射的求和,N是该层的内核总数。内核映射的顺序当然是任意的并且在训练之前就已确定。这种响应归一化实现了一种受真实神经元类型来激发的侧向抑制形式,它能够在使用不同内核计算的神经元输出之间为大的活度创造竞争力。常数k、n、α和β是超参数,他们的值通过使用验证集来确定;我们使用k = 2,n = 5,α = 10^(-4),和β = 0.75。我们在某些层中应用了ReLU非线性之后使用这个归一化(见3.5节)。

    这个方案和Jarrett等人[11]提出的局部对比度归一化有些类似,但是由于我们的方案没有提取平均活度,所以称之为“亮度归一化”更加得体。响应归一化使我们的top-1和top-5错误率分别降低了1.4%和1.2%。我们也验证了该方案在CIFAR-10数据集的效果:四层的CNN网络使用归一化和不使用归一化分别取得11%和13%的错误率。(由于空间限制我们没法呈现这个网络的细节,但是网站http://code.google.com/p/cuda-convnet/上有通过代码和参数文件对该网络的详尽描述。)

3.4 重叠池化

    CNNs中的池化层汇总了同一内核映射中的相邻组神经元的输出。传统上,通过相连池化单元汇总的邻域是不重叠的(例如[17, 11, 4])。更准确地说,池化层可以被认为是由一个间隔s像素的池化单元网格组成,每一个池化单元汇总一个位于池化单元位置中心的大小z*z的邻域。如果设置s = z,我们会得到CNNs中常用的传统局部池化。如果设置s < z,得到的将是重叠池化。我们网络中所使用的参数是s = 2和z = 3。这个方案对比s = 2,z =2时产生同等维度输出的非重叠方案,其top-1和top-5错误率分别降低了0.4%和0.3%。我们通常在训练期间观察到带有重叠池化的模型稍微更不容易过拟合。

3.5 整体结构

    现在我们准备描述我们的CNN的整体结构。如图2描述,本网络包含8个带权重的层;前5层为卷积层,后3层为全连接层。最后一个全连接层的输出被馈送到一个1000路的softmax分类器,它产生了超过1000类标签的分类。我们的网络使得多项式逻辑回归目标最大化,这等同于最大化预测分布下正确标签交叉对数概率的训练实例的平均值。

图2:我们CNN结构示意图,明确地展示了两个GPU之间的职责划分。一个GPU运行图顶部的层部分,而另一个GPU则运行底部的层部分。GPU只在确定的层之间交互。该网络输入为150528维,剩余的网络层中神经元的数量分别为253440-186624-64896-64896-43264-4096-4096-1000。

 

    第2、第4和第5个卷积层的内核,仅连接到位于同一GPU上的前一层中的内核映射(见图2)。第三个卷积层的内核连接到第二层的所有内核映射。全连接层的神经元连接到前一层的所有神经元。响应归一化层紧随在第1个和第2个卷积层之后。在3.4节描述的那种类型的最大池化层,跟随在响应归一化层和第五个卷积层之后。ReLU非线性应用到每一个卷积层和全连接层的输出。

    第一个卷积层是用96个大小11*11*3,步长4像素的卷积核对224*224*3的输入图像进行滤波(步长是指在内核映射中相邻神经元感受野中心的距离)。第二个卷积层将第一个卷积层的(响应归一化和池化)输出作为输入,并使用256个大小5*5*48的内核进行滤波。第三、第四和第五个卷积层彼此相连,没有任何中间池化层或归一化层。第三个卷积层有384个大小3*3*256的内核连接至第二个卷积层的(归一化,池化)输出。第四个卷积层有384个大小3*3*192的内核,第五个卷积层有256个大小3*3*192的内核。全连接层每层有4096个神经元。

4 减小过拟合

    我们的神经网络结构有6000万个参数。尽管ILSVRC的1000种类别让每一个训练样本在从图像到标签的映射中强加了10位的约束,但事实证明,在没在显著的过拟合的情况下很难充分学习如此多的参数。下边,我们描述两种主要的防止过拟合的方法。

4.1 数据增强

    减小图像数据过拟合的最容易和最常见的方法是使用标签保存转换人为的增扩数据集(例如[25,4,5])。我们使用了两种不同的数据增强形式,他们都允许转换的图像是由原始图像经过极少量的计算生成的,因此转换的图像不需要存储在磁盘上。在我们的实现中,转换后的图像在GPU训练前一批量图像时通过CPU上的Python代码生成。因此这些数据增强方案实际上在计算方面是免费的。

    第一种形式的数据增强包括图像平移和水平映射。我们做到这一点是通过从256*256大小的图像中提取随机224*224的图像块(及其水平映射),并且在这些提取的块上训练我们的网络(这也是为什么在图2中输入图像是224*224*3的原因)。这使我们的训练集大小增大了2048倍,尽管由此产生的训练样本当然是高度相互依赖的。不使用这个方案,我们的网络会遭受严重的过拟合,这将迫使我们去使用更小的网络。在测试时,网络通过提取5个224*224的块(四个角的图像块和中心的图像块)和他们的水平映射(因此总计10个图像块)来做预测,并将网络Softmax层在10个块上作的预测进行平均。

    第二种形式的数据增强包括改变训练图像中RGB通道的强度。特别的,我们对整个ImageNet训练集的RGB像素值集合执行主成分分析(PCA, Principal Component Analysis)。对每一个训练图像,我们增加了多个已经找到的主成分,使用大小相称的响应特征值乘以一个任意的均值为0标准差为0.1的高斯变量。因此对于每一个RGB图像像素,我们添加下边的值:

   上式中:和分别是RGB像素值的3*3协方差矩阵的第i个特征向量和特征值,是前边提及的随机变量。对于特定训练图像的所有像素,每个仅仅被动用一次,直到这个图像再次被用来训练,这个点会被重新动用。这个方案近似捕捉到了自然图像的一个重要特性,即对象的一致性是不随颜色亮度和强度的改变而变化的。这个方案使我们的top-1错误率降低了超过1%。

4.2 暂退法(Dropout

    结合很多不同模型的预测是一个很成功的降低测试错误率的方法[1,3],但是这对于已经需要数天时间训练的大型神经网络来说似乎太过昂贵。然而有一种特别有效的模型组合版本,它仅花费大约两倍的训练时间。最近引入的被称作“暂退法”的技术,以0.5的概率将每个隐藏神经元的输出设为0。通过这个方法“退出”的神经元不会参与前向传播,也不会参与反向传播。所以每当一个输入呈现,神经网络就会对不同的结构采样,但是全部这些结构共享权重。这个技术降低了神经元复杂的互适应性,因为一个神经元无法依赖于特定的其他神经元而存在。因此,他被迫去学习更鲁棒的特征,这有益于结合很多其他神经元的不同的随机子集。在测试期间,我们使用了所有的神经元,但将他们的输出乘以了0.5,这是一个合适的近似值,以获取由指数级多的dropout网络产生的预测分类的几何均值。

    我们在图2的前两个全连接层使用了Dropout。不使用Dropout时我们的网络会表现出巨大的过拟合。Dropout大约需要两倍的迭代次数去收敛。

5 学习中的细节

    我们使用随机梯度下降训练我们的模型,参数为批量大小128,冲量0.9,权重衰退0.0005。我们发现这个很小的权重衰退对模型的训练是很重要的。换句话说,这里的权重衰退不仅仅是一个正则化项,它也降低了模型的训练误差。权重w的更新规则如下:

    式中:i表示迭代索引,v表示冲量变量,表示学习率,表示对象关于w在的处的导数在第i个批量上的平均值

 

图3:在224*224*3的输入图像上,96个通过第一个卷积层学习到的大小11*11*3的卷积核。上层的48个内核是在GPU1上学习的,而下层的48个内核是在GPU2上学习的。细节详见6.1节。

     

    我们每一层的权重都是从一个标准差为0.01的零均值高斯分布初始化得到的。我们在第2、4、5个卷积层,以及全连接隐藏层将神经元偏置项初始化为了常数1。这个初始化通过给正输出提供ReLUs加快了早期阶段的学习。我们在剩余的层里将神经元偏置项初始化为了常数0。

    我们在所有的层都使用了相同的学习率,且在训练期间手动调整它。我们遵循的启发式方法是在当前的学习率下当验证错误率不再提高时将学习率除以10。学习率被初始化为0.01并且在终止前降低了三倍。我们通过训练集的120万图片训练该网络大约90个循环,这在两个英伟达GTX580 3G的GPUs上花费了5-6天。

6 结果

    我们在ILSVRC-2010上的结果总结在表1中。我们的网络在测试集取得了top-1错误率37.5%和top-5错误率17.0%的成绩(没有在4.1节描述的10个图像块上使用平均预测的错误率为39.0%和18.3%。在ILSVRC-2010竞赛中取得的最佳性能是47.1%和28.2%,其方法是对6个在不同特征上训练的稀疏矩阵模型产生的预测进行平均[2]。并且在这之后最好的发布结果是45.7%和25.7%,该方法是对两个在费舍尔向量(FVs)上训练的分类器的预测进行平均,其中FVs是从样本稠密特征计算而来。  

表1:在ILSVRC-2010测试集上的结果对比。斜体是其他人取得的最好结果。

 

    我们也携模型参加了ILSVRC-2012竞赛并在表2中公布了我们的结果。由于ILSVRC-2012的测试集标签不是公开可用的,所以我们无法公布出所有我们尝试过的模型的测试错误率。在这一段的剩余部分,我们交替使用了验证和测试错误率,因为在我们的经验中他们的偏差不会超过0.1%(见表2)。在这篇文章中描述的CNN取得了18.2%的top-5错误率。五个相同CNNs给出的平均预测错误率为16.4%。训练一个CNN网络,其最后一个池化层上带有额外的第六个卷积层,对整个ImageNet Fall 2011发行版本进行分类(1500万图像,22000个种类),然后在ILSVRC-2012上微调它,取得了16.6%的错误率。平均预测在整个Fall 2011发布版本上用上述的5个CNNs预训练得到的两个CNNs模型,误差率为15.3%。而第二好的竞赛作品取得的误差率为26.2%,该方法是对数个在费舍尔向量(FVs)上训练的分类器的预测进行平均,其中FVs是从样本稠密特征计算而来[7]。

表2:在ILSVRC-2012验证集和测试集上的错误率对比。斜体是其他人取得的最好结果。带星号*的模型是在“预训练”后对整个ImageNet 2011 Fall发布版进行分类。详见第6节

 

    最后,我们也发布了我们在ImageNet Fall 2009版本上的错误率,其中包含10184个类别和890万张图像。在这个数据集上,我们根据文献惯例各用一半的图像进行训练和测试。由于没有已经建立好的测试集,我们的分类必然不同于之前的作者使用的分类,但是这不会明显地影响到结果。我们在这个数据集上通过上边所描述的网络得到的top-1和top-5错误率为67.4%和40.9%,该网络的最后一个池化层上带有额外的第六个卷积层。在这个数据集上最好的发布结果是78.1%和60.9%[19]。

6.1 定性分析

    图3展示了卷积核通过网络的两个数据连接层进行学习。这个网络已经学到了各种各样频率选择性和方向选择性的内核,以及各种颜色的斑点。注意双GPUs所展现出的特化性,这是在3.5节中描述的受限连接的结果。GPU1上的内核很大程度上是色彩未知的,而在GPU2上的内核很大程度上是色彩明确的。这种类型的特化存在于每一个运行过程中,并且独立于任何特定的随机权重初始化(对GPUs的重编号取模)。

  

图4:(左图)8张ILSVRC-2010测试图像和5个最有可能被我们的模型所考虑的标签。正确的标签写在每一张图像的下边,并且分配到正确标签的概率也会用红色条框显示(如果它恰好在前五)。(右图)第一列是5张ILSVRC-2010测试图像。剩余列显示的是在最后一个隐藏层产生特征向量的6张训练图像,这些特征向量与测试图像的特征向量的欧几里德距离最小。

 

    在图4的左边版面,我们通过计算在八张测试图像上的top-5预测定性地评估了网络学习的东西。注意甚至偏离中心的对象也能被这个网络识别,比如左上角的螨虫。大多数的top-5标签似乎是合理的。例如,只有其他类型的猫科动物被当作是猎豹的似乎合理的标签。在一些情况下(栅栏,樱花),图像的预期关注点确实是不明确的。

    探索网络视觉知识的另一个的方法是考虑由图像在最后一个4096维的隐藏层引起的特征激活。如果两张图像产生带有一个小的欧几里得分离的特征激活向量,那么我们可以说更高层的神经网络认为它们是相似的。图4显示了5张来自测试集的图像和6张来自于训练集的图像,根据这个衡量标准来看他们相互之间是最相似的。注意在像素级别上,检索的训练图像在L2上通常与第一列的查询图像不接近。例如,检索的狗和大象以各种姿势出现。在补充材料里边我们展现了更多测试图像的结果。

    通过使用两个4096维的实值向量的欧几里德距离来计算相似度是低效的,但是可以通过训练一个自编码器来将这些向量压缩成短小的二进制代码,从而使其变得高效。这应该会产生一个比在原始像素上应用自编码器[14]更好的图像检索方法,它不使用图像标签,因此倾向于检索具有相似边缘模式的图像,无论他们在语义上相似与否。

7 讨论

    我们的结果表明,一个大而深的卷积神经网络是有能力在极具挑战性的数据集上使用纯粹的监督学习方法取得破纪录的结果的。值得注意的是移除一个单一的卷积层会使我们网络的性能降低。例如,移除任意一个中间层将导致网络的top-1性能损失大约2%。因此对我们取得的结果来说,网络的深度的确是很重要的。

    为了简化我们实验,我们没有使用任何非监督的预训练,即使我们认为这是有帮助的,特别是如果我们得到了足够的算力去显著地提高网络的大小,但没有得到相应的在标签数据数量上的提高。所以很大程度上,虽然我们的结果已经得到了改善,因为我们已经使我们的网络变得更大并且训练的时间更长,但是为了匹配人类视觉系统中的颞下神经网络,我们仍然有很多数量级的工作去做。最后我们想要在视频序列上使用很大很深的卷积网络,现在的结构提供了十分有用的信息,这些信息在静态图像上是缺失的或者很不明显的。

参考文献

[1] R.M. Bell and Y. Koren. Lessons from the netflix prize challenge. ACM SIGKDD Explorations Newsletter, 9(2):75–79, 2007.

[2] A. Berg, J. Deng, and L. Fei-Fei. Large scale visual recognition challenge 2010. www.imagenet. org/challenges. 2010.

[3] L. Breiman. Random forests. Machine learning, 45(1):5–32, 2001.

[4] D. Cire¸san, U. Meier, and J. Schmidhuber. Multi-column deep neural networks for image classification. Arxiv preprint arXiv:1202.2745, 2012.

[5] D.C. Cire¸san, U. Meier, J. Masci, L.M. Gambardella, and J. Schmidhuber. High-performance neural networks for visual object classification. Arxiv preprint arXiv:1102.0183, 2011.

[6] J. Deng, W. Dong, R. Socher, L.-J. Li, K. Li, and L. Fei-Fei. ImageNet: A Large-Scale Hierarchical Image Database. In CVPR09, 2009.

[7] J. Deng, A. Berg, S. Satheesh, H. Su, A. Khosla, and L. Fei-Fei. ILSVRC-2012, 2012. URL http://www.image-net.org/challenges/LSVRC/2012/.

[8] L. Fei-Fei, R. Fergus, and P. Perona. Learning generative visual models from few training examples: An incremental bayesian approach tested on 101 object categories. Computer Vision and Image Understanding, 106(1):59–70, 2007.

[9] G. Griffin, A. Holub, and P. Perona. Caltech-256 object category dataset. Technical Report 7694, California Institute of Technology, 2007. URL http://authors.library.caltech.edu/7694.

[10] G.E. Hinton, N. Srivastava, A. Krizhevsky, I. Sutskever, and R.R. Salakhutdinov. Improving neural networks by preventing co-adaptation of feature detectors. arXiv preprint arXiv:1207.0580, 2012.

[11] K. Jarrett, K. Kavukcuoglu, M. A. Ranzato, and Y. LeCun. What is the best multi-stage architecture for object recognition? In International Conference on Computer Vision, pages 2146–2153. IEEE, 2009.

[12] A. Krizhevsky. Learning multiple layers of features from tiny images. Master’s thesis, Department of Computer Science, University of Toronto, 2009.

[13] A. Krizhevsky. Convolutional deep belief networks on cifar-10. Unpublished manuscript, 2010.

[14] A. Krizhevsky and G.E. Hinton. Using very deep autoencoders for content-based image retrieval. In ESANN, 2011.

[15] Y. Le Cun, B. Boser, J.S. Denker, D. Henderson, R.E. Howard, W. Hubbard, L.D. Jackel, et al. Handwritten digit recognition with a back-propagation network. In Advances in neural information processing systems, 1990.

[16] Y. LeCun, F.J. Huang, and L. Bottou. Learning methods for generic object recognition with invariance to pose and lighting. In Computer Vision and Pattern Recognition, 2004. CVPR 2004. Proceedings of the 2004 IEEE Computer Society Conference on, volume 2, pages II–97. IEEE, 2004.

[17] Y. LeCun, K. Kavukcuoglu, and C. Farabet. Convolutional networks and applications in vision. In Circuits and Systems (ISCAS), Proceedings of 2010 IEEE International Symposium on, pages 253–256. IEEE, 2010.

[18] H. Lee, R. Grosse, R. Ranganath, and A.Y. Ng. Convolutional deep belief networks for scalable unsupervised learning of hierarchical representations. In Proceedings of the 26th Annual International Conference on Machine Learning, pages 609–616. ACM, 2009.

[19] T. Mensink, J. Verbeek, F. Perronnin, and G. Csurka. Metric Learning for Large Scale Image Classification: Generalizing to New Classes at Near-Zero Cost. In ECCV – European Conference on Computer Vision, Florence, Italy, October 2012.

[20] V. Nair and G. E. Hinton. Rectified linear units improve restricted boltzmann machines. In Proc. 27th International Conference on Machine Learning, 2010.

[21] N. Pinto, D.D. Cox, and J.J. DiCarlo. Why is real-world visual object recognition hard? PLoS computational biology, 4(1):e27, 2008.

[22] N. Pinto, D. Doukhan, J.J. DiCarlo, and D.D. Cox. A high-throughput screening approach to discovering good forms of biologically inspired visual representation. PLoS computational biology, 5(11):e1000579, 2009.

[23] B.C. Russell, A. Torralba, K.P. Murphy, and W.T. Freeman. Labelme: a database and web-based tool for image annotation. International journal of computer vision, 77(1):157–173, 2008.

[24] J. Sánchez and F. Perronnin. High-dimensional signature compression for large-scale image classification. In Computer Vision and Pattern Recognition (CVPR), 2011 IEEE Conference on, pages 1665–1672. IEEE, 2011.

[25] P.Y. Simard, D. Steinkraus, and J.C. Platt. Best practices for convolutional neural networks applied to visual document analysis. In Proceedings of the Seventh International Conference on Document Analysis and Recognition, volume 2, pages 958–962, 2003.

[26] S.C. Turaga, J.F. Murray, V. Jain, F. Roth, M. Helmstaedter, K. Briggman,W. Denk, and H.S. Seung. Convolutional networks can learn to generate affinity graphs for image segmentation. Neural Computation, 22(2):511–538, 2010.