【论文翻译】ImageNet Classification with Deep ConvolutionalNeural Networks
【原文链接】http://xanadu.cs.sjsu.edu/~drtylin/classes/cs267_old/ImageNet%20DNN%20NIPS2012(2).pdf
【翻译时间】2018.09.10
【完成时间】2018.09.11
题目:基于深度卷积神经网络的图像网络分类
Abstract
我们训练了一个大型的、深卷积的神经网络,将ImageNet lsvrc-2010比赛中的120万张高分辨率图像分类为1000个不同的类。在测试数据上,我们得到了前1位和前5位的错误率( top-5 error rates)分别为37.5%和17.0%,这比以前的先进水平要好得多。神经网络,有6000万个参数和65万个神经元,由五个卷积层组成,其中一些紧随其后的是最大池层,三个完全连接的层,最后是1000路的Softmax。为了使训练更快,我们使用非饱和神经元和一个非常有效的GPU实现卷积运算。为了减少完全连接层中的过度拟合,我们使用了最近开发的称为“Dropout”的正则化方法,它被证明是非常有效的。我们还在ILSVRC-2012竞赛中输入了该模型的一个变体,并且获得了15.3%的获奖前5位的测试错误率(top-5 error rates),相比之下,第二佳参赛者获得了26.2%的错误率。
1 Introduction
当前的目标识别方法主要是利用机器学习方法。为了提高它们的性能,我们可以收集更大的数据集,学习更强大的模型,并使用更好的技术来防止过度拟合。直到最近,标记图像的数据集还相对较小-大约有数万幅图像(例如Norb[16]、Caltech-101/256[8,9]和CIFAR-10/100[12])。使用这种大小的数据集可以很好地解决简单的识别任务,特别是如果它们是通过保留标签的转换来增强的话。例如,mnist数字识别任务上的当前最佳错误率(<0.3%)接近人类性能[4]。但是现实环境中的物体具有很大的可变性,因此要学会识别它们,就必须使用更大的训练集。事实上,小图像数据集的缺点已得到广泛承认(例如,pinto等人)。([21]),但直到最近才有可能收集数百万张图像的标记数据集。新的更大的数据集包括Labelme[23]和ImageNet[6],前者包括几十万张完整分割的图像,后者包含超过1,500万幅标记为高分辨率的图像,涉及22,000多个类别。
要从数百万张图像中了解数千个物体,我们需要一个具有很大学习能力的模型。然而,目标识别任务的巨大复杂性意味着,即使是象ImageNet这样大的数据集也不能指定( specified)这个问题,因此我们的模型还应该有大量的先验知识来补偿所有我们没有的数据。卷积神经网络(CNN)构成这类模型[16,11,13,18,15,22,26]。它们的容量可以通过改变它们的深度和宽度来控制,它们还对图像的性质(即统计数据的平稳性和像素依赖性的局部性(stationarity of statistics and locality of pixel dependencies)))做出了强有力的、大多数是正确的假设。因此,与具有类似尺寸层的标准前馈神经网络相比,CNN的连接和参数要少得多,因此它们更易于训练,而理论上最好的性能可能只是稍微差一些。
尽管CNN具有吸引人的特性,尽管其本地架构的效率相对较高,但大规模应用于高分辨率图像的成本仍然非常昂贵。幸运的是,当前的GPU与高度优化的2D卷积实现结合在一起,强大到足以促进有趣的大型( interestingly-large)cnn的培训,而且最近的数据集(如ImageNet)包含了足够多的标记示例来训练这样的模型,而没有严重的过度拟合。
本文的具体贡献如下:我们就ILSVRC-2010和ILSVRC-2012竞赛中使用的ImageNet子集[2]训练了迄今最大的卷积神经网络之一,并取得了迄今为止在这些数据集上所报道的最佳结果。我们编写了一个高度优化的GPU实现的2d卷积和所有其他操作,这些是在训练卷积神经网络固有的,并且我们公开提供( http://code.google.com/p/cuda-convnet/)。我们的网络包含了一些新的和不寻常的特征,它们提高了性能并缩短了训练时间,详见第三节。我们网络的规模使得过拟合成为一个重大的问题,即使有120万个有标记的培训示例,所以我们使用了几种有效的技术来防止过度拟合,这在第4节中描述。我们的最终网络包含五个卷积层和三个完全连接的层,这个深度似乎很重要:我们发现删除任何卷积层(每个卷积层包含的参数不超过模型参数的1%)导致性能较差。
最后,网络的大小主要受到当前GPU上可用的内存数量和我们愿意容忍的培训时间的限制。我们的网络需要五到六天的时间来训练,在两个GTX 580 3GB的GPU上。我们所有的实验都表明,只要等待更快的GPU和更大的数据集可用,我们的结果就可以得到改善。
2 The Dataset
ImageNet是一个拥有1500万多个标签的高分辨率图像的数据集,属于大约22,000个类别。这些图片是从网络上收集的,并由人类贴上标签,使用的是亚马逊(Amazon)的TURK机械式人群搜索工具( Amazon’s Mechanical Turk crowd-sourcing tool)。从2010年开始,作为Pascal视觉物体挑战的一部分,每年举行一次名为ImageNet大规模视觉识别挑战(ILSVRC)的竞赛。 ILVRC使用IMANET的一个子集,在1000个类别中的每一个大约有1000个图像。. 总共有大约120万个训练图像,50000个验证图像和150000个测试图像。
ILSVRC-2010是唯一可用测试集标签的ILSVRC版本,因此这是我们进行大部分实验的版本。由于我们也使用我们的模型参加了ILSVRC-2012竞赛,在第6节我们报告我们在这个版本的数据集的结果以及,在测试集标签是不可用的版本的结果( we report our results on this version of the dataset as well, for which test set labels are unavailable. )。在ImageNet上,通常报告两个错误率:top-1和top-5,其中前5错误率是测试图像中的一部分,这部分的正确的标签不在模型认为最可能的五个标签中,(占所有测试图像的比例)。
ImageNet由可变分辨率的图像组成,而我们的系统需要恒定的输入维数。因此,我们将图像降采样到256×256的固定分辨率。给出一幅矩形图像,我们首先对图像重新缩放( rescaled),使较短的边长为256,然后从得到的图像中裁剪出中心256×256块。我们没有以任何其他方式对图像进行预处理,除了从每个像素中减去训练集上的平均活动外。因此,我们将我们的网络训练,在像素的(中心)原始RGB值上。
3 The Architecture
我们的网络体系结构在图2中进行了总结。它包含八个学习层-五个卷积层和三个完全连接层。下面,我们描述了我们网络体系结构的一些新的或不寻常的特性。第3.1-3.4节是根据我们对它们重要性的估计来排序的,3.1是最重要的部分。
3.1 ReLU Nonlinearity(非线性)
将神经元输出f建模为输入x函数的标准方法是: f(x) = tanh(x)或者 f(x) = (1 + e^ −x ) ^−1。在梯度下降训练时间上,这些线性饱和比非饱和非线性f(X)=max(0,x)慢得多。继Nair和Hinton[20]之后,我们将具有这种非线性的神经元称为校正线性单元(Relus)。带ReLUs的深层卷积神经网络的训练速度比它们带Tanh单元的等价神经网络快几倍。图1演示了这一点,图1显示了在CIFAR-10数据集上为特定的四层卷积网络要求达到25%训练误差的迭代次数。这幅图表明,如果我们使用传统的饱和神经元模型,我们就不能用这么大的神经网络进行实验。
图1:四层卷积神经网络在 CIFAR-10 上的训练误差率达到25%,比等效的tanh神经元网络(虚线)快6倍。每个网络的学习速度是独立选择的,以使训练尽可能快。没有任何形式的正则化。这里显示的效果的大小随网络 结构而不同,但是使用ReLUs的网络在某种程度上比饱和神经元的等效网络学习速度快几倍
我们不是第一个在CNN中考虑替代传统神经元模型的人。例如,Jarrett Etal.[11]声明,在Caltech-101数据集上,在使用其类型的对比规范化,然后是本地平均池的情况下,非线性化特别有效。然而,在这个数据集上,主要关注的是防止过度拟合,因此他们所观察到的效果不同于我们在使用REUS时报告的适应训练集的加速能力。快速学习对在大型数据集上训练的大型模型的性能有很大的影响。
3.2 Training on Multiple GPUs
一个GTX 580 GPU只有3GB的内存,这限制了可以在其上训练的网络的最大大小。事实证明,120万个训练例子已经足够训练网络,因为网络太大,不适合一个GPU。因此,我们将网络分布在两个GPU上。当前的gpu特别适合于交叉gpu并行化,因为它们能够直接从彼此的内存读取和写入,而无需通过主机内存。我们使用的并行化方案基本上将一半的内核(或神经元)放在每个GPU上,还有一个额外的技巧:GPU只在特定的层上进行通信。这意味着,例如,层3的内核从层2中的所有内核映射获取输入。然而,第4层中的内核只从位于同一GPU的第3层中的内核映射输入。选择连接模式是交叉验证的一个问题,但这允许我们精确地调整通信量,直到它成为计算量的可接受的一小部分。
其结果结构有点类似于由cire,San等人使用的“柱状”CNN的结构。[5],但我们的列不是独立的(见图2)。该方案将前1和前5位错误率分别降低了1.7%和1.2%,而在一个GPU上训练的每个卷积层的核数只有其一半。而在一个GPU上训练的每个卷积层的核数只有其一半。
(补充说明:1-GPU网实际上与最终卷积层中的2-GPU网具有相同的核数,这是因为网络的大部分参数都在第一完全连通层,这是以最后一层卷积层为输入,因此为了使这两网具有大致相同的参数,我们没有将最终卷积层(或完全连接层)的大小减半。因此,这种比较偏向于一个GPU网,因为它比两个GPU网的一半大。)
3.3 Local Response Normalization
relus具有不需要输入规范化以防止它们饱和的可取性质。如果至少有一些训练的例子对一个神经元产生积极的输入,那么学习就会在这个神经元中发生。然而,我们仍然发现,下面的局部规范化方案有助于泛化(aids generalization)。用表示神经元的激活,它用核i在位置(x,y)计算,然后应用ReLU非线性,由以下表达式给出响应归一化激活:
其中求和运算在n个“毗邻的”核映射的同一位置上执行,N是本层的卷积核数目。。当然,内核映射的排序是任意的,并且是在训练开始之前确定的。这种反应归一化实现了一种由真实神经元中的类型激发的横向抑制( lateral inhibition)形式,在使用不同内核计算的神经元输出之间产生了对大激活的竞争。常数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在不进行归一化的情况下获得了13%的测试错误率,而通过归一化实现了11%。
3.4 Overlapping Pooling(重叠池化)
CNN中的池层概括了同一核映射中相邻神经元群的输出。传统上,由相邻的集合单元概括的社区不重叠(例如,[17,11,4])。更准确地说,一个池层可以被认为是由一个集合单元组成的网格,这些单元之间间隔着s个像素,每个像素都概括了一个大小为z×z的邻域,该邻域以池单元的位置为中心。如果设为s=z,则得到CNN中常用的传统本地池化。如果设置s 3.5 Overall Architecture(总体结构) 现在我们准备描述CNN的总体架构。如图2所示,网络包含八个具有权重的层;前五个层是卷积层,其余三个层是完全连接的。如图2所示,网络包含八个具有权重的层;前五个层是卷积层,其余三个层是完全连接的。我们的网络最大限度地实现了多项式Logistic回归目标,这相当于在预测分布下,最大限度地最大化训练案例中正确标签的对数概率的平均值。 第二层、第四层和第五层的内核仅连接到位于同一GPU上的前一层中的内核映射(参见图2)。第三卷积层的核连接到第二层中的所有核映射。完全连接层中的神经元连接到前一层的所有神经元。 响应-归一化层跟随在第一和第二卷积层后面。3.4节描述的这种最大池化层在响应归一化层和第5卷积层之后。对每个卷积层和全连通层的输出均采用了ReLu非线性激活函数。 第1卷积层使用96个核对224 × 224 × 3的输入图像进行滤波,核大小为11 × 11 × 3,步长是4个像素(这是核映射中相邻神经元感受野中心之间的距离)。第二卷积层以第一卷积层的(响应归一化和池化的)输出为输入,对其进行5×5×48的256核滤波。第三层、第四层和第五层相互连接,没有任何中间的池或规范化层。第三卷积层有384个大小为3×3×256的核,与第二卷积层的(归一化、集合)输出相连接,第四卷积层有384个3×3×192核,第五卷积层有256个3×3×192核,完全连接层各有4096个神经元。 图2:说明我们cnn的架构,显式地显示了两个GPU之间的职责划分。一个GPU运行图层-部分在图的顶部,而另一个在底层运行。GPU只在特定的层上进行通信。该网络的输入为150528维,网络剩余层的神经元数为253440--186624---64896---64896---43264---4096---4096---1000 4 Reducing Overfitting(减少过拟合) 我们的神经网络结构有6000万个参数。尽管ILSVRC的1000类使每个训练样本从图像到标签的映射上强加了10比特的约束,但这并不足以学习这么多的参数而没有相当大的过拟合。下面,我们描述了两种主要的方法来对抗过度适应。 4.1 Data Augmentation 减少图像数据过度拟合的最简单和最常见的方法是使用保留标签的变换(例如,[25,4,5])人为地扩大数据集。我们采用了两种不同的数据增强形式,它们都允许从原始图像中生成转换后的图像,而且计算量很小,因此转换后的图像不需要存储在磁盘上。在我们的实现中,转换后的图像是在CPU上用python代码生成的,而GPU正在对前一批图像进行培训。因此,这些数据增强方案实际上是免费的。 数据增强的第一种形式是生成图像平移和水平反射(horizontal reflections)。我们通过从256×256图像中随机提取224×224块(及其水平反射)来实现这一点,并在这些提取的补丁上训练我们的网络(这就是为什么图2中的输入图像为224×224×3维的原因)。这使我们训练的规模增加了2048倍,尽管由此产生的训练例子当然是高度相互依赖的。这使我们训练的规模增加了2048的一倍( a factor of 2048),尽管由此产生的训练例子当然是高度相互依赖的。在测试时,网络通过提取五个224×224个补丁(四个角点和中心块)以及它们的水平反射(总共10个补丁)进行预测,并将网络的Softmax层对这10个补丁进行平均预测。 第二种数据增强形式是改变训练图像中rgb通道的强度。具体来说,我们对整个ImageNet培训集中的RGB像素值执行PCA。对于每个训练图像,我们添加找到的主分量的倍数,其大小与对应的特征值成正比,乘以一个随机变量,该随机变量取自平均值为零且标准偏差为0.1的高斯函数。因此对于每幅RGB图像像素,我们加上下面的量: pi,λi分别是RGB像素值3 × 3协方差矩阵的第i个特征向量和特征值,αiαi是前面提到的随机变量。对于某个训练图像的所有像素,每个αiαi只获取一次,直到图像进行下一次训练时才重新获取。 该方案近似地捕捉了自然图像的一个重要特性,即物体的身份对光照强度和颜色的变化是不变的。该方案使top-1错误率降低了1%以上. 4.2 Dropout 将许多不同模型的预测结合起来是减少测试错误[1,3]的一种非常成功的方法,但对于已经需要几天训练的大型神经网络来说,这似乎太昂贵了。但是,有一个非常有效的模型组合版本,在培训期间只需花费大约两倍的费用。这种最近引入的技术,叫做“dropout”[10],它会以0.5的概率对每个隐层神经元的输出设为0。以这种方式“退出”的神经元对前向没有贡献,也不参与反向传播。因此,每次输入时,神经网络都会对不同的结构进行采样,但所有这些结构都具有相同的权重。这项技术减少了神经元的复杂共适应(complex co-adaptations ),因为神经元不能依赖特定的其他神经元的存在。因此,它不得不学习更健壮的特征,这些特征与其他神经元的许多不同的随机子集相结合是有用的。在测试时,我们使用所有的神经元但它们的输出乘以0.5,对指数级的许多失活网络的预测分布进行几何平均,这是一种合理的近似。 我们在图2的前两个完全连接的层中使用Dropout。如果没有Dropout,我们的网络表现出很大的过拟合。 失活大致上使要求收敛的迭代次数翻了一倍。 5 Details of learning 我们用随机梯度下降训练我们的模型,小批次的大小为128个例子,动量为0.9,权重衰减为0.0005。我们发现这种微小的权重衰减对模型的学习是很重要的。换句话说,这里的权重衰减不仅仅是正则化的:它减少了模型的训练误差。权重w的更新规则是: 其中, 我们从零均值高斯分布中初始化了每一层的权重,标准偏差为0.01。我们用常数1初始化了第二层、第四层和第五层以及完全连接的隐藏层中的神经元偏差。这种初始化通过向ReLU提供正的输入,加快了学习的早期阶段。我们用常数0初始化剩余层中的神经元偏差。 我们对所有层次都使用了相同的学习速率,在整个培训过程中我们手动调整了这一比率。我们遵循的启发式方法是,当验证错误率随着当前学习速度的提高而停止提高时,将学习率除以10。学习率在终止前被初始化为0.01,并减少三次(reduced three times)。我们通过120万张图像训练了大约90个周期,在两个NVIDIA GTX 580 3GB GPU上花费了5-6天的时间。 6 Results 我们在ILSVRC-2010上的结果汇总在表1中。我们的网络达到了top-1和top-5测试集错误率分别为37.5%和17.0%。在ILSVRC-2010竞赛中所取得的最佳性能分别为47.1%和28.2%,它采用的方法是对针对不同特征的6个稀疏编码模型进行平均预测[2];之后,采用一种方法,公布最佳结果分别为45.7%和25.7%。用一种平均的方法,由两种密集采样的特征计算出两个训练在Fisher向量(FVS)上的分类器的预测[24]。 我们也用我们的模型参加了ILSVRC-2012竞赛并在表2中报告了我们的结果。由于ILSVrc-2012测试集标签是不可公开的,因此我们不能报告我们尝试过的所有模型的测试错误率。在本段的其余部分中,我们互换地使用验证和测试错误率,因为在我们的经验中,它们的差异不超过0.1%(见表2)。 本文所描述的CNN的误差率为18.2%,平均5个相似的CNN的预测误差为16.4%。为了对ImageNet 2011秋季发布的整个数据集(1500万图像,22000个类别)进行分类,我们在最后的池化层之后有一个额外的第6卷积层,训练了一个CNN,然后在它上面进行“fine-tuning”,在ILSVRC-2012取得了16.6%的错误率。 对在ImageNet 2011秋季发布的整个数据集上预训练的两个CNN和前面提到的五个CNN的预测进行平均得到了15.3%的错误率。第二次最佳竞赛条目的误差率为26.2%,该方法平均了几个根据不同类型的密集抽样特征计算的fv上训练的分类器的预测[7]。 最后,我们还报告了我们在2009年秋季版ImageNet的错误率( on the Fall 2009 version of ImageNet),包括10184个类别和890万幅图像。在这个数据集上,我们遵循文献中使用一半图像进行训练和一半用于测试的惯例。由于没有建立测试集,我们的拆分必然与以前的作者使用的拆分不同,但这并不会对结果产生明显的影响。我们在这个数据集上的前1和前5错误率分别为67.4%和40.9%,由上面描述的网络实现,但是在最后一个池层上有一个额外的第六个卷积层。在这个数据集上发表的最好的结果是78.1%和60.9%[19]。 6.1 Qualitative Evaluations(定性评价) 图3显示了网络的两个数据连接层学习到的卷积内核。该网络已经学习了各种频率和方向选择内核,以及各种彩色斑点。注意这两个GPU显示的专门化,这是3.5节中描述的受限连接的结果。注意这两个GPU显示的专门化,这是3.5节中描述的受限连接的结果。这种专门化在每次运行时都会发生,并且独立于任何特定的随机权值初始化(模块化,GPU的重编码)。 在图4的左侧面板中,我们通过计算8个测试图像的前5位预测来定性地评估网络学到了什么。注意,即使是偏离中心的对象,如左上角的螨,也可以被网络识别。大多数前五名的标签似乎都是合理的。例如,只有其他类型的猫被认为是豹的合理标签。在某些情况下(格栅,樱桃),照片的预定焦点确实含糊不清。 另一种探索网络视觉知识的方法是考虑图像在最后4096维隐层引起的特征激活。如果两幅图像产生的特征激活向量具有较小的欧氏距离,则可以说神经网络的较高层次认为它们是相似的。图4显示了来自测试集的5个图像和来自培训集的6个图像,它们非常相似。例如,检索到的狗和大象以各种姿势出现。我们在补充材料中给出了更多测试图像的结果。 用欧氏距离计算两个4096维的实数向量之间的相似性是效率低下的,但通过训练一个自动编码器将这些向量压缩为短二值编码可以使其变得高效。这将产生一个更好的图像检索方法,而不是将自动编码器应用于原始像素[14],后者不使用图像标签,因此有一种倾向于检索具有相似边缘模式的图像,无论它们在语义上是否相似。 7 Discussion 我们的结果表明,一个大型的、深卷积的神经网络能够利用纯监督学习在极具挑战性的数据集上获得破纪录的结果。值得注意的是,如果去掉单个卷积层,我们网络的性能就会下降。例如,删除任何中间层会导致网络顶层性能损失约2%。因此,深度对于实现我们的成果来说是非常重要的。 为了简化我们的实验,我们没有使用任何无监督的预训练,尽管我们希望它会有所帮助,特别是在如果我们能获得足够的计算能力来显著增加网络的大小而标注的数据量没有对应增加的情况下。到目前为止,我们的结果已经有所改善,因为我们已经使我们的网络更大,训练更长,但为了匹配人类视觉系统的下颞线(视觉专业术语)我们仍然有许多数量级要达到。 最后,我们希望在视频序列上使用非常大和深的卷积网,其中时间结构提供了非常有用的信息,这些信息在静态图像中是缺失的,或者是不那么明显的。 References [1] R.M.BellandY.Koren. Lessonsfromthenetflixprizechallenge. ACMSIGKDDExplorationsNewsletter, 9(2):75–79, 2007. [2] A. Berg, J. Deng, and L. Fei-Fei. Large scale visual recognition challenge 2010. www.image- net.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 Understand- ing, 106(1):59–70, 2007. [9] G. Griffin, A. Holub, and P. Perona. Caltech-256 object category dataset. Technical Report 7694, Cali- fornia 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 net- works 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. Hand- written 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 unsuper- visedlearningofhierarchicalrepresentations. InProceedingsofthe26thAnnualInternationalConference on Machine Learning, pages 609–616. ACM, 2009. [19] T. Mensink, J. Verbeek, F. Perronnin, and G. Csurka. Metric Learning for Large Scale Image Classifi- cation: 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 computa- tional 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. InComputerVisionandPatternRecognition(CVPR),2011IEEEConferenceon, pages1665–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. Con- volutional networks can learn to generate affinity graphs for image segmentation. Neural Computation, 22(2):511–538, 2010.