PDF 物理页索引 2050
文件中的第 2051 页 · 印刷页码:未识别
PDF 物理页索引 2051
文件中的第 2052 页 · 印刷页码:08
反向传播算法
加州大学圣迭戈分校成立于1960年,现已发展成为生物医学研究的主要中心。它在1986年成立了世界上第一个认知科学系。<sup>[1]</sup>大卫·鲁姆哈特(见图8–1)在那时已经是一位杰出的数学家和认知心理学家,他曾在以符号学和规则为基础的传统人工智能领域工作过,这类研究在20世纪70年代的人工智能研究中占主导地位。1979年,我在加州大学圣迭戈分校由杰弗里·辛顿组织的研讨会上第一次见到了大卫,当时他开创了一种新的探索人类心理的方法,他和詹姆斯·麦克莱兰称之为“并行分布式处理”(以下简称PDP)。大卫总是能对问题进行深入思考,并经常提出富有洞察力的评论。
玻尔兹曼机学习算法可以学习如何解决需要隐藏单元的问题,这表明,训练多层网络并突破感知器的限制是可行的,而这种观点与马文·明斯基和西摩尔·帕普特以及该领域大多数人的观点相左。网络中的层数或任一给定层内的连接性都不存在任何限制。但是有一个问题:达到平衡和收集统计数据来进行模拟的速度变得越来越慢,大型网络需要花费更长的时间才能达到平衡。
08
PDF 物理页索引 2052
文件中的第 2053 页 · 印刷页码:未识别
原则上,可以构建具有大规模并行体系结构的计算机,该计算机比具有每次只进行一次更新的传统冯·诺依曼体系结构的计算机快得多。20世纪80年代的数字计算机每秒只能执行100万次操作。今天的计算机每秒能够执行数十亿次操作,并且通过将数千个内核连接在一起实现的高性能计算机,其速度比以前快上百万倍——技术性能得到了空前的提高。
“曼哈顿计划”是美国在无法保证原子弹能够研制成功的情况下做出的260亿美元的赌注(以2016年的美元价值计算),最大的秘密就是它的确有成功的苗头。当使用玻尔兹曼机可以训练多层网络的秘密被公开后,许多新的学习算法如雨后春笋般不断涌现。在杰弗里·辛顿和我研究玻尔兹曼机的同时,大卫·鲁姆哈特开发了另一种多层网络学习算法,而后来的实践证明,这种算法的效率更高。<sup>[2]</sup>
算法的优化
PDF 物理页索引 2053
文件中的第 2054 页 · 印刷页码:未识别
优化(Optimization)是机器学习中一个关键的数学概念:对于许多问题,可以找到一个代价函数(cost function),而问题的解决方案就是代价最低时的系统状态。对于霍普菲尔德网络来说,代价函数就是能量,目标是找到使网络能量最小化的状态(如第6章所述)。对于前馈网络,用于学习的常用代价函数是训练集输出层上的方差之和。“梯度下降”(gradient descent)是一种能够最小化代价函数的通用过程,实现方法是对网络中的权重沿降低代价最快的方向进行逐步修改。<sup>[3]</sup>如果将代价函数看作山脉,那么梯度下降就是选择向山脚下滑动的最快路径。
鲁姆哈特发现了如何通过被称为“误差的反向传播”(backprop-agation of errors),或简称为“反传”(backprop)的过程来计算网络中每个权重的梯度(见方框8.1)。从误差已知的输出层开始,可以很容易地计算出指向输出单元的输入权重的梯度。下一步就是使用输出层梯度来计算上一层权重的梯度,以此类推,逐层回到输入层。这是一种高效计算误差梯度的方法。
尽管不像玻尔兹曼机学习算法那样拥有优雅和深厚的物理学根源,但是反向传播效率更高,并且推动该领域取得了快速进展。由大卫·鲁姆哈特、杰弗里·辛顿和罗纳德·威廉姆斯(RonaldWilliams)合著的经典的反向传播论文于1986年发表在《自然》杂志上,<sup>[4]</sup>迄今为止,该论文已经在其他研究论文中被引用超过4万次。(世界上发表的所有论文里有一半从未被引用过,甚至连作者自己都不引用;一篇被引用了100次的论文都会在领域内产生巨大反响,所以很显然,这篇有关反向传播的文章是一颗重磅炸弹。)
8.1误差反向传播
PDF 物理页索引 2054
文件中的第 2055 页 · 印刷页码:未识别
反向传播网络的输入是被传播的前馈:在该图中,左侧的输入通过连接(箭头)向前传播到隐藏的单元层,然后投影到输出层。输出结果与训练者给出的值进行比较,差值被用来更新连接输出单元的权重,以减少误差。然后,根据每个权重对误差贡献的多少,通过反向传播误差对输入单元和隐藏层之间的权重进行更新。利用大量样本进行训练,隐藏单元生成了可区分不同输入模式的选择性特征,这样一来它们就能够在输出层中对不同类别进行区分。这一过程被称为“表征学习”(representation learning)。
PDF 物理页索引 2055
文件中的第 2056 页 · 印刷页码:未识别
语音合成的突破
1984年,我在普林斯顿听了研究生查尔斯·罗森伯格(CharlesRosenberg)关于玻尔兹曼机的演讲。虽然这通常是我演讲的题目,但这段演讲还是令我印象深刻。查尔斯问他是否可以去我的实验室参与一个夏季研究项目。他来到巴尔的摩时,我们已经转向了反向传播领域,这让我们有可能考虑现实级别的问题,而不是之前处理的那种玩具级别的问题。由于查尔斯是传奇语言专家乔治·米勒(GeorgeMiller)的学生,我们想寻找一个恰到好处的语言问题,既不会难到完全找不到头绪,又不会容易到存在现成的解决方法。语言学是一个具有许多分支学科的广阔领域,例如:音韵学(phonology),涉及单词的发音;句法学(syntax),研究单词在一个句子中是如何排列的;语义学(semantics),研究单词和句子的含义;还有语用学(pragmatics),研究语境是如何影响语义的,等等。我们决定从音韵学开始着手。
英语是一种特别难发音的语言,因为规则很复杂,并且有很多例外情况。例如,如果一个单词的最后一个辅音后面跟着一个不发音的字母“e”,则元音大多数情况下都要发长音,如“gave”和“brave”。但是也有例外,例如“have”,这个词的发音就与之前的规则相悖。我在图书馆找到了一本书,在书中音韵学家编纂了这些规则和例外,厚达数百页。通常例外情况中也会有规则,而有时例外的规则中还存在例外情况。总之,对于语言学家来说,“一路下来”都是规则。<sup>[5]</sup>更让人抓耳挠腮的是,同样一个单词,并不是每个人的发音都一样。还存在很多方言,每种方言也都有自己的一套规则。
PDF 物理页索引 2056
文件中的第 2057 页 · 印刷页码:未识别
杰弗里·辛顿在我们计划的早期阶段到约翰·霍普金斯大学拜访了查尔斯和我,跟我们说他认为英语发音太难掌握了。所以我们收小了野心,找了一本总共有大约100个字的儿童早教读物。我们设计的网络有一个由7个字母组成的窗口,每个字母由29个单元(包含空格和标点符号)表示,共203个输入单元。研究目标是预测窗口中间位置那个字母的读音。输入单元与80个隐藏单元相连,隐藏单元又投射到26个输出单元,每个输出单元对应一个基本发音,在英语里被称为“音位”(phonemes)。我们把该字母发音网络叫作“话语网络”(见图8–2)。<sup>[6]</sup>网络中有18 629个权重,按照1986年的标准衡量,这是个十分庞大的数字。而按照当时的数学统计标准来看,根本没法进行操作。有了这么多的参数,我们被告知训练集可能会被过度拟合,导致网络无法泛化。
当单词在有7个字母的窗口中依次穿过时,网络为窗口中位于中间的字母分配了一个音位。项目中花费时间最长的部分,是手动将音位与正确的字母相匹配,因为字母的数量与每个单词中音位的数量不同。相比之下,学习过程就发生在我们眼前,其表现随着句子在窗口中循环而变得越来越好。当学习收敛时,网络在有100个单词的训练集中的表现堪称完美。虽然对新单词进行测试的效果很差,但由于我们对在这样一个小的训练集上成功泛化的预期并不高,所以这个初步结果仍然令人鼓舞。
PDF 物理页索引 2057
文件中的第 2058 页 · 印刷页码:未识别
图8-2 话语网络前馈网络模型。底层的7组单元代表在文本间移动的窗口中的字母,每次提取一个字母。该网络的目标是正确预测位于中间位置的字母的声音,在这个例子中就是很难发音的“c”音位。输入层中的每个单元与所有隐藏单元都建立了连接,而后者又会投射到输出层上的所有单元。反向传播学习算法能够使用来自训练者的反馈来训练权重。正确的输出模式会与网络的输出结果进行比较,在这个例子里,输出的是“k”音位,那么误差就会被反向传播给前面若干层上的权重。
随后,我们使用了含有2万个字母的布朗语料库(BrownCorpus)<sup>[7]</sup>,并为每个字母指定了音位以及重音标记。字母和声音的对应工作花了几周的时间,但是学习开始后,网络在一个晚上就吸收了整个训练集的信息。那么它能进行泛化吗?结果证明,泛化的结果非常漂亮。该网络已经发现了英语发音的规律性,并且可以识别出例外情况,所有这些都是基于相同的架构和学习算法。虽然按照今天的标准来看,这一成果微不足道,但我们的网络很好地证明了反向传播网络如何能够有效地表征英语音韵。这是我们得到的第一个暗示,即神经网络学习语言(符号表征的典型代表)的方式和人类的学习方式相同。
PDF 物理页索引 2058
文件中的第 2059 页 · 印刷页码:未识别
在获得了大声朗读的能力后,话语网络首先经历了一个胡言乱语的阶段,成功识别了辅音和元音之间的区别,却将音位“b”分配给了所有辅音,将音位“a”分配给了所有的元音。刚开始,它的发音听起来像“ba ba”,经过更多的学习之后,发音偏向了“ba ga da”。这种现象与婴儿咿呀学语的状态非常类似。之后它开始能够正确地说出短词的发音,最后在训练结束时,我们已经可以听懂它说的大多数单词了。
为了测试话语网络在方言上的表现,我们找到了一个来自洛杉矶郊外的拉丁裔男孩接受采访时的音韵翻录材料。训练有素的网络重新创建了一段该男孩带有西班牙语口音的英语,谈论的是他探望自己的祖母时,有时会得到糖果。通过将话语网络的输出播放到一个叫作“DECtalk”的语音合成器中,一串音位标签被转换为可听的语音,我记录下了学习阶段中的一系列语音片段。当我在某次演讲过程中播放这段录音时,台下的观众彻底震惊了——这个网络直接证明了它的语言能力。<sup>[8]</sup>这个暑期项目的结果完全超出了我们的预期,并成为神经网络学习领域的第一个实际应用。1986年,我带着话语网络参加了《今日秀》(Today show)节目,那一期的收视率很惊人。在此之前,神经网络一直是一门神秘的学科。我还遇到过很多人,他们在观看这个节目时是第一次听到神经网络这个概念。
虽然话语网络有力地证明了一个神经网络的确能够对语言的某些方面进行表征,但它并不是反映人类如何获得阅读技能的优质模型。首先,我们在学习阅读之前就先学会了说话。其次,有限的几个语音规则就能帮助我们开启大声精确朗读的复杂任务。但是,大声朗读很快就变成了快速的模式识别,并不需要有意识地应用规则。大多数会说英语的人都会在阅读刘易斯·卡罗尔(Lewis Carroll)的诗Jabberwocky 时 , 不 由 自 主 地 读 出 “brillig” 、 “slithy” 和“toves”等无意义的词,就像读正常的词一样,话语网络也是如此。这些虚构的词不存在于任何字典中,但是可以触发由英语中相关字母模式组成的音位。
PDF 物理页索引 2059
文件中的第 2060 页 · 印刷页码:未识别
话语网络给观众留下了深刻的印象,不过现在,查尔斯和我需要对这个网络进行分析,弄清楚它到底是如何工作的。为此,我们对隐藏单元中的活动模式进行了聚类分析(cluster analysis),并发现话语网络察觉到了相似的元音和辅音的分类,这和语言学家们已经识别出的分类相同。马克·塞登伯格(Mark Seidenberg)和詹姆斯·麦克莱兰采用了一种类似的方法作为研究的起点,将其与儿童在学习阅读时经历的一系列阶段进行了详细比较。<sup>[9]</sup>
话语网络以出人意料的方式影响了这个世界。作为约翰·霍普金斯大学托马斯·詹金斯(Thomas C. Jenkins)生物物理系的一名教员,我开始对蛋白质折叠的问题产生了兴趣。蛋白质是由一系列氨基酸折叠成的复杂的结构,该结构赋予了蛋白质广泛的功能,例如血红蛋白,它能够与血红细胞中的氧结合。根据氨基酸序列来预测蛋白质的三维形状是一个难度很高的计算问题,对大多数蛋白质来说,即便使用功能最强大的计算机也没办法实现。然而,有一种单元结构相对更容易预测,被称为二级结构(secondary structures)。在二级结构中,氨基酸以螺旋、平面或无规卷曲的方式缠绕。生物物理学家们使用的算法考虑了不同氨基酸的化学性质,但他们的预测还不足以解决三维空间的折叠问题。
钱宁是我实验室的一年级研究生,他是1980年在中国所有物理系的学生中,为数不多被选中来美国攻读研究生课程的人之一。我们想知道,如果为每个氨基酸分配螺旋、平面或无规卷曲的参数,话语网络是否可以通过一串氨基酸序列来预测蛋白质的二级结构。这是一个重要的问题,因为蛋白质的三维结构决定了它的功能。输入由字母序列变成了氨基酸序列,而预测的结果由音位变成了二级结构。训练集是由X射线晶体学确定的三维结构。让我们意想不到的是,它对于新蛋白质的二级结构的预测,要远远好于基于生物物理学的最佳方法,<sup>[10]</sup>这一具有里程碑意义的研究是机器学习在分子序列中的首次应用,该领域现在被称为生物信息学(bioinformatics)。