奎克的藏经阁 · MinerU 解析内容

人工智能时代:破解人机共存密码(套装共10册)

3314 个 PDF 物理页 · 本页显示文件第 3111–3120 页

PDF 物理页索引 3110

文件中的第 3111 页 · 印刷页码:未识别

然而,对于可预见的未来,我们仅仅掌握细胞代谢网络的部分知识,也只掌握了我们想掌握的一部分变量。面对信息缺失以及所有可用信息不可避免的矛盾,要掌握有用的模型就需要利用贝叶斯方法,在第六章我们会深入研究这个问题。对特殊患者进行预测也是同样的道理,掌握模型:可利用的证据必然会杂乱和不完整,但贝叶斯推理会充分利用它。它起到作用了,如果把治愈癌症作为目标,我们不必知道癌细胞运转的所有细节,只需要知道如何在不损害正常细胞的情况下,使癌细胞失去繁殖能力,这就足够了。在第六章中,我们也会看到如何避开我们不知道也不必知道的事,使学习面向目标。

更直接的是,我们可以利用逆向演绎从数据及之前的知识中推导出细胞网络的结构,但应用它的方法可以呈现出组合爆炸式增长,我们需要的是一个策略。既然代谢网络由进化来决定,也许在我们的学习算法中对其进行刺激才是可行办法。在第五章中,我们会看到如何做到这一点。

大脑的更深处

PDF 物理页索引 3111

文件中的第 3112 页 · 印刷页码:未识别

在反向传播初次进入公众视线时,联结学派幻想能够快速掌握越来越大规模的网络,直到硬件允许的条件下,这些网络等同于人工大脑。结果却并非如此。掌握拥有一个隐含层的网络没问题,但在那之后,很快事情就会变得很困难。几层的网络,只有为了应用(比如文字识别)而经过精心设计的才能起作用。超出这个范围,反向传播就会瘫痪。随着我们增加越来越多的层数,误差信号会变得越来越散漫,就像河流分成越来越小的支流,直到我们只剩下雨滴,不留痕迹。利用几十或数百个隐藏层来进行学习,就像大脑一样,过去是一个遥远的梦,而到了20世纪90年代中期,对多层感知器的热情已经逐渐消减。联结学派的中坚分子仍在坚持,但总的来说,人们对机器学习领域的关注度已经转移到别的领域(在第六章和第七章中我们会探索这些领域)。

然而,如今联结学派又复活了。我们比现在掌握了更深层的网络,而且这些网络在视觉、语音识别、药物研制和其他领域都在设定新标准。这个领域新的深入学习成果被刊登在《纽约时报》的头版上。往发动机盖下面看……惊喜:是值得信赖的老式反向传播发动机,还在嗡嗡作响。什么发生改变了?评论家说,没什么大的改变:只是计算机变得更快了,数据变得更大了。辛顿和其他人答道:确实,我们一直都没错!

实际上,联结学派有实质性的进步。如果联结学派是过山车,那么对于最近的过山车转弯,贡献者之一的就是一个看上去普通的小设备,称为“自动编码器”。自动编码器就是一台多层感知器,其输出量和输入量一样。输入一张你祖母的照片,然后输出的还是你祖母的照片。起初,这就像一个愚蠢的想法:这样一个奇异的装置可能有什么用?答案就是,让隐藏层比输入和输出层小很多,那么网络就不会只把输入信息复制到隐藏层,然后再从隐藏层复制到输出信息那里,在这种情况下,我们可能也会把所有东西都扔出去。但如果隐藏层变小了,就会发生有趣的事情:网络会被迫将输入信息编码在更少的比特里,那样在隐藏层就可以表示出来了,然后网络会解压那些信息,还原到原来的大小。例如,它可以对你祖母百万像素的照片进行编码,变成仅仅7个字母的单词“grandma”,或者它自己创造出来的更短代码,同时学习将“grandma”解码成一个老奶奶的照片。因此,一台自动编码器就像一个文件压缩工具,它有两个重要的优点:知道如何自行压缩东西,和霍普菲尔德网络一样;可以把一张杂乱、扭曲的图片变得干净清晰。

