【论文学习】《Building High-level Features Using Large Scale Unsupervised Learning》

《Building High-level Features Using Large Scale Unsupervised Learning》论文学习

  摘要

       我们考虑仅从未标记的数据构建高级的、特定于类的特征检测器的问题。例如,是否有可能只使用未标记的图像来学习面部检测器?为了回答这个问题,我们在一个大的图像数据集(模型有10亿个连接,数据集有1000万个从互联网下载的200x200像素的图像)上训练了一个9层的局部连接稀疏自动编码器与池化和局部对比度归一化。我们在一个拥有1000台机器(16000核)的集群上使用模型并行性和异步SGD对这个网络进行了三天的训练。与人们普遍持有的直觉相反,我们的实验结果显示,无需标记图像是否包含人脸,就可以训练人脸检测器。控制实验表明,该特征检测器不仅对平移具有鲁棒性,而且对缩放和平面外旋转也具有鲁棒性。我们还发现,这个网络对其他高级概念,如猫的脸和人的身体,也很敏感。从这些学习到的特征开始,我们训练我们的网络在从ImageNet识别20000个对象类别时获得了 15.8% 的准确率,相对于之前的技术水平有了 70% 的飞跃。
       

  1 介绍

       这项工作的重点是从未标记的图像构建高级的、特定于类的特征检测器。例如,我们想知道是否有可能只从未标记的图像构建一个面部检测器。这种方法是受到神经科学猜想的启发,即人类大脑中存在高度分类特异性的神经元,通常被非正式地称为“祖母神经元”。大脑中神经元的类别特异性是一个活跃的研究领域,但目前的实验证据表明,颞叶皮层中的一些神经元可能对面孔或手(《Stimulus-selective properties of inferior temporal neurons in the macaque》)等物体类别,甚至可能对特定的人(《Invariant visual representation by single neurons in the human brain》),具有高度选择性。
       
       当代计算机视觉方法通常强调标记数据的作用,以获得这些类特定的特征检测器。例如,要构建一个人脸检测器,需要大量标记为包含人脸的图像,通常在人脸周围有一个边界框。对大型标记集的需求对标记数据稀少的问题提出了重大挑战。尽管使用廉价的未标记数据的方法通常是首选,但它们在构建高级特性方面并没有显示出良好的效果。
       
       这项工作研究了仅从未标记的数据构建高级特征的可行性。对这个问题的肯定回答将产生两个重要的结果。实际上,这提供了一种从未标记数据开发特性的廉价方法。但也许更重要的是,它回答了一个有趣的问题,即“祖母神经元”的特异性是否可能从未标记的数据中习得。非正式地说,这意味着婴儿学习将面孔分成一组是因为他看到过很多面孔,而不是因为受到监督或奖励的引导,至少在原理上是可能的。
       
       无监督特征学习和深度学习已经成为从未标记数据构建特征的机器学习方法。使用自然环境下的未标记数据来学习特征是自学学习框架背后的关键思想(《Self-taught learning: Transfer learning from unlabelled data》)。成功的特征学习算法及其应用可以在最近的文献中找到,使用各种方法,如RBMs (《A fast learning algorithm for deep belief nets》),自动编码器(《Reducing the dimensionality of data with neural networks》,《Greedy layerwise training of deep networks》)、稀疏编码(《Efficient sparse coding algorithms》)和K-means(《An analysis of singlelayer networks in unsupervised feature learning》)。到目前为止,大多数算法只成功地学习了低层次的特征,如“边缘”或“斑点”检测器。超越这些简单的特征并捕获复杂的不变性是本工作的主题。
       
       最近的研究发现,训练深度学习算法以产生最先进的结果是相当耗时的(《Deep big simple neural nets excel on handwritten digit recognition》)。我们推测,长时间的训练是缺乏文献中报道的高级特征的部分原因。例如,研究人员通常会减少数据集和模型的大小,以便在实际时间内训练网络,而这些减少破坏了高级特征的学习。
       
       我们通过扩大训练深度网络的核心组件来解决这个问题:数据集、模型和计算资源。首先,我们使用从随机YouTube视频中抽取随机帧生成的大数据集我们的输入数据是200x200张图像,比深度学习和无监督特征学习中使用的典型32x32张图像要大得多(《Learning multiple layers of features from tiny images》,《Deep big simple neural nets excel on handwritten digit recognition》,《An analysis of singlelayer networks in unsupervised feature learning》)。我们的模型是一个具有池化和局部对比度归一化的深度自动编码器,使用大型计算机集群将其缩放到这些大图像。为了支持这个集群上的并行性,我们使用了局部接受域的思想,例如(《Large-scale deep unsupervised learning using graphics processors》,《Tiled convolutional neural networks》,《On optimization methods for deep learning》)。这种思想降低了机器之间的通信成本,从而允许模型并行(参数分布在机器之间)。采用异步SGD来支持数据并行。模型在一个拥有1000台机器(16000核)的集群上以分布式方式训练了三天。
       
       使用分类和可视化的实验结果证实,从未标记的数据构建高级特征确实是可能的。特别是,使用由面孔和干扰物组成的hold-out测试集,我们发现了一个对面孔具有高度选择性的特征。数值优化可视化结果验证了这一结果。控制实验表明,学习后的检测器不仅对平移鲁棒,而且对平面外旋转和缩放也鲁棒。
       
       类似的实验表明,该网络还学习了猫的脸和人体的概念。
       
       习得的表征也具有辨别性。利用学习到的特征,我们在ImageNet上获得了目标识别的显著飞跃。例如,在ImageNet上有20000个类别,我们的准确率达到了 15.8% ,比目前的水平提高了 70%
       

  2 训练集构造

       我们的训练数据集是由1000YouTube视频的采样帧构建的。为了避免重复,每个视频只向数据集贡献一个图像。每个示例都是一个200x200像素的彩色图像。
       
       训练图像的子集如附录A所示。为了检查数据集中的人脸比例,我们在数据集上的60×60随机采样的patch上运行OpenCV人脸检测器。本实验表明,OpenCV人脸检测器检测到的作为人脸的patch10万个采样patch中所占的比例不到 3%
       

  3 算法

       在本节中,我们将描述从未标记训练集中学习特征的算法。
       

    3.1 先前的工作

       我们的工作受到了最近在无监督特征学习和深度学习中成功算法的启发(《Reducing the dimensionality of data with neural networks》,《Scaling learning algorithms towards AI》,《Unsupervised learning of invariant feature hierarchies with applications to object recognition》,《Efficient sparse coding algorithms》)。它深受Olshausen等人关于稀疏编码的研究,稀疏编码可以对未标记的自然图像进行训练,产生类似于V1简单细胞的接受域(《Receptive fields of single neurons in the the cat s visual cortex》)。
       
       早期方法的一个缺点是稀疏编码(《Emergence of simple-cell receptive field properties by learning a sparse code for natural images》)的问题在于,他们的架构是浅薄的,通常捕获低级概念(例如边缘Gabor过滤器)和简单的不变性。解决这个问题是最近深度学习研究的一个重点(《A fast learning algorithm for deep belief nets》,《Greedy layerwise training of deep networks》,《Scaling learning algorithms towards AI》,《Sparse deep belief net model for visual area V2》,《Convolutional deep belief networks for scalable unsupervised learning of hierarchical representations》),它构建了特征表示的层次结构。特别地,Lee等人(《Sparse deep belief net model for visual area V2》)表明堆叠稀疏RBMs可以模拟大脑皮层V2区域的某些简单功能。他们还证明了卷积DBNs (《Convolutional deep belief networks for scalable unsupervised learning of hierarchical representations》),在对齐的人脸图像上训练,可以学习人脸检测器。这个结果很有趣,但不幸的是,在数据集构建过程中需要一定程度的监督:他们的训练图像(即Caltech101图像)是对齐的,同质的,并且属于一个选定的类别。
       

    3.2 架构

       我们的算法是建立在这些思想之上的,可以看作是一个稀疏深度自动编码器,具有三个重要的成分:局部接受域、池化和局部对比度归一化。首先,为了将自动编码器放大到大图像,我们使用了一个简单的想法,即局部接受域(《Gradient based learning applied to document recognition》,《Large-scale deep unsupervised learning using graphics processors》,《Convolutional deep belief networks for scalable unsupervised learning of hierarchical representations》,《Tiled convolutional neural networks》)。这个受生物学启发的想法提出,自动编码器的每个特征只能连接到较低层的一个小区域。接下来,为了实现对局部变形的不变性,我们使用了局部L2池(《Natural Image Statistics》,《Tiled convolutional neural networks》)和局部对比度归一化(《What is the best multi-stage architecture for object recognition》)。特别是L2池化,允许不变特征的学习(《Natural Image Statistics》,《Tiled convolutional neural networks》)。
       
