热门关键字: php net javascript java
Just Internet && Only Internet
您的位置:news > 深度学习-前言
深度学习-前言
发布时间:2017-08-02 15:37:05

    远在古希腊时期,发明家就梦想着创造能思考的机器。神话人物皮格马利翁 (Pygmalion)、代达罗斯 (Daedalus) 和赫淮斯托斯 (Hephaestus) 可以被看作传说中 的发明家,而加拉蒂亚 (Galatea)、塔洛斯 (Talos) 和潘多拉 (Pandora) 则可以被视 为人造生命 (Ovid and Martin, 2004; Sparkes, 1996; Tandy, 1997)。

     当人类第一次构思可编程计算机时,就已经在思考计算机能否变得智能(尽管 这距造出第一台计算机还有一百多年)(Lovelace, 1842)。如今,人工智能 (artificial intelligence, AI) 是一个具有众多实际应用和活跃研究课题的领域,并蓬勃发展着。 我们期望通过智能软件自动地处理常规劳动、理解语音或图像、帮助医学诊断和支 持基础科学研究。    

    在人工智能的早期,那些对人类智力来说非常困难但对计算机来说相对简单的 问题得到迅速解决。比如,那些可以通过一系列形式化的数学规则来描述的问题。 人工智能的真正挑战在于解决那些对人来说很容易执行、但很难形式化描述的任务, 比如识别人们所说的话或图像中的脸。这些问题我们人类能够很自然地通过直觉轻 而易举地解决。

     针对这些比较直观的问题,本书讨论一种解决方案。该方案可以让计算机从经 验中学习,并根据层次化的概念体系来理解世界,而每个概念通过与某些相对简单 的概念之间的关系定义。让计算机从经验获取知识,可以避免由人类来给计算机形 式化地指定它需要的所有知识。层次化的概念让计算机构建较简单的概念来学习复 杂概念。如果绘制出这些概念如何建立在彼此之上的图,我们将得到一张 ‘‘深’’(层 次很多)的图。基于这个原因,我们称这种方法为AI深度学习 (deep learning)。

     许多AI的早期成功发生在相对朴素且形式化的环境中,计算机不需要具备很多 关于世界的知识。例如,IBM 的深蓝(Deep Blue)国际象棋系统在 1997 年击败了世界冠军Garry Kasparov(Hsu, 2002)。当然国际象棋是一个非常简单的领域,仅含 有 64 个位置并只能以严格限制的方式移动 32 个棋子。设计一种成功的国际象棋策 略是巨大的成就,但向计算机描述棋子及其允许的走法并不是挑战的困难所在。国 际象棋完全可以由一个非常简短的、完全形式化的规则列表来描述,并可以容易地 由程序员事先准备好。

    讽刺的是,抽象和形式化的任务对人类而言是最困难的脑力任务之一,但对计 算机而言却属于最容易的。即使是最好的人类棋手,计算机也早已能够将其打败,但 直到最近计算机才在识别对象或语音任务中达到人类平均水平。一个人的日常生活 需要关于世界的巨量知识。很多这方面的知识是主观的、直观的,因此很难通过形 式化的方式表达清楚。为了表现出智能,计算机需要获取同样的知识。人工智能的 一个关键挑战就是如何将这些非形式化的知识传达给计算机。

    一些人工智能项目力求将关于世界的知识用形式化的语言进行硬编码 (hardcode)。计算机可以使用逻辑推理规则来自动地理解这些形式化语言中的申明。这就 是众所周知的人工智能的知识图谱 (knowledge base) 方法。这些项目都没有导致重 大的成功。其中最著名的项目是 Cyc (Lenat and Guha, 1989)。Cyc 包括一个推断引 擎和一个使用 CycL 语言描述的声明数据库。这些声明是由人类监督者输入的。这 是一个笨拙的过程。人们设法设计出足够复杂的形式化规则来精确地描述世界。例 如,Cyc 不能理解一个关于名为Fred的人在早上剃须的故事 (Linde, 1992)。它的推 理引擎检测到故事中的不一致性:它知道人没有电气零件,但由于Fred正拿着一个 电动剃须刀,它认为实体 ‘‘正在剃须的 Fred”(“FredWhileShaving”) 含有电气部件。 因此它产生了这样的疑问——Fred在刮胡子的时候是否仍然是一个人。

     依靠硬编码的知识体系面对的困难表明,AI系统需要具备自己获取知识的能力, 即从原始数据中提取模式的能力。这种能力被称为机器学习 (machine learning)。引 入机器学习使计算机能够解决涉及现实世界知识的问题,并能作出看似主观的决策。 比如,一个被称为逻辑回归 (logistic regression) 的简单机器学习算法可以决定是否 建议剖腹产 (Mor-Yosef et al., 1990)。而朴素贝叶斯 (naive Bayes)(同样是一个简 单机器学习算法)则可以区分垃圾电子邮件和合法电子邮件。

     这些简单的机器学习算法的性能在很大程度上依赖于给定数据的表示 (representation)。例如,当逻辑回归被用于推荐剖腹产时,AI系统不直接检查患者。相反, 医生需要告诉系统几条相关的信息,诸如子宫疤痕是否存在。表示患者的每条信息 被称为一个特征。逻辑回归学习病人的这些特征如何与各种结果相关联。然而,它 丝毫不能影响该特征定义的方式。如果将病人的 MRI 扫描作为逻辑回归的输入,而不是医生正式的报告,它将无法作出有用的预测。MRI 扫描的单一像素与分娩过程 中的并发症只有微不足道的相关性。

    在整个计算机科学乃至日常生活中,对表示的依赖都是一个普遍现象。在计算 机科学中,如果数据集合被精巧地结构化并被智能地索引,数据操作的处理速度就 可以成指数级地加快(如搜索)。人们可以很容易地在阿拉伯数字的表示下进行算术 运算,但在罗马数字的表示下运算会更耗时。因此,毫不奇怪,表示的选择会对机器 学习算法的性能产生巨大的影响。图1.1展示了一个简单的可视化例子。