PDF 物理页索引 3112

文件中的第 3113 页 · 印刷页码:未识别

自动编码器于20世纪80年代为人所知,虽然有一个单个隐藏层,但它很难学习。要弄明白怎样把众多信息打包压缩至几个相同比特大小,是非常难的问题(一个代码是你的祖母,另一个稍有不同的代码是你的祖父,再一个是詹妮弗·安妮斯顿,等等)。超空间里的地形实在是太崎岖,让人无法到达峰顶;隐藏的单位要掌握输入量的过多XOR相当于什么。因此自动编码器并没有真正跟上步伐。花了十余年来寻找的诀窍,就是让隐藏层比输入和输出层大一些。啊?实际上,这只是一半的诀窍:另一半就是,在任何特定时间,只把几个隐藏的单位赶走。这样做仍然会阻止隐藏层对输入层进行复制,而且关键是,这样做把学习变得更简单了。如果我们允许用不同比特来代表不同输入层,那么输入层就不再需要争相设置相同的比特。同样,网络现在有比之前多很多的参数,那么你所处的超空间会有更多的维度,而你也有更多的方法来逃出局部最大值的困境。这就叫作稀疏自动编码器,而它是一个诀窍。

虽然如此,我们还没有看到任何深入的学习行为。下一个聪明的主意就是把稀疏自动编码器逐个堆积起来,就像一个多层三明治那样。第一个自动编码器的隐藏层变成第二个的输入或输出层,依此类推。因为神经元是非线性的,每个隐藏层会掌握输入层更为复杂的表达方式,在前一个隐藏层的基础上进行构建。给定大批的面部图片,第一个自动编码器会对局部特征,如棱角和斑点进行编码;第二个自动编码器利用这些信息来对诸如鼻尖、眼睛的虹膜这些面部特征进行编码;第三个掌握整个鼻子和眼睛的面部特征等。最终,最顶端的一层可以是一台传统的感知器,会通过下一层编码器提供的上层特征来识别你的祖母,这和只利用单个隐藏层提供的粗糙信息,以及对所有层进行反向传播相比,要简单得多。登上《纽约时报》的谷歌大脑网络是一个由自动编码器和其他材料组成的9层三明治,能够从视频网站YouTube的视频中识别出猫。它包含数十亿个连接,是当时能够进行学习的最大网络。不足为奇的是,吴恩达(该项目的主要负责人之一)也是支持“人类智能可以归结为单个算法”这个思想的主要人物。吴恩达平易近人且很有志向,认为叠加在一起的稀疏自动编码器能够帮助我们更好地解决人工智能问题,比之前的任何方法都行得通。

PDF 物理页索引 3113

文件中的第 3114 页 · 印刷页码:未识别

叠加自动编码器不是唯一的深度学习算法,另外一种以玻尔兹曼机器作为基础,还有一种——卷积神经网络,则把视皮质模型作为基础。尽管取得了很大的成功,然而这些成果仍与大脑相去甚远。谷歌网络可以识别出猫脸的正面;人类可以认出各种姿势的猫,甚至在很难辨认脸部时也能认出。谷歌网络仍非常肤浅,它9层里面只有3层是自动编码器。多层感知器是小脑还算不错的模型,大脑的这部分负责低水平运动控制,但皮质就不一样了。它缺失用于传播误差的逆向连接,但它是学习这个魔法的真正所在。杰夫·霍金斯在《人工智能》一书中,提倡紧紧地把皮质组织形式作为基础,进行算法设计,但到目前为止,没有一个算法能够与今天的深度网络相比。