图1
       我们的深度自动编码器是通过复制三次由局部滤波、局部池化和局部对比度归一化组成的同一阶段来构造的。一个阶段的输出是下一个阶段的输入,整个模型可以解释为一个九层网络(见图1)。
       
       第一和第二子层通常分别称为过滤(或简单)和池(或复杂)。第三个子层执行局部减法和分裂规范化,它受到生物和计算模型的启发(《Why is real-world visual object recognition hard?》,《Nonlinear image representation using divisive normalization》,《What is the best multi-stage architecture for object recognition?》)。
       
       如上所述,我们方法的核心是利用神经元之间的局部连接。在我们的实验中,第一子层有18x18像素的接受域,第二子层和第二子层池超过5x5重叠的特征邻域(即池大小)。第一子层的神经元连接到所有输入通道(或映射)的像素,而第二子层的神经元只连接到一个通道(或映射)的像素第一个子层输出线性滤波器响应,池化层输出其输入平方和的平方根,因此,它被称为L2池化。
       
       我们堆叠一系列统一模块,在选择性和容忍层之间切换的风格,让人想起了NeocognitionHMAX (《Neocognitron: A new algorithm for pattern recognition tolerant of deformations and shifts in position》,《Gradient based learning applied to document recognition》,《Hierarchical models of object recognition in cortex》)。它也被认为是大脑使用的一种架构(《How does the brain solve visual object recognition》)。
       
       虽然我们使用了局部接受域,但它们不是卷积的:参数在图像的不同位置不共享。这是我们的方法与以前工作的明显不同(《Gradient based learning applied to document recognition》,《What is the best multi-stage architecture for object recognition?》,《Convolutional deep belief networks for scalable unsupervised learning of hierarchical representations》)。除了在生物学上更合理之外,非共享权允许学习除平移不变性之外的更多不变性(《Tiled convolutional neural networks》)。
       
       就规模而言,我们的网络可能是迄今为止已知的最大的网络之一。它有10亿个可训练参数,比文献中报道的其他大型网络大一个数量级以上,例如(《Deep big simple neural nets excel on handwritten digit recognition》,《Traffic sign recognition with multiscale convolutional neural networks》),大约有1000万个参数。值得注意的是,与人类视觉皮层相比,我们的网络仍然很小,而视觉皮层的神经元和突触数量是人类的106倍(《Aging and the human neocortex》)。
       

    3.3 学习和优化

       学习
       在学习过程中,将第二子层 (H) 的参数固定为均匀权值,而将第一子层的编码权值 W1 和解码权值 W2 调整为如下优化问题:
m i n i m i z e W 1 , W 2 ∑ i = 1 m ( ∥ W 2 W 1 T x ( i ) ∥ 2 2 + λ ∑ j = 1 k ϵ + H j ( W 1 T x ( i ) ) 2 ) (1) \underset{W_1,W_2}{minimize} \sum^m_{i=1}\left( \left\Vert W_2W_1^Tx^{(i)} \right\Vert_2^2 + \lambda\sum_{j=1}^k \sqrt{\epsilon + H_j(W_1^Tx^{(i)})^2} \right) \tag{1} W1,W2minimizei=1m(W2W1Tx(i)22+λj=1kϵ+Hj(W1Tx(i))2 )(1)       其中 λ \lambda λ是稀疏性与重构的折衷参数; m , k m,k m,k分别为一层的实例数和池化单元数; H j H_j Hj为第 j j j个池单元的权向量。在我们的实验中,我们设 λ = 0.1 \lambda = 0.1 λ=0.1
       
       这种优化问题也称为重构地形独立分量分析(《Natural Image Statistics》,《ICA with Reconstruction Cost for Efficient Overcomplete Feature Learning》)目标中的第一项保证表示对数据的重要信息进行编码,即能够重构输入数据;而第二项鼓励汇集特征,将相似的特征组合在一起,以实现不变性。
       
       优化
       模型中的所有参数都是联合训练的,目标为三层目标的总和。
       
       为了训练模型,我们通过将局部权值W1W2H分配给不同的机器来实现模型的并行性。模型的单个实例将神经元划分为169台机器(其中每台机器有16个CPU核)的权重。一组机器集合起来组成一个模型的单一副本称为模型副本。我们已经建立了一个叫做DistBelief的软件框架,它管理一个模型复本中不同机器之间所有必要的通信,因此框架的用户只需要为模型中的神经元编写所需的向上和向下的计算函数,而且不需要处理跨机器的低级数据通信。
       
       通过使用核心模型的多个副本实现异步SGD,我们进一步扩大了培训规模。对于这里描述的实验,我们将训练分成5个部分,并在每个部分上运行一个模型副本。模型通过一组集中的参数服务器进行更新通信,该服务器保持模型中所有参数在一组分区服务器中的当前状态(我们使用256个参数服务器分区来训练本文描述的模型)。在最简单的实现中,在处理每个迷你批处理之前,模型副本向集中式参数服务器请求其模型参数的更新副本。然后,它处理一个小批处理以计算参数梯度,并将参数梯度发送到适当的参数服务器,然后将每个梯度应用到模型参数的当前值。我们可以通过让每个模型副本请求在每P个步骤中更新参数,以及在每G个步骤中向参数服务器发送更新的梯度值来减少通信开销(G可能不等于P)。我们的DistBelief软件框架自动管理分区之间的参数和梯度转移模型以及参数服务器,将层函数的实现者从处理这些问题中解放出来。
       
       异步SGD比标准(同步)SGD更健壮。具体来说,对于同步SGD,如果其中一台机器发生故障,整个训练过程就会延迟;而对于异步SGD,如果一台机器宕机,则只有SGD的一个副本被延迟,而其余的优化仍然可以继续进行。
       
       在我们的训练中,SGD的每一步,梯度都是在一个由100个示例组成的小批上计算的。我们对网络进行了为期三天的集群训练,其中有1000台机器。有关优化实现的更多细节,请参阅附录BCD
       

  4 人脸实验

       在这一节中,我们描述了我们对人脸识别中的学习表示(人脸检测器)的分析,并提出了控制实验来理解人脸检测器的不变性特性。下一节将给出其他概念的结果。
       

    4.1 测试集

       测试集包含从两个数据集采样的37000张图像:Labeled Faces In The Wild数据集(《Labeled faces in the wild: A database for studying face recognition in unconstrained environments》)和ImageNet数据集(《ImageNet: A Large-Scale Hierarchical Image Database》)。在自然环境下有13026张面孔从非对齐的标签面孔中采样。其余的是从ImageNet随机采样的干扰对象。这些图像被调整大小以适应顶部神经元的可见区域。附录A中显示了一些示例图像。
       

    4.2 实验技术

       训练后,我们使用这个测试集来衡量每个神经元在区分人脸和干扰物时的表现。对于每个神经元,我们找出其激活值的最大值和最小值,然后从中选取20个等间距阈值。报告的准确率是20个阈值中最好的分类准确率。
       

    4.3 识别

       令人惊讶的是,尽管在训练过程中没有发出监督信号,但网络中最好的神经元在识别人脸方面表现得非常好。网络中最好的神经元检测人脸的准确率达到81.7%。测试集中有13026张脸,所以猜测全部为负的只达到64.8%。单层网络中最优神经元的准确率仅为71%,而从训练集中随机抽取的10万个滤波器中选择的最优线性滤波器的准确率仅为74%
       
       为了理解它们的贡献,我们去掉了局部对比度归一化子层并重新训练网络。结果表明,最佳神经元的准确率降至78.5%。这与之前显示局部对比标准化重要性的研究一致(《What is the best multi-stage architecture for object recognition?》)。
       
       在图2中,我们可视化了人脸图像和随机图像的激活值直方图。可以看到,即使是完全没有标记的数据,神经元也学会了区分面孔和随机干扰物。具体来说,当我们将人脸作为输入图像时,神经元的输出值趋向于大于阈值0。相反,如果我们给一个随机图像作为输入图像,神经元倾向于输出值小于0