图 1.1: 不同表示的例子:假设我们想在散点图中画一条线来分隔两类数据。在左图,我们使用笛 卡尔坐标表示数据,这个任务是不可能的。右图中,我们用极坐标表示数据,可以用垂直线简单地 解决这个任务。(与 David Warde-Farley 合作画出此图。)

    许多人工智能的任务都可以先提取一个合适的特征集,然后将这些特征提供给 简单的机器学习算法来解决。例如,从声音鉴别说话者的一个有用特征是说话者声 道大小的估计。这个特征为判断说话者是一个男性、女性还是儿童提供了有力线索。

     然而,对于许多任务来说,很难知道应该提取哪些特征。例如,假设我们想编写 一个程序来检测照片中的车。我们知道,汽车有轮子,所以我们可能会想用车轮的 存在作为特征。不幸的是,我们难以准确地从像素值的角度描述一个车轮看上去像 什么。车轮具有简单的几何形状,但它的图像可能会因场景而变得很复杂,如落在 车轮上的阴影、太阳照亮的车轮的金属零件、汽车的挡泥板或者遮挡的车轮一部分 的前景物体等等。

    解决这个问题的途径之一是使用机器学习来挖掘表示本身,而不仅仅把表示映 射到输出。这种方法我们称之为表示学习 (representation learning)。学习到的表示往往比手动设计的表示表现得更好。并且它们只需最少的人工干预,就能让AI系统迅 速适应新的任务。表示学习算法只需几分钟就可以为简单的任务发现一个很好的特 征集,对于复杂任务则需要几小时到几个月。手动为一个复杂的任务设计特征需要 耗费大量的人工时间和精力;甚至需要花费整个社群研究人员几十年的时间。

    表示学习算法的典型例子是自动编码器 (autoencoder)。自动编码器由一个编码 器 (encoder) 函数和一个解码器 (decoder) 函数组合而成。编码器函数将输入数据转 换为一种不同的表示,而解码器函数则将这个新的表示转换到原来的形式。我们期 望当输入数据经过编码器和解码器之后尽可能多地保留信息,同时希望新的表示有 各种好的属性,这也是自动编码器的训练目标。不同种类的自动编码器的目标是实 现不同种类的属性。 当设计特征或设计用于学习特征的算法时,我们的目标通常是分离出能解释观 察数据的变化因素 (factors of variation)。在此背景下,‘‘因素’’ 这个词仅指代影响的 不同来源;因素通常不是乘性组合。这些因素通常是不能被直接观察到的量。相反, 它们可能是现实世界中观察不到的物体或者不可观测的力,但会影响能观测到的量。 为了对观察到的数据提供有用的简化解释或推断其原因,它们还可能以概念的形式 存在于人类的思维中。它们可以被看作数据的概念或者抽象,帮助我们了解这些富 有变化的数据。当分析语音记录时,变化的因素包括说话者的年龄、性别、他们的 口音和他们正在说的词语。当分析汽车的图像时,变化的因素包括汽车的位置、它 的颜色、太阳的角度和亮度。 在许多现实的人工智能应用中,困难主要源于很多变化因素影响着我们能够观 察到的每一个数据。比如,在一张包含红色汽车的图片中,其单个像素在夜间可能 会非常接近黑色。汽车轮廓的形状取决于视角。大多数应用需要我们理清变化因素 并丢弃我们不关心的因素。 当然,从原始数据中提取这样高层次的、抽象的特征是非常困难的。许多这样 的变化因素,诸如说话者的口音,只能对数据进行复杂的、接近人类水平的理解来 辨识。这几乎与获得原问题的表示一样困难,因此,乍一看,表示学习似乎并不能帮 助我们。 深度学习 (deep learning) 通过其它较简单的表示来表达复杂表示,解决了表示 学习中的核心问题。 深度学习让计算机通过较简单概念构建复杂的概念。图1.2展示了深度学习系统 如何通过组合较简单的概念(例如转角和轮廓,它们转而由边线定义)来表示图

