强烈推荐,这篇论文不仅仅是2018年图灵奖得主之一的Bengio大神著作,也是很好的人工智能入门材料。强烈建议阅读英文原版,其写作风格真的是深入浅出,可以细细品尝。

0. 摘要

理论结果表明,为了学习可以代表高级抽象的复杂功能(例如,在视觉,语言和其他人工智能任务中),可能需要深层结构。 深层结构由多个级别的非线性运算组成,例如在具有许多隐藏层的神经网络中或在重复使用许多子公式的复杂命题公式中。 搜索深层结构的参数空间是一项艰巨的任务,但是最近提出的为了解决该问题的学习算法,例如深度信念网络,取得了显著成功并在某些领域领先于最新技术。 本文讨论了有关深层结构学习算法的动机和原理,特别是那些以单层无监督学习模型(如受限玻尔兹曼机)作为构建块的模型,这些模型被用于构建诸如深层信念网络的更深层模型。

1. 引言

过去半个多世纪的研究一直致力于使计算机能够很好地建模我们的世界,以展示我们所谓的智能。为了实现这一点,很明显,大量的有关我们世界的信息应该以某种方式显式或隐式地存储在计算机中。由于将所有的信息形式化存储到计算机内较为困难,因此许多研究人员已转向使用学习算法来捕获大部分信息。即使如今在理解和改进学习算法方面已经取得了很大的进步,但是人工智能(AI)的挑战仍然存在。我们是否有算法可以理解场景并用自然语言描述它们?除了在非常有限的设定中,一般不是这样。我们是否有算法可以推断出足够的语义概念,以便能够使用这些概念与大多数人进行交互?事实上,我们没有。如果我们考虑图像理解,这是人工智能任务中最具体的任务之一,我们就会意识到我们还没有能够发现许多视觉和语义概念的学习算法,但这些视觉和语义概念似乎是解释网络上的大多数图像所必需的。其他人工智能任务也有类似的情况。

考虑这样一个例子,其任务为解释一幅图片,如图1所示。当人们尝试解决特定的人工智能任务(例如机器视觉或自然语言处理)时,他们通常会利用自己的直觉将问题分解为子问题和多个表示形式,例如在目标部分和集成模型中(Weber,Welling和Perona,2000年; Niebles和Fei-Fei,2007年; Sudderth,Torralba,Freeman和Willsky,2007年),这些模型中的组件可以在不同的对象实例中重复使用。例如,当前的机器视觉技术涉及一系列模块,这些模块从像素开始,以线性或核分类器结束(Pinto,DiCarlo和Cox,2008; Mutch和Lowe,2008),中间结合工程化的变换和学习模块,例如首先提取对于微小的几何变化不变的低级特征(例如来自Gabor滤波器的边缘检测器),对其进行逐步转换(例如,使它们对于对比度变化和对比度反转不变,有时通过合并和二次采样),然后检测最频繁的模式。一种可行且常见的从自然图像中提取有用信息的方法为将原始像素表示逐渐转换为更抽象的表示。例如,从边缘的存在开始,检测更复杂的局部形状,直到识别与图像子目标和目标相关的抽象类别,然后将所有这些要素统一考虑以达到对图像的足够理解,从而回答有关该图像的问题。

在这里,我们假设表示复杂行为(可能会标记为“智能”)所必需的计算机制需要高度复杂的数学函数。这些数学函数是原始感知输入的高级线性变换,并在感兴趣的部分中大幅度的起伏。我们将学习系统的原始输入视为一个高维实体,它由许多观察到的变量组成,这些变量通过未知的复杂统计关系相关联。例如,利用对固体物体和光影的3D几何的了解,我们可以将基本物理和几何因素(例如,物体的位置,方向和光影)的细微变化与图像中所有像素的像素强度的变化相关联。我们称其为变量,因为它们是数据的不同方面,可以各自独立的变化。在这种情况下,考虑到这些物理因素的知识,可以使得我们获得一幅图片的这些相关因素的数学表示,以及拥有相同3D对象的一组图片的特征(如高维空间中点的像素强度)的数学表示。如果一台机器捕获了那些可以解释数据中的统计变量以及如何参与生成我们观察到的数据,那么我们可以说这台机器理解了由这些因素所影响的世界的某些方面。不幸的是,总的来说,对于隐藏才自然图片下的大部分变量,我们没有一个分析理解它们的方式。我们没有足够的形式化的世界先验知识来解释所观察到的各种图像,即使对于在图1中的看起来很简单的“人”的图像来说,也是如此。像“人”这样的高级抽象对应着非常大的一组可能的图像,从像素强度空间中的简单欧几里德距离的角度来看,它们可能彼此非常不同。这类标签的图像可能在像素空间中形成了一个高度卷积的区域,该区域甚至不一定是连接区域。 “人”这个类别可以看作是有关图像空间的高级抽象。我们称这种抽象为一个类别(如“人”)或者一个特征,是原始感知数据的一个函数,可以是离散的(例如,输入句子处于过去时态)或者连续的(例如显示了一个以2米/秒的速度移动的对象的视频)。许多低级和中级概念(在这里也称为抽象)对于构造“人”检测器很有用。较低层的抽象与特定的感知更直接相关,而较高层的抽象则称为“更抽象”,因为它们与实际感知之间的联系更遥远,并且通过其他中间层抽象。