图2
       

    4.4 可视化

       在本节中,我们将展示两种可视化技术来验证神经元的最佳刺激是否确实是一张脸。第一种方法是将测试集中最敏感的刺激可视化。由于测试集较大,该方法能够可靠地检测出被测神经元的最优刺激。第二种方法是进行数值优化,以找到最优刺激(《Slow feature analysis yields a rich repertoire of complex cell properties》,《Visualizing higher-layer features of deep networks》,《Tiled convolutional neural networks》)。特别地,通过求解,我们找到了使被测神经元的输出f最大化的正规有界输入x
x ∗ = a r g   m i n x   f ( x ; W , H ) ,   s u b j e c t   t o   ∥ x ∥ 2 = 1 x^* = arg \ \underset{x}{min} \ f(x;W,H), \ subject \ to \ \Vert x \Vert_2 = 1 x=arg xmin f(x;W,H), subject to x2=1       在这里, f ( x ; W , H ) f (x;W,H) f(x;W,H)是给定学习参数 W , H W, H W,H和输入 x x x的被测神经元的输出。在我们的实验中,这个约束优化问题是通过直线搜索投影梯度下降来解决的。
       
       这些可视化方法各有优缺点。例如,视觉化最敏感的刺激可能会受到噪声的影响。另一方面,数值优化方法容易受到局部极小值的影响。如图3所示的结果证实,被测试神经元确实学习了人脸的概念。