随着我们对大脑理解的深入,这种情况可能会改变。受到人类基因组计划的启示,神经连接组学正在力求绘制出大脑中的每个突触。欧盟正在进行10亿欧元的投资,用于构建大脑一应俱全的模型。美国的大脑计划也有相似的目标,仅仅2014年的基金就达到1亿美元。虽然如此,符号学派对这种寻找终极算法的方法仍非常怀疑。虽然我们可以在单个突触水平上想象完整的大脑,但是我们需要更好的机器学习算法,来将那些想象的图片变成布线图,仅仅用手来完成是不可能的。更糟糕的是,即使有了大脑的完整构图,我们仍然不知道它在干什么。秀丽线虫的神经系统仅仅由302个神经元组成,而且在1986年被完整绘制出来,但关于它干什么,我们也仅仅了解了一部分。我们需要更高水平的概念,用来搞明白底层细节这个难题,剔除那些针对人脑或只针对进化怪癖的细节。我们不会通过对羽毛进行逆向工程来制造飞机,而飞机也不会拍翅膀。飞机是在气体力学的基础上设计的,所有飞行的物体都必须遵循气体力学原则。我们还是没有理解那些想法的类似原则。

PDF 物理页索引 3114

文件中的第 3115 页 · 印刷页码:未识别

也许神经连接组学有点过分了。联结学派的一些人高调称,反向传播就是终极算法,而我们只需要扩大反向传播的规模。但符号学派对这种想法不屑一顾,他们指出一长串人类能做但神经网络做不了的事情。按照常识进行推理,这就涉及把之前从来没有被放在一起的信息组合在一起。玛丽午饭吃鞋子吗?不,因为玛丽是人,人类只吃能吃的东西,而鞋子不能吃。符号系统做到这些没有问题——它只会把相关规则串起来,但是多层感知器却做不到这一点。一旦完成学习,它只会不断计算同一个指定函数。神经网络不是组合出来的,而语意合成性是人类认知的一大部分。另外一个大问题就是人类,以及诸如规则集和决策树之类的符号模型,可以对它们的推理进行解释,而神经网络是一大堆没人能看懂的数字。

但是如果人类具备所有这些能力,大脑不经过调整突触就能掌握这些能力,那么这些能力从何而来?除非你相信魔法,答案一定是:通过进化得来。如果你是联结学派怀疑论者,而且有勇气肯定自己的观点,应该弄明白进化如何掌握孩子出生就知道的所有东西——你越觉得是天生的,要求也就越高。如果你弄明白了,然后对计算机进行编程来完成这个任务,别人否认你已经发明了终极算法的至少一个版本,这会显得十分无礼。

PDF 物理页索引 3115

文件中的第 3116 页 · 印刷页码:未识别

机器人公园是一个巨大的机器人工厂,被1万平方英里的丛林、城市等包围着。感觉那个丛林就是人类建造过的最高、最厚的墙,布满哨所、探照灯、炮塔。这堵墙有两个作用:把入侵者挡在外面,把公园的“居民”(数百万个为工厂生存而战、对工厂进行管理的机器人)保护在里面。获胜的机器人能够“产卵”,它们完成繁殖的方法就是通过对体内的3D打印机储库进行编程。慢慢地,机器人变得更智能、更快速以及更致命。机器人公园由美军运营,其目标是使终极战士进化。

机器人公园现在还不存在,但有一天它可能就会出现。我建议把它作为几年前DAPRA(美国国防部先进计划研究局)研讨会的一个思维实验,而出席该会议的一位军队高层人士实事求是地说:“那个想法可行。”但如果这支军队为了训练士兵,已经在加州沙漠对阿富汗村落进行全面模拟,模拟中还包括村民,而且为了培养终极战士,几十亿美元也只是个小数目。想到这些,他这么爽快地认可这个想法,就不会觉得多么让人吃惊了。

PDF 物理页索引 3116

文件中的第 3117 页 · 印刷页码:未识别