1.2: 深度学习模型的示意图。计算机难以理解原始感观输入数据的含义,如表示为像素值集合 的图像。将一组像素映射到对象标识的函数非常复杂。如果直接处理,学习或评估此映射似乎是 不可能的。深度学习将所需的复杂映射分解为一系列嵌套的简单映射(每个由模型的不同层描述) 来解决这一难题。输入展示在可见层 (visible layer),这样命名的原因是因为它包含我们能观察到 的变量。然后是一系列从图像中提取越来越多抽象特征的隐藏层 (hidden layer)。因为它们的值不 在数据中给出,所以将这些层称为 ‘‘隐藏”; 模型必须确定哪些概念有利于解释观察数据中的关系。 这里的图像是每个隐藏单元表示的特征的可视化。给定像素,第一层可以轻易地通过比较相邻像 素的亮度来识别边缘。有了第一隐藏层描述的边缘,第二隐藏层可以容易地搜索可识别为角和扩 展轮廓的边集合。给定第二隐藏层中关于角和轮廓的图像描述,第三隐藏层可以找到轮廓和角的 特定集合来检测特定对象的整个部分。最后,根据图像描述中包含的对象部分,可以识别图像中 存在的对象。经Zeiler and Fergus (2014) 许可转载此图。

    像中人的概念。深度学习模型的典型例子是前馈深度网络或多层感知机 (multilayer perceptron, MLP)。多层感知机仅仅是一个将一组输入值映射到输出值的数学函数。 该函数由许多较简单的函数组合构成。我们可以认为每个应用具有不同的数学函数, 并为输入提供新的表示。 学习数据正确表示的想法是解释深度学习的一个视角。另一个视角是深度能够让计算机学习一个多步骤的计算机程序。表示的每一层可以被认为是并行执行另一 组指令后计算机的存储器状态。更深的网络可以按顺序执行更多的指令。顺序指令 提供了极大的能力,因为后面的指令可以参考早期指令的结果。从这个角度上看,在 某层激活函数里,并非所有信息都蕴函着解释输入的变化因素。表示还存储着状态 信息,用于帮助程序理解输入。这里的状态信息类似于传统计算机程序中的计数器 或指针。它与具体的输入内容无关,但有助于模型组织其处理过程。 目前主要有两种度量模型深度的方式。第一个观点是基于评估架构所需执行的 顺序指令的数目。我们可以认为这是描述每个给定输入后,计算模型输出的流程图 的最长路径。正如两个使用不同语言编写的等价程序将具有不同的长度;相同的函 数可以被绘制为具有不同深度的流程图,其深度取决于我们可以用来作为一个步骤 的函数。图1.3说明了语言的选择怎样给相同的架构两个不同的衡量。

图 1.3: 将输入映射到输出的计算图表的示意图,其中每个节点执行一个操作。深度是从输入到输 出的最长路径的长度,但这取决于可能的计算步骤的定义。这些图中所示的计算是逻辑回归模型 的输出,σ(rT t),其中 σ 是logistic sigmoid函数。如果我们使用加法、乘法和logistic sigmoid作 为我们计算机语言的元素,那么这个模型深度为三。如果我们将逻辑回归视为元素本身,那么这 个模型深度为一。

    另一种是在深度概率模型中使用的方法,它不是将计算图的深度视为模型深度, 而是将描述概念彼此如何相关的图的深度视为模型深度。在这种情况下,计算每个 概念表示的计算流程图的深度可能比概念本身的图更深。这是因为系统对较简单概 念的理解在给出更复杂概念的信息后可以进一步细化。例如,一个AI系统观察其中 一只眼睛在阴影中的脸部图像时,它最初可能只看到一只眼睛。但当检测到脸部的存在后,系统可以推断第二只眼睛也可能是存在的。在这种情况下,概念的图仅包 括两层(关于眼睛的层和关于脸的层),但如果我们根据每个概念给出的其它 n 次估 计进行细化,计算的图将包括 2n 层。 由于并不总是清楚计算图的深度或概率模型图的深度哪一个是最有意义的,并 且由于不同的人选择不同的最小元素集来构建相应的图,导致架构的深度不存在单 一的正确值,就像计算机程序的长度不存在单一的正确值。也不存在模型多么深才 能被修饰为 ‘‘深’’ 的共识。但相比传统机器学习 ,深度学习研究的模型涉及更多学 到函数或学到概念的组合,这点毋庸置疑。 总之,这本书的主题——深度学习是通向人工智能的途径之一。具体来说,它 是机器学习的一种,一种能够使计算机系统从经验和数据中得到提高的技术。我们 坚信机器学习可以构建出在复杂实际环境下运行的AI系统,并且是唯一切实可行的 方法。深度学习是一种特定类型的机器学习,具有强大的能力和灵活性,它将大千 世界表示为嵌套的层次概念体系(由较简单概念间的联系定义复杂概念、从一般抽 象概括到高级抽象表示)。图1.4说明了这些不同的AI学科之间的关系。图1.5展示了 每个学科如何工作的高层次原理。

登录 评论文章
声明:本站部分内容来自网络,如您发现本站内容侵害到您的利益,请联系本站管理员处理。