图3
       

    4.5 不变性

       我们希望评估人脸检测器对常见目标转换(如平移、缩放和平面外旋转)的鲁棒性。首先,我们选择了一组10张人脸图像,并对它们进行了变形,例如缩放和翻译。对于平面外旋转,我们使用103D旋转(平面外)的人脸图像作为测试集。为了检查神经元的稳健性,我们绘制了它在小测试集中相对于比例变化、3D旋转(图4)和平移(图5)的平均响应。结果表明,该神经元对平面外旋转和缩放等复杂和难以硬线连接的不变性具有鲁棒性。
图4/5
       无人脸数据集的控制实验
       如上所述,在对随机干扰物进行人脸分类时,最好的神经元达到81.7%的准确率。如果我们从训练集中删除所有有人脸的图像会怎么样?
       我们通过在OpenCV中运行人脸检测器并去除至少包含一个人脸的训练图像来进行控制实验。最佳神经元的识别准确率下降到
72.5%
,与4.3节中报道的简单线性滤波器一样低。
       

  5 猫和人体探测器

       在实现了对脸敏感的神经元后,我们想知道这个网络是否也能够检测其他高级概念。
       我们观察到YouTube数据集中最常见的对象是身体部位和宠物,因此怀疑网络也学习这些概念。
       为了验证这一假设并量化网络对这些概念的选择性属性,我们构建了两个数据集,一个用于将人体与随机背景进行分类,另一个用于将猫的脸与其他随机干扰物进行分类。
       为了便于解释,这些数据集具有与人脸数据集相同的正负比。
       
       猫的面部图像是从(《Cat head detection - how to effectively exploit shape and texture features》)中描述的数据集中收集的。在这个数据集中,有10000张正图像和18409张负图像(因此正负比类似于人脸的情况)。负图像是从ImageNet数据集中随机选择的。
       
       在我们的人体数据集中,消极和积极的例子是从一个基准数据集中随机抽取的(《A new benchmark for stereo-based pedestrian detection》)。在原始数据集中,每个示例都是一对立体黑白图像。但为了简单起见,我们只保留剩下的图像。总的来说,就像人脸一样,我们有13026个正面的例子和23974个负面的例子。
       