人们已经开始向机器人公园迈出第一步。在霍德·利普森位于康奈尔大学的创意机器实验室中,奇形怪状的机器人正在学习爬行和飞行,可能正巧它们在做这些时,你也正读到这里。其中一个机器人看起来像胶块垒成的滑行塔,另外一个像装了蜻蜓翅膀的直升机,还有一个能变形的万能工匠。这些机器人并不是人类工程师设计出来的,而是进化而来的,和地球上生命多样性产生的过程一样。虽然机器人最初在计算机的模拟中得以进化,一旦这些机器人的技术达到熟练水平,足以在真实世界中运用,真实版的机器人就会通过3D打印机被制造出来。这些机器人还没有做好掌管世界的准备,但和开始时的“原生汤”模拟物相比,它们已经有了很大进步。

使这些机器人进化的算法,是19世纪由查尔斯·达尔文发明的。那时他不觉得这是一种算法,部分原因在于当时仍缺少一个关键的子程序。一旦1953年詹姆斯·沃森和弗朗西斯·克里克提供了该子程序,进化就会进入第二个阶段:该进化是在计算机中而不是在活体中进行,而且会比活体进化快10亿倍。该子程序的提倡者是一位面色红润、永远面带微笑的中西部人,名叫约翰·霍兰德。

达尔文的算法

和许多其他早期的机器学习研究者一样,霍兰德开始时研究的是神经网络,但他的兴趣使情况发生转变。在密歇根大学读研究生时,他阅读了罗纳德·费雪(Ronald Fisher)的经典著作《自然选择的遗传理论》(The Genetical: Cal Theory of Natural Selection)。在该著作中,同时作为现代统计学奠基人的费雪,提出了关于进化的第一套数学理论。虽然这个理论很妙,但霍兰德认为它遗漏了进化论的精华。费雪孤立地看待每个基因,但是有机体的适应度就是它所有函数的复值函数。如果基因都是独立的,它们变量的相对频率会快速收敛至最大适应点,然后从此保持均衡。但如果基因相互作用,进化(追求最大适应度)就要复杂得多。如果有1000个基因,每个基因有两个变量,那么基因组就有21000种可能的状态,宇宙中没有哪个星球可以大到或者古老到能够一一尝试这些可能。但是在地球上,通过进化可以得到适应力很强的有机体,而达尔文的自然选择理论至少从数量上解释了怎样找到这样的有机体。霍兰德决定将其变成一种算法。

PDF 物理页索引 3117

文件中的第 3118 页 · 印刷页码:未识别

但他首先得毕业。他谨慎地为其论文选择了一个更为保守的主题布尔周期电路,1959年他获得了计算机科学领域的首个博士学位。即便如此,他读博士期间的导师亚瑟·伯克斯激发了霍兰德在进化计算领域的兴趣,并帮助他在密歇根找到了教师工作,还让他避开那些不把进化计算归入计算机科学的资深同事。伯克斯本人思想很开明,因为他之前就已经是约翰·冯·诺依曼的亲密合作伙伴。冯·诺依曼证明了自我再生机器的可能性。的确,自从1957年冯·诺依曼因为癌症逝世后,完成这个工作的重任就落到了伯克斯肩上。在当时遗传学和计算机科学的原始水平下,冯·诺依曼能够证明这种机器的存在,这已经很了不起。但他的机器人智能仅能复制和自己一模一样的副本,要制造出进化版的机器人,还得由霍兰德来完成。

随着霍兰德的创作渐渐为人所知,遗传算法的关键输入就是一个适应度函数。给定一个待定程序和某个设定的目标,适应度函数会给程序打分,反映它与目标的契合度。在自然选择当中,适应度是否能这样解释,值得怀疑:虽然翅膀对于飞行的适应度很高,这个说法很直观,但整个进化过程却没有已知的目标。即便如此,在机器学习中,掌握诸如适应度函数这样的事情还是很容易的。如果我们需要一个能够诊断疾病的程序,如果一种算法能够正确诊断我们数据库中60%的病人,这样的算法就比准确率仅为55%的算法要好,所以可行的适应度函数能够帮助准确诊断。

PDF 物理页索引 3118

文件中的第 3119 页 · 印刷页码:未识别