除了难以找到适当的中间抽象之外,我们希望“智能”机器捕获的视觉和语义类别(例如“人”)的数量也很大。深度结构学习的重点是自动发现从最低级别的功能到最高级别的概念的此类抽象。理想情况下,我们希望学习算法,以尽可能少的人力来实现此发现,即无需手动定义所有必要的抽象或不必提供大量相关的带有手工标记的示例。如果这些算法可以利用网络上大量的文本和图像资源,那么无疑将有助于将许多人类知识转化为机器可解释的形式。

1.1 我们该如何训练深层结构?

深度学习方法旨在学习层次化特征,这些高层的特征会层次化的由低层特征所组成。 自动学习抽象的多个层次特征需要系统能够学习复杂的函数,这个函数可以从数据中直接学习到从输入到输出的映射,而完全不依赖人工创建的特征。 这对于更高级别的抽象尤其重要,因为人类通常不知道如何从原始的感知输入中明确它们。 随着大量数据的持续增长和机器学习方法的广泛应用,自动学习强大特征的能力将变得越来越重要。

深层生成模型都包含哪些 什么是深层结构_深层生成模型都包含哪些


图1:我们希望将原始输入图像逐渐转换成更高级别的表示形式,以表示原始输入的越来越抽象的函数,例如边缘,局部形状,对象部分等。实际上,我们不能提前知道对于所有层次的抽象来说,什么是正确的表示。尽管语言学概念也许能够帮助我们猜测更高层次的隐式表示。

深层结构是指学习到的函数中非线性运算的复杂程度。尽管大多数当前的学习算法都对应于浅层结构(1、2或3层),但哺乳动物的大脑却是由一个深层结构组成(Serre,Kreiman,Kouh,Cadieu,Knoblich和Poggio,2007)。它能够对于给定的认知输入表示为多层抽象,每层对应于皮质的不同区域。人类通常层次化的表示此类概念,它拥有多层抽象。大脑还似乎通过多个阶段的变换和表示来处理信息。这在灵长类动物视觉系统中特别明显(Serre等人,2007),其处理阶段顺序为:检测边缘,原始形状,并逐渐发展为更加复杂的视觉形状。

受大脑深层结构的启发,神经网络研究人员数十年来一直想训练深层的多层神经网络(Utgoff&Stracuzzi,2002; Bengio&LeCun,2007),但在2006年之前都没有成功的尝试:研究人员报告说两个或三个级别(即一个或两个隐藏层)的实验结果通常较好,但是训练更深的网络始终会产生较差的结果。可以被认为是一项突破的事情发生在2006年:Hinton和多伦多大学的合作者推出了深度信念网络(简称为DBN)(Hinton,Osindero和Teh,2006年),其学习算法可以贪心的一次训练一层。 对每一层都采用了无监督学习算法,即受限玻尔兹曼机(RBM)(Freund&Haussler,1994)。不久之后,基于自动编码器的相关算法被提出(Bengio,Lamblin,Popovici和Larochelle,2007年; Ranzato,Poultney,Chopra和LeCun,2007年)。这显然利用了相同的原理:使用无监督学习指导中等水平表示的训练,这可以在每层局部的运作。最近提出的其他算法用于深层结构,这些算法既不利用RBM也不利用自动编码器,但是遵循相同的原则(Weston,Ratle和Collobert,2008年; Mobahi,Collobert和Weston,2009年)(请参见第4节)。