图14

       然后我们遵循了与之前相同的实验方案。结果如图14所示,证实了该网络不仅学习了人脸的概念,而且还学习了猫的脸和人体的概念。
       
       我们的高水平检测器在识别率方面也优于标准基线,在猫和人体上分别达到74.8%76.7%。相比之下,最好的线性滤波器(从训练集采样)仅分别达到67.2%68.1%
       
表1
       在表1中,我们总结了所有先前的数值结果,将最好的神经元与其他基线(如线性滤波器和随机猜测)进行了比较。为了理解训练的效果,我们还测量了同一网络中最好的神经元在随机初始化时的性能。
       
       在我们的算法开发过程中,我们也尝试了其他几种算法,如深度自动编码器(《Reducing the dimensionality of data with neural networks》,《Greedy layerwise training of deep networks》)和K-means (《An analysis of singlelayer networks in unsupervised feature learning》)。在我们的实现中,深度自动编码器也局部连接并使用s形激活函数。对于K-means,为了降低计算成本,我们将图像采样降低到40x40
       
       我们还改变了自动编码器的参数(K-means),并选择它们以在给定资源约束下最大化性能。在我们的实验中,我们使用了30000个质心作为k均值。这些模型也采用了本文中描述的类似的并行方式。他们还用了1000台机器三天。这些基线的结果报告在表1的底部。
       

  6 用 ImageNet 进行物体识别

       我们将特征学习方法应用到ImageNet数据集的目标识别任务中(《ImageNet: A Large-Scale Hierarchical Image Database》)。在YouTubeImageNet图像上进行无监督训练后,我们在最高层的顶部添加了一个对所有逻辑分类器。我们首先训练逻辑分类器,然后对网络进行微调。正则化在逻辑分类器中没有使用。整个培训是在2000台机器上进行的,为期一周。
       
       我们遵循(《What does classifying more than 10,000 image categories tell us?》,《High-dimensional signature compression for large-scale image-classification》),其中,数据集被随机分成两部分进行训练和验证。我们报告验证集的性能,并与表2中的最新基线进行比较。注意,这些划分与前面的工作不同,但是验证集的性能在不同的划分之间略有不同。
表2
       结果表明,我们的方法,从头开始(即,原始像素),就胜过许多先进的基线与手工设计的特征。在ImageNet上有10K个类别,我们的方法相对于之前公布的最佳结果产生了15%的相对改善。在拥有20K类别的ImageNet上,我们的方法相对于我们所知的其他最高结果(包括(《Wsabie: Scaling up to large vocabulary image annotation》)的作者所知的未发表的结果)取得了70% 的相对改进。
       

  7 结论

       在这项工作中,我们使用未标记的数据模拟了高水平的类特异性神经元。我们通过结合最近开发的算法的思想从未标记的数据中学习不变性来实现这一点。由于模型并行性和异步SGD,我们的实现可以扩展到拥有数千台机器的集群。
       
       我们的工作表明,使用完全未标记的数据训练神经元对高级概念有选择性是可能的。在我们的实验中,我们通过对YouTube视频的随机帧进行训练,获得了作为人脸、人体和猫脸探测器的神经元。这些神经元自然地捕捉复杂的不变性,如平面外和比例不变性。
       
       使用学习过的表示,我们在ImageNet上获得了15.8%的目标识别准确率,包括20,000个类别,相对于目前的技术水平,这是一个显著的飞跃,相对提高了70%
       

[1] Le Q V. Building high-level features using large scale unsupervised learning[C]//2013 IEEE international conference on acoustics, speech and signal processing. IEEE, 2013: 8595-8598.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值