就这一点而言,遗传算法就有点像选择育种。达尔文在《物种起源》开篇时就谈到这个问题,层层深入,解释较难理解的自然选择概念。现在我们自然而然地认为,经过驯化的动植物就是一代一代经过选择和交配的结果,是最能让我们达到各种用途的有机体:果实最大的玉米、最甜的果树、毛最多的羊、最强健的马匹。遗传算法也会做同样的事情,它产出的是程序而不是活的生物体,而一代对它而言是几秒的计算机时间,而不是生物的一生。

适应度函数将人在这个过程中扮演的角色概括化了。但和人的角色相比,更为微妙的部分是自然的角色。开始,是一群适应力不那么强的个体(可能是完全随机的个体)遗传算法得找出变量,然后这些变量依据适应度而被选择。自然怎样做到这一点?达尔文不知道。这就是遗传算法的一部分。DNA依据碱基对的序列对有机体进行编码,同理,我们也可以依据一串二进制数字对程序进行编码。DNA的4个基本组成单位,不是0和1,而是4个基本碱基,包括腺嘌呤、胸腺嘧啶、胞嘧啶、鸟嘌呤,但这仅仅是表面上的差异。变量,无论在DNA序列中,还是在位串中,都可通过几种方法产生。最简单的方法就是点突变,即随意翻转位串中的一个比特值,或者改变一段DNA中的单个基本碱基。但对霍兰德来说,遗传算法的真正威力在于更为复杂的东西:性。

把外衣脱光,只剩下基本部位(请不要笑出声),有性生殖包括在父亲和母亲的染色体之间进行材料交换,这个过程称作染色体交叉。这个过程会产生两条新的染色体,一条染色体交叉点的一边是母亲的染色体,另外一边则是父亲的染色体,另外一条则相反(见图5–1)。

PDF 物理页索引 3119

文件中的第 3120 页 · 印刷页码:未识别

遗传算法通过模拟这个过程发挥作用。它为每一代中两个适应力最强的个体进行配对,通过随机交叉父母位串中的一点,让每对父母生出两个后代。将点突变应用到新的位串后,算法让这些点突变在其虚拟世界中释放。每个点突变都会反馈适应度得分,然后重复这个过程。每一代都会比前一代的适应度更高,当达到理想的适应度或者时间用尽时,这个过程就会结束。

例如,假设我们想对一个规则进行进化,用于过滤垃圾邮件,结果会怎么样?如果有1万个不同的词出现在训练数字中,每个待选规则会用一条由2万个比特组成的位串来表示,每两个比特就是一个单词。与单词“free”(免费的)相对应的第一个比特就是1,条件是包含“free”的邮件允许与规则匹配;与单词“free”相对应的第一个比特就是0,条件是包含“free”的邮件不允许与规则匹配。第二个比特则相反:结果就是1,条件是不包含“free”的邮件允许与规则匹配;否则结果就是0,且不允许与规则匹配。那么如果两个比特都是1,邮件不管是否包含“free”都允许与规则匹配,而且规则实际上对那个词不设条件。另外,如果两个比特都是0,那么没有邮件会与规则匹配,因为总有一个比特会发生故障,而且所有邮件都会通过过滤器。总的来说,一封邮件只有在其出现和不出现的单词模式都经过规则允许时,才能与规则匹配。一个规则的适应度就是规则正确分类邮件的百分数。从一堆随机的字符串开始,每个位串代表一个包含随机条件的规则,通过不断重复和改变每代中的最匹配位串,这时遗传算法就可以进化出越来越好的规则。例如,如果当前包含这些规则:如果邮件包含“free”,那么它就是垃圾邮件,如果邮件包含“easy”(简单的)那么它就是垃圾邮件。将这两个规则交叉可能会产生适应度更高的规则:如果邮件都包含“free”和“easy”,那么它就是垃圾邮件,前提是交叉点不落在与这些词(free、easy)相对应的两个比特中间。它也可能会产生这样的规则:所有的邮件都是垃圾邮件,这样的规则是抛弃所有条件后得出的,但它在下一代中不太可能产生很多子规则。