自2006年以来,深层网络不仅在分类任务中得到了成功应用(Bengio等,2007; Ranzato等,2007; Larochelle,Erhan,Courville,Bergstra和Bengio,2007; Ranzato,Boureau和LeCun, 2008; Vincent,Larochelle,Bengio和Manzagol,2008; Ahmed,Yu,Xu,Gong和Xing,2008; Lee,Grosse,Ranganath和Ng,2009),也在回归中(Salakhutdinov和Hinton,2008),降维(Hinton&Salakhutdinov,2006a; Salakhutdinov&Hinton,2007a),建模纹理(Osindero&Hinton,2008),建模运动(Taylor,Hinton,&Roweis,2007; Taylor&Hinton,2009),对象分割(Levner, 2008),信息检索(Salakhutdinov&Hinton,2007b; Ranzato&Szummer,2008; Torralba,Fergus,&Weiss,2008),机器人技术(Hadsell,Erkan,Sermanet,Scoffier,Muller,&LeCun,2008),自然语言处理( Collobert&Weston,2008; Weston等,2008; Mnih&Hinton,2009),以及协作过滤(Salakhutdinov,Mnih&Hinton,2007)中成功应用。尽管可以使用未标记的数据训练自动编码器,RBM和DBN,但在上述许多应用中,它们已成功用于初始化应用于特定任务的有监督的深层前馈神经网络。

1.2 中级表示:跨任务共享特征和抽象

由于深层结构可以看作是由一系列处理阶段组成,因此深层结构当前面临的问题是:应该以哪种数据表示形式作为每个阶段的输出(即另一个阶段的输入)?这些阶段之间应该有什么样的接口?最近对深层结构研究的一个标志是将重点放在这些中间表示上:深层结构的成功属于RBM(Hinton et al.,2006),经典自动编码器(Bengio et al.,2006),稀疏自动编码器(Ranzato等人,2007年,2008年),降噪自动编码器(Vincent等人,2008年)所学习的表示形式。这些算法(在7.2节中有更详细的描述)可以看作是学习将一种表示形式(上一阶段的输出)转换为另一种形式。在每个步骤中,可能更好地了解这些数据中各种因素的变化情况。正如我们在第4节中详细讨论的那样,一次又一次地观察到,一旦在每个层次上都找到了良好的表示形式,就可以将其用于初始化深度神经网络并利用基于梯度的有监督优化来成功的训练它。

大脑中发现的每个抽象层次都由一小部分包含大量特征的“激活”(神经兴奋)组成,这些特征通常是不互斥的。因为这些特征不是互相排斥的,所以它们形成了所谓的分布式表示形式(Hinton,1986; Rumelhart,Hinton和Williams,1986b):信息并不局限在特定的神经元中,而是分布在许多神经元中。除了分布式外,大脑使用的是稀疏的表示:在给定的时间,只有大约1-4%的神经元一起活动(Attwell&Laughlin,2001; Lennie,2003)。第3.2节介绍了稀疏分布表示的概念,第7.1节更详细地描述了机器学习方法,其中一些方法是受大脑中稀疏表示的观察启发而来的,这些方法已被用来构建具有稀疏表示的深层结构。

密集分布表示是频谱的一个极端,稀疏表示位于频谱的中间,而纯局部表示是另一极端。表示的局部性与局部概括的概念密切相关。许多现有的机器学习方法在输入空间中是局部的:要获得一个在数据空间的不同区域中表现不同的学习功能,它们需要为每个区域使用不同的可调参数(请参阅第3.1节中的更多信息)。即使当可调参数的数量很大时,统计效率不一定会很差,但仅当添加某种形式的先验时(例如,较小的参数值是优选的),才能获得良好的概括性。当该先验不是特定于任务的时,通常会迫使解决方案变得非常平稳,如第3.1节末尾所述。与基于局部概括的学习方法相反,可以使用分布式表示来区分的模式总数可能与表示的维度(即学习特征的数量)成指数比例缩放。

在许多机器视觉系统中,学习算法已局限于此类处理流程的特定部分。设计的其余部分仍然需要大量劳动,这可能会限制此类系统的规模。另一方面,我们认为智能机的标志应该包括足够多的概念。仅仅认识“人”是不够的。我们需要可以解决大量此类任务和概念的算法。手动定义许多任务似乎很艰巨,在这种情况下学习变得至关重要。此外,不利用这些任务之间以及它们所需的概念之间的潜在共性是愚蠢的。这一直是多任务学习研究的重点(Caruana,1993; Baxter,1995; Intrator&Edelman,1996; Thrun,1996; Baxter,1997)。具有多层的架构自然可以提供这样的组件共享和重用:可用于检测“人”的低级视觉特征(如边缘检测器)和中级视觉特征(如对象部件)对大批人员也很有用其他视觉任务。深度学习算法则学习中间表示,这些表示可以在不同任务之间共享。因此,他们可以充分利用无监督的数据和类似任务中的数据(Raina,Battle,Lee,Packer和Ng,2007)来提高性能,以解决通常因标签数据匮乏而遭受的巨大挑战性问题的影响。 Weston(2008)在一些自然语言处理任务中击败了最新技术。 Ahmed等人在视觉任务中采用了类似的深层结构的多任务方法。考虑一个多任务设置,其中对于不同任务有不同的输出,所有输出都是从共享的高级功能池中获得的。在m个任务之间共享许多这些已经学习的特征提供了m个任务之间共享的统计强度。现在考虑这些已习得的高级特征本身可以通过组合来自公共池的较低层次的中间特征来表示。同样,可以通过类似的方式获得统计强度,并且可以将这种策略用于深层结构的每个层次。

此外,了解大量相互关联的概念可能会为人类似乎能够做到的广泛概括提供一种钥匙,我们不会期望单独训练的物体探测器,每个视觉类别只有一个探测器。如果每个高级类别本身都是通过公共池中抽象特征的特定分布式配置来表示的,那么从这些特征的新配置中自然可以得出对未见类别的概括。即使这些特征的某些配置仅出现在训练示例中,但如果它们表示数据的不同方面,则可以通过这些特征的新配置有意义地表示新示例。

1.3 人工智能学习的关键要素

为了总结上述一些问题,并试图将它们放到人工智能的更广阔的视野中,我们提出了一些我们认为对学习算法实现人工智能至关重要的要求,其中许多驱使我们研究的内容描述如下:

  • 能够学习复杂的高度变化的函数的能力,即具有变量数量比训练样例数量大得多。
  • 能够无需人工输入就能学习低级、中级和高级的抽象,这对于表示人工智能任务所需的那种复杂函数很有用。
  • 能够从大量样例中学习:训练的计算时间应与示例数量成比例,即接近线性。
  • 能够从大部分未标记的数据中学习的能力,即可以在半监督的环境中工作,在这种情况下,并非所有样例都带有完整且正确的语义标签。
  • 能够利用大量任务之间的协同作用,即多任务学习。之所以存在这些协同作用,是因为所有人工智能任务都针对相同的现实基础提供了不同的视角。
  • 强大的无监督学习(即,在观察到的数据中捕获大多数统计结构),这对于没有大量任务和不能提前知道将来的任务时是必不可少的。

其他元素同等重要,但与本文的材料没有直接联系。它们包括学习代表不同长度和结构的上下文的能力(Pollack,1990),从而允许机器在依赖于上下文的观察流中操作并产生动作流,并在动作影响时做出决策的能力。未来的观测和未来的回报(Sutton&Barto,1998),以及影响未来的观测以便收集有关世界的更多相关信息的能力,即一种主动学习的形式(Cohn,Ghahramani,&Jordan,1995)。

1.4 文章大纲

第2节回顾了理论结果(可以跳过而不会对其余部分的理解造成影响),该结果表明,就输入大小而言,不足够深的结构可能需要比与之深度匹配的更多的计算元素。我们认为深度不足可能不利于学习。确实,如果用非常大但较浅的结构(具有许多计算元素)来表示任务的解决方案则可能需要大量的训练样例来调整这些元素中的每一个并捕获高度可变的函数。第3.1节的目的还在于激励读者,这一次着重强调局部泛化和局部估计的局限性,我们希望使用具有分布式表示形式的深层架构来避免它(第3.2节)。

在随后的章节中,本文描述并分析了为训练深层结构而提出的一些算法。第4节从神经网络文献中介绍了与训练深度架构的任务相关的概念。我们首先考虑了在训练具有多层结构的神经网络时遇到的困难,然后介绍了可用于初始化深度神经网络的无监督学习算法。这些算法中的许多算法(包括RBM的算法)都与自动编码器相关:一种用于学习一层模型的简单无监督算法,该模型计算输入的分布式表示形式(Rumelhart等人,1986b; Bourlard&Kamp,1988; Hinton&Zemel,1994)。为了充分理解RBM和许多相关的无监督学习算法,第5节介绍了基于能量的模型,包括那些用于构建具有隐变量的生成模型,例如Boltzmann Machine。第6节重点介绍了针对深层信念网络(DBN)(Hinton等人,2006)和堆叠式自动编码器(Bengio等人,2007; Ranzato等人,2007; Vincent等人,2008)的贪婪分层训练算法。第7节讨论了最近提出的多种RBM和自动编码器的扩展和改进,包括稀疏性的使用和时间相关性的建模。第8节讨论了使用变分边界联合训练深度信念网络的所有层的算法。最后,我们在第9节中考虑了一些前瞻性问题,例如在训练深层结构时涉及的假设中优化难的问题。尤其是,我们遵循这样的假设,即当前针对深层结构的学习策略成功的部分原因是与较低层的优化有关。我们讨论了连续方法的原理,该方法会逐渐减少所需的不平滑代价函数,从而对深层结构的优化产生影响。