饭饭TXT > 学习管理 > 《如何创造思维(出版书)》作者:[美]雷·库兹韦尔/译者:盛杨燕【完结】 > 《如何创造思维》作者:[美]雷·库兹韦尔.txt

第 6 页

作者:美-雷·库兹韦尔/译者:盛杨燕 当前章节:15296 字 更新时间:2026-6-22 12:18

美国计算机科学家达曼德拉·莫哈(Dharmendra Modha)及其IBM的同事成功模拟了人类视觉新皮质,其中包含16亿个视觉神经元和9万亿个突触,相当于一只猫的新皮质神经元和突触总和。即使将其装入拥有147456个处理器的IBM蓝色基因超级计算机,其运行速度还是比人类的处理速度慢100倍。他们凭借这项工作获得了美国计算机协会(Association for Computing Machinery)颁发的贝尔·戈登奖(Gordon Bell Prize)。

无论是蓝脑计划,还是莫哈的新皮质模拟计划,这些仿真大脑计划的最终目的都可归为一点,即完善和确定一个功能模型。与人脑水平相当的人工智能主要采用本书中讨论的模型——功能算法模型。但是精细到分子程度的模拟可以帮助我们完善此模型,并让我们明白到底哪些细节才是最重要的。20世纪八九十年代的语音识别技术发展过程中,只要能够了解听觉神经及早期听觉皮质负责的实际信号传递,我们就能精简算法。不论功能模型多么完美,弄清楚它在大脑中的运行轨迹也是有益的——因为这会加深我们对人类功能机制和机能失调的认识。

只要拥有真实大脑的详细数据,我们就能模拟出生物学意义上的大脑。马克拉姆团队正在收集自己的数据。还有其他规模较大的项目也在收集此类数据,并将所收集的数据转化成科学家可以利用的数据。例如,纽约的科尔德斯普林实验室(Cold Spring Harbor Laboratory in New York)在对某种哺乳动物(老鼠)的大脑进行扫描后,于2012年6月公布了500兆兆字节的数据。在他们公布的扫描图上,用户可以像在谷歌地图上查看位置那样查看大脑的各个组成部分。用户可以在整个大脑区域内任意移动,也可以放大任意区域,以清楚地观看某个神经元及其与其他神经元的连接。用户还可以点亮任意连接并跟踪它在脑内的运行轨迹。

美国国立卫生研究院(National Institutes of Health)的16个部门共同承接了名为“人类连接组计划”(Human Connectome Project)的新项目,并获得3850万美元的资助。该项目由圣路易斯华盛顿大学领衔,明尼苏达大学、哈佛大学、马萨诸塞州总医院(Massachusetts General Hospital)和加州大学洛杉矶分校也参与其中。该项目致力于使用一些非侵入性扫描技术,包括新型核磁共振(MRI)、脑磁图描记(记录大脑电流活动产生的磁场)、弥散跟踪技术(跟踪大脑纤维束轨迹的方法),绘制人类大脑三维连接图。

就像我将在第10章讲到的,非侵入性扫描技术的空间分辨率正在飞速提高。瓦·韦登及其马萨诸塞州总医院的同事发现:新皮质的电路呈现出一种高度规则的网格结构,这个结构我已经在第4章中讲到过。

牛津大学计算机神经科学家安德斯·桑德伯格(Anders Sandberg)和瑞典哲学家尼克·博斯特罗姆(Nick Bostrom)联合发表了著作《全脑模拟路线图》(Whole Brain Emulation: A Roadmap)。该著作详细论述了不同级别的人脑模拟(也包括其他类型的大脑)——从高级功能模型到分子级别(见图7—3和图7—4)。

著作虽未提供统一标准,却对模拟不同类型大脑的精确性提出了要求,如:大脑扫描、建模、储存和计算方面。著作中提到的领域的研究正在飞速发展,精细的人脑模拟即将问世。

神经网络

1964年,16岁的我给康奈尔大学的弗兰克·罗森布拉特(Frank Rosenblatt)教授写信询问关于马克一代(Mark 1 Perceptron)感知器的问题。弗兰克教授于1960年研制出这台与大脑相似的机器。我有幸受邀去参观并试用这台机器。

弗兰克教授在神经元电子模型的基础上发明了感知器。输入信息的价值取决于两个维度。对语音来讲,这两个维度就是重复度和时间。因此,每个价值都代表了特定时间点的频率强度。对图像而言,每个点都是一个像素,而每个像素都拥有一个二维图像。系统会随机将输入信息的某个点连接到仿真神经元第一层的输入点。每个连接点的突触强度——揭示了每个连接点的重要性,都是随机分配的。某个神经元接收到信号的总和如果超出了它的最大承载量,它不仅会短路,还会向输出连接点发出信号;如果总和没有超出最大值,神经元就不会短路,输出信号也为零。每一层神经元的输出信息都会随机地与下一层神经元输入网络连接。马克一代感知器拥有3层结构,因而它就拥有了多种布局(见图7—5)。例如,下一层的输出信息可以返回到上一层。在最高层,随意挑选的神经元输出提供答案。

神经网络线路和突触强度都是随机设定的,所以未加训练的神经网络给出的答案也是随机的。因此,在建构某个神经网络时,我们首先要了解这个神经网络要解决的问题,就像最初建构的哺乳动物大脑那样。神经网络最初处于无知状态,它的老师可能是生物人、计算机程序或者其他,总之是经过学习后更加成熟的神经网络。当学生给出正确答案时,老师就会奖励它;给出错误答案时,老师就会惩罚它。仍处于学习阶段的神经网络也会以得到的反馈为依据,进而调整不同神经元的连接强度。那些与正确答案一致的连接强度不断增强,而给出错误答案的连接强度则会减弱。

一段时间后,即使没有老师指导,神经网络也能自行运算出正确答案。实验证明,即使老师不可靠,神经网络依然可以完成相应的学习。只要这个老师在60%的时间里是可靠的,作为学生的神经网络就可以完全掌握规定的知识。

但是感知器对其能够快速掌握的资料类别是有限制的。1964年拜访弗兰克教授时,我对输入信息做了些简单调整。系统识别打印字符的速度和准确率令人满意,自由联想能力也很棒(即使我遮挡了部分文字,系统仍然能输出正确的信件内容),但对非常规文字的识别能力较差,字体和字号的改变会影响它的准确率。

20世纪60年代后期,神经网络已为人们熟知,“连接主义”占据了人工智能领域的半壁江山。那些直接为解决某个问题而设计的程序,例如怎样识别打印字符中的不变特征,已沦为较为传统的人工智能方法。

1964年我还拜访了马文·明斯基(Marvin Minsky)——人工智能领域创始人之一。虽然他是20世纪50年代神经网络发展的先驱,但是他仍然对这项技术持怀疑态度。神经网络之所以火热,部分是由于人们在解决问题时不需要自己编写程序,依靠神经网络就可以找到解决方法。1965年我进入麻省理工学院学习,师从明斯基教授,我十分赞同明斯基教授对神经网络持有的怀疑态度。

1969年,麻省理工学院人工智能实验室的两位开创者明斯基和西蒙·派珀特(Seymour Papert)发表了著作《感知器》(Percepiron)。该著作论证了一个简单的定理:感知器自身并不能判断一幅图像到底有没有被成功连接。这立刻在业界引起轩然大波。人脑可以轻易判断出一幅图像到底有没有被成功连接,而配有合适程序的计算机也可以轻易地做到这一点,感知器并不能做到这一点这个事实被很多人认为是一个致命的软肋(见图7—6)。

然而,《感知器》论证的定理的适用范围却被人为地扩大了。书中提到的定理只适用于前馈神经网络(包含罗森布拉特的感知器)这种特殊的神经网络;其他类型的神经网络并没有此限制。这本著作的问世使得20世纪70年代对神经网络的投资大大减少。直到20世纪80年代,这个领域才得以复苏,因为更为实际可行的生物神经元模型诞生了,避免明斯基和派珀特感知器定理的模型也出现了。然而,至今仍无人问津新皮质解决恒定性的能力,即增强新皮质性能的关键。

矢量量化

20世纪90年代初期,我开始探索另一个经典模式识别难题:人类语音识别。最初,我们采用传统人工智能方法,利用专业知识直接对语言基本构成单位——音素,以及音素形成单词和词组的方法进行编程。每个音素都有自己独特的频率模式。例如,我们知道 “e”和“ah”这两个元音在某些情况下会产生共振频率,即共振,而且每个音素都拥有自己的共振峰值,“z”和“s”这样的咝音则拥有特定频率的连续音响。

我们用声波来记录语言。通过一系列过滤器,语言最终可以转化为不同频段(即我们平时所感知的音高)。光谱图则体现了这种转化(见图7—7和图7—8)。

过滤器就相当于我们的耳蜗,是生物处理声音的前期步骤。根据音素的不同频率模式,软件先识别音素,然后根据得到的音素串识别不同的单词。

测试取得了部分成功。我们的机器可以识别某个拥有中等词汇量,即几千个单词的说话者的说话内容。而当我们试图识别数以千计的单词、不同的讲话者以及流利无间断的话语(词与词之间没有停顿)时,就会遇到不变特征这一难题。针对同一音素,不同的人会有不同的发音,例如某些人发的“e”音听起来很像其他人发的“ah”音。而且就算是同一个人,同一个音素的发音特征也会有所变化。音素的发音通常受到临近音素的影响。很多音素也会出现完全消音的现象。许多单词出现的情境不同,发音(音素串组成单词)也会不同。我们的编程基础——语言学规则被推翻了,而且它也远远无法满足口语的多变性。

我突然明白,层级知识结构决定了人类语言模式和概念能否被正确识别。拥有复杂层级结构的人类语言就证明了上述观点。但是,我们仍无从知晓这些结构的基本成分。因此在研究机器人识别正常人类语言时,这也是我思考的第一个问题。

空气振动后,声音就进入人耳。随后,耳蜗内的3000多个内部毛细胞将这种振动转换为不同频率段。每个毛细胞都拥有特定的频率段(也就是我们所说的声调),而且每个毛细胞都是一个频率过滤器,当它们收到符合频率段的声音或者相近的频率段时,毛细胞就会发出信号。当声音离开人的耳蜗时,3000多个不同的信号就是声音的体现,每个信号代表了窄频率带(频率带之间会有很多重合)的时间变化强度。

虽然大脑不会歧视任何信号,但是在我看来,大脑也无法公正地对这3000多个听觉信号进行模式匹配。我曾怀疑进化就是如此缺乏效率。现在我们已经了解:在声音信号到达新皮质之前,听觉神经内的数据会急剧减少。

在我们设计的语音识别软件中,我们同样也植入了过滤器软件,确切地说,一共有16个,后来增加到32个,但我们发现数量的增加并不影响最终结果。所以,在我们的系统中,每个点由16个数字表示。我们不仅要保留重要的语言识别特征,还得把16个数据带整合为1个数据带。

为了整合数据,我们采用了数学最优化法,即矢量量化(vector quantification)。无论情况怎样变化,声音(至少是一只耳朵听到的声音)都由16个不同的数字表示:即16个声频过滤器过滤后的信息。(对人类的听觉系统而言,需要3000组这样的数字才能够实现全模拟,每组数字代表了人类耳蜗的一个毛细胞。)在数学领域,这样的一组数字(不管是生物学意义上的3000组数字还是软件设置上的16组数字)被称为向量。

简而言之,我们可以用二维矢量坐标来表示矢量量化过程(见图7—9)。每一个矢量都可以视为一个二维空间的交汇点。

如果将很多这样的矢量放到图中,你就会发现它们呈现一种集群状态(见图7—10)。

为了清晰地辨别这些集群数字,我们需要限制观察的数目。我们将项目中的数字限定为1024个,这样我们就可以为它们编号,并且匹配一个10比特(因为210=1024)的标签。正如预期,我们的矢量样本数据满足了数据多样性的要求。我们首先假设最初的1024个矢量为单点集群。然后加入新的矢量,即第1025个矢量,随后找到跟它最接近的那个点。如果这两个点之间的距离比这1024个点中最近的两个点之间的距离还要小,我们就认为这个点就是一个新集群的开始。然后我们就将距离最近的两个集群合并为一个单独的集群。这样我们仍然有1024个集群。因此,在这1024个集群中,每个集群就不止拥有一个点。随后我们按照这种方式处理数据,但集群的数量始终保持不变。处理完所有点之后,我们就用这个集群中的中心点来表示这个多点集群(见图7—11)。

矢量样本中所有的矢量都会采用同样的方法。通常情况下,我们会将数百万个点加入到1024(210)个集群中;根据不同情况,我们也会将集群数目增加到2048(211)或者4096(212)个。每个集群都用位于该集群几何中心的那个矢量来表示。这样,该集群中所有点到该集群中心点的距离总和就能尽可能达到最小。

与最初数百万个点(或者数量更多的可能点)相比,采用这种方法后,我们就可以将庞大的数量减少到1024个,使得空间最优化。那些用不到的空间也就被遗弃了。

然后,我们为每个集群分配一个数字(0 ~1023)。这些被简化、量化的数字就是其所指集群的代号,这也是这项技术得名为矢量量化的原因。当新的输入矢量出现后,我们就用离这个矢量最近的那个集群数字表示。

根据每个集群中心点到其他集群中心点的距离,我们可以预先绘制一张表格。当新的矢量(我们用量化点来表示这个矢量,换句话说,就是这个新点到离它最近的那个集群的数字)进入系统时,我们就可以立即计算出这个新矢量与其他集群之间的距离。因为我们是用离这个点最近的集群的数字表示这个点的,所以我们就能知道这个点与以后加入这个集群的点之间的距离。

在描述这项技术时,我只用了两个数字来表示一个矢量,而在软件中每个点都由16个基本矢量来表示,虽然数量不同,但方法是一样的。因为我们采用了16个数字来表示16个不同的频率段,所以我们系统中的每个点都占据了一个16维的空间。人类很难想象三维(如果把时间这个维度加进去就是四维)以上的空间到底是什么样子,但是机器却没有这样的困难。

运用这项技术,我们已经取得了4项成果。第一,我们大大降低了数据的复杂性。第二,我们将16维空间数据缩小为一维空间数据(每个矢量都是一个数字)。第三,在研究传递尽可能多信息的可能声音的空间比例时,我们提高了寻找不变特征的能力。大多频率段的组合在物理上是无法实现的,至少是很难实现的,因此我们不需要给予不可能输入连接与可能输入连接同样的空间,这项技术使得减少数据成为可能。第四,即使原始数据包含多个维度,我们仍然可以使用一维模式识别器。这一方法可以高效使用可用的计算机资源。

用隐马尔可夫模型解读你的思维

利用矢量量化法简化数据的同时,我们还突出了信息的关键特征,但这还不够,我们还需要其他的方法来找出不变特征的层级结构,因为后者才是决定新信息是否有意义的关键。从20世纪80年代早期开始,我就从事模式识别研究,到现在已经有20年的知识积累,因此我非常了解一维数据在处理信息不变特征时的强大力量,及其高效性和便捷性。虽然在20世纪80年代初期,人们对大脑新皮质的认识并不多,但是从处理模式识别问题的经验出发,我推想人脑在处理数据时也是将多维数据(不管是来自眼睛、耳朵,还是皮肤)减少为一维数据,尤其是在处理新皮质层级结构传出的信息时。

至于语音识别这个难题,语音信号信息结构似乎呈现出一种层级结构,该结构的每一层又由一连串正向元素组成。一种模式的元素可能是另一种低层次模式,也可能是输入信息(在语音识别中,输入信息是我们的量化矢量)的基本组成部分。

你会发现我前面提到的模式与我之前提到的大脑新皮质模式很相似。因此,我们可以说:人类语言就是大脑类线性模式层级结构的产物。如果我们能够捕捉到说话人大脑中的这些模式,当他发表新言论时,我们只需将捕捉到的这些模式与我们储存的模式相比较,就能明白他在讲什么。但不幸的是,我们尚不能直接观察说话者的大脑,我们只知道他说话的内容。当然,他的话语成功地传达了他的目的,因为说话者就是通过语言表达思想。

所以我就在思考:有没有一种数学方法可以使我们依据说话者的话语推断出其大脑中的模式呢?当然了,只有一句话肯定是不够的,但是就算我们有庞大的语料库,我们能否利用这个语料库来推断出说话者新皮质内的模式呢?或者至少找到一种数学意义上的等值结构,我们可以利用这种等值结构识别新的话语?

注:该图向我们展示了在隐马尔可夫模型中,S1层是跨越“隐形”内部状态到达到S4层的。Pi,j代表了由Si层跨越到SJ层的可能性。传播的可能性则由经过测试数据(其中也包括在实际使用过程中产生的数据)调整后的系统决定。通过将新序列(譬如一条新的语句)与原有序列相比对,我们就可以得到该模型识别出这个新序列的可能性。

人们往往不太重视数学的强大力量,要知道,我们在几分之一秒之内检索所需的知识利用的就是数学方法。至于我在20世纪80年代初研究语音识别时遇到的问题,隐马尔可夫模型给出了很好的解决方法。俄国数学家安德烈·安德烈耶维奇·马尔可夫(Andrei Andreyvich Markov)创建了“等级序列状态”的数学理论。该模型建立的基础是同一链条中状态跨越的可能性,如果上述条件成立,我们就能在下一个更高层级上激活一种状态。这句话听起来是不是很耳熟?

马尔可夫模型包含了所有可能发生的状态。马尔可夫进一步假设了一种情况:系统呈现出一种层级性的线性序列状态,但是我们无法直接观察到上面提到的状态,这就是隐马尔可夫模型中“隐”字的由来。在这个层级结构中,位于最底层的线性序列状态发出信号,这种信号可以被人类识别。马尔可夫提出一种数学方法,主要依据可见的输出信号计算状态改变发生的概率。1923年,诺伯特·维纳(Norbert Wiener)完善了这种方法。改善后的方法同时也为确定马尔可夫模型中的连接提供了解决方案,而且系统会直接忽略那些出现概率极小的连接。这很像人类新皮质处理连接的方法——如果某些连接很少或者从未被使用过,这些连接就会被视为不可能连接并被遗弃。在我们的情况中,可见输出就是说话者的语言信号,状态可能性和马尔可夫模型中的连接就构成了产生可见输出的新皮质层级结构。

我预设了一个系统,在这个系统中,我们不仅可以提取人类语言的样本,还可以借助连接和可能性以及利用隐马尔可夫模型技术推断出某个层级状态(本质上说是产生语言的模拟新皮质),然后再利用推断出的层级网络状态结构识别新话语。为了使这个系统与语言本身无关联,我们会使用很多不同个体的话语样本来培养隐马尔可夫模型。我们在层级结构中加入了构成语言信息的基本元素,所以模型也可称为隐马尔可夫层级模型(HHMMs)。

我在库兹韦尔应用智能公司(Kurzweil Applied Intelligence)的同事们却对这项技术表示怀疑,他们认为隐马尔可夫模型只不过是一种智能方法,会让人想起神经网络,但这种方法已经不再适用,使用这种方法收获甚微。需要指出的是,神经网络系统中的网络是固定的,不会因输入而改变:生物量会有所改变,而连接却不会。在马尔可夫模型系统中,如果系统设置正确,为了适应拓扑结构,系统会删去那些从未用过的连接。

我启动了名叫“臭鼬工厂”(名字源自一种管理原则,意为抛开惯例,不走寻常路)的项目,项目组成员包括:我自己,一名业余程序员和一名电气工程师(负责制作频率滤波器)。令人惊奇的是,我们的项目进展得很顺利,我们的产品可以准确地识别长句子。

试验成功后,我们后续的语音识别试验均以隐马尔可夫模型为基础。其他的语音识别公司好像也发现了这个模型的重要性,因此从20世纪80年代中期开始,自动语音识别研究绝大部分都是以此模型为基础的。隐马尔可夫模型同样也被应用到语言整合领域,因为我们的生物层级皮质结构不只要识别输入,也会产生输出,例如语言和身体运动。

隐马尔可夫层级模型也被应用到能理解自然语言句子的系统中,这些句子上升到了概念层级结构。

为了弄清楚隐马尔可夫结构的工作机制,我们先来了解一种网络,它包含了所有可能的状态改变。上述矢量量化方法在这里非常有用,如果没有它,我们还要考虑更多的可能状态改变。图7—14是一张简化的初始拓扑图。

计算机逐一处理样本中的话语信息。为了更好地利用我们的语料库,我们反复修改每个话语状态改变的可能性。我们运用语音识别中的马尔可夫模型对每个音素中能发现声音特定模型的可能性、不同音素之间的影响以及音素的可能组合进行编码。这个系统也包括语言结构更高层次的可能性网络,例如:单词的序列、词组,甚至是语言层级结构。

尽管我们以前的语音识别系统都包含音素结构的特定规律,以及人类语言学家外部编码的序列,但以隐马尔可夫层级模型为基础的新系统中却没有明确地表明英语中有44个音素,音素矢量的序列,或者是哪些音素组合更为常见。相反,我们让系统在长时间处理人类语言信息的过程中自己发现这样的规律。相对于原来的人工编码而言,新系统会发现那些被人类专家忽视的概率性定则。我们发现系统自动从数据中习得的很多规则虽与人类专家定下的规则差别不大,但却更重要。

一旦网络构建完毕,假如知道输入矢量的实际序列,利用网络考虑可选择的路径,继而选择可能的路径,我们便开始尝试识别语音。换句话说,如果我们发现了有可能产生那个话语的状态序列,我们就可以断定那就是产生此话语的皮质序列。因为模拟隐马尔可夫层级模型包含单词规则,所以系统可以提供它听到的语音标音。

系统在使用过程中不断被完善,语音识别的准确率也越来越高。就像我之前介绍的那样,此系统可以跟人类新皮质结构一样,同时完成识别和学习这两项工作。

进化(遗传)算法

还有一个很重要的问题亟待解决:我们怎样设置控制模式识别系统工作的诸多参数?这些参数可能包括:矢量量化阶段的矢量数、层级状态的初始拓扑(在隐马尔可夫模型删去未用过的层级结构状态前的训练阶段)、层级结构中每层的阈值、控制参数数量的参数等。我们可以凭直觉设置这些参数,但结果却不会太理想。

我们称这些参数为“上帝参数”,因为这些参数早在决定隐马尔可夫模型拓扑结构的智能方法出现之前就存在了(生物学上是指早在他学习之前,他的新皮质层级结构中就有了相似的连接)。这也许会造成某种意义上的误读,因为这些基于DNA的初始设计细节是由生物进化过程决定的,尽管在进化过程中我们可能会发现上帝之手(虽然我真的认为进化是一种精神过程,对此第9章会进行讨论)。

在模拟分层学习机识别系统中设定这些“上帝参数”时,我们又从大自然中得到了启发,即在模仿大自然进化的基础上对之进行完善。这就是所谓的进化或者遗传算法,它包含了模拟的有性繁殖和突变。

下面是对这一算法的简单描述。首先,为了给出问题的解决方法,我们需要确定一种代码。如果问题是电路设计参数的优化,我们就列出决定这条电路特点的所有参数(每个参数都有特定的比特值)的目录。这个目录就是遗传算法中的遗传代码。然后,我们随机生成数以千计或更多的遗传代码。每个这类代码(体现了一套给定参数)都被视为“解决问题”的模拟机制。

通过使用评估每组参数的给定方法,我们可以在模拟环境中评估每种模拟机制。这种评估是遗传算法能否取得成功的关键。举个例子,我们会运行参数产生的每个程序,并用合适的标准(是否完成了任务,完成任务所耗费的时间等)对其加以评估。最好的问题解决方案(最好的设计)会被选择出来,其他的则会被淘汰。

接下来就是优胜者的自我繁衍,繁衍的个数与模拟生物数量相同时,这个过程才会停止。这个过程的完成仿照了生物的有性繁殖,换句话说,后代的诞生通常是从母亲和父亲那里分别遗传一部分基因,然后形成自己的基因。通常情况下,雄性机制和雌性机制没有明显的差别,任何一对父母都可以孕育新生命,所以我们这里讨论的是同性婚姻。这可能不像自然界中的有性繁殖那样有趣,但是这种繁殖仍有双亲。在模拟机制繁殖的过程中,我们允许染色体发生突变(随机变化)。

现在,我们仅仅完成了一代模拟进化,接下来要做的就是重复上述步骤生成更多代新机制。每代机制完成后,我们会评估其改善程度(利用评价函数计算所有优胜机制的平均改善度)。如果两代机制之间的改善程度非常小,我们就停止这种繁衍进程,并使用上一代的最优机制。

遗传算法的关键是:人类并不直接将解决方法编程,而是让其在模拟竞争和改善的重复过程中自行找到解决方法。生物进化力量虽强大但是过程却太过缓慢,所以为了提高其智能,我们要大大加快其进化速度。计算机能在几个小时或者几天之内完成数代的进化,但有时我们会故意让其花费数周时间完成模拟成百上千代的进化。但是我们只能重复这种过程一次。一旦这种模拟进化开始,我们就可以用这种高度进化、高度完善的机制快速解决实际问题。对于语音识别系统,我们就可以用这种机制完善网络的初始拓扑结构以及其他重要参数。在这一过程中我们采用两种智能方法:利用遗传算法,我们可以模拟生物进化,得出最优机制;利用隐马尔可夫模型,我们可以模拟人类学习过程中起重要作用的皮质结构。

遗传算法要想成功还需要一种能有效评价每种可能性解决方案的方法。考虑到每一代模拟进化过程中的数千种可能方案,评价方法必须简单易行。在解决那些变量很多又需要计算出精准分析方案的难题时,遗传算法非常有效。例如,我们在设计发动机时就得处理超过一百个变量,而且还需满足众多的限制条件。与传统算法相比,美国通用电气公司利用遗传算法设计出了能够更好地满足限制条件的喷气发动机。

在使用遗传算法时,你必须很清楚地知道你的需求。遗传算法虽能完美地解决货物储存划区问题,但步骤却很繁杂,因为程序员忘了在评价函数中加入减少步骤这一条件。

斯科特·德拉维斯(Scott Drave)的电波项目(Electric Sheep Project),则是遗传算法的艺术杰作。此项目的评价函数使用人类评估程序,这种程序融合了数千人的开源合作。电波会随着时间的变化而变化,你可以进入网站(electricsheep.org)观看。

要解决语言识别中的难题,遗传算法和隐马尔可夫模型的结合极其有效。运用遗传算法模拟进化可以大大地提高隐马尔可夫层级结构网络的性能。生物进化模拟的机制远远优于基于直觉的原始设计。

在此基础上,我们又尝试对整个系统作了一点微小的调整。例如,我们会对输入信息做出微小扰动(幅度很小的随机变化)。再者,我们还尝试让马尔可夫模型算出的结果影响其临近模型的运算,从而使某个模型“混进”其相邻的模型中。虽然当初我们不曾想到这些调整和新皮质结构之间的关系,但后来事实证明两者极为相似。

试验开始时,这类改变会影响系统的性能(以识别准确率为标准)。但当我们开动进化程序(即遗传算法)后,这些被放在适当位置的改变调整项就会对应地适应系统,系统也因为这些引入的调整项得到优化。总体来看,这些改变优化了系统的性能。如果我们剔除这些调整项,系统的运行效能也会随之下降。因为系统已经进化升级,新的系统也因此更能适应新变化。

对输入信息作出微小、随机的调整也可以提高系统的性能(重启遗传算法),因为这种做法解决了自主系统中著名的“过度契合”难题。否则,这样的系统就会过分局限于试验样品中的特殊例子。通过对输入信息进行随机调整,数据中更稳定的不变特征就会凸显出来,系统也能够提炼出更深层次的语言模式。只有在运行遗传算法,并以随机特征为变量时,这种方法才有效。

如此一来,在理解生物皮质回路时,困难就来了。例如,我们注意到,一个皮质连接产生的信息可能会溜到另外一个皮质连接中,这就形成了人类大脑皮质连接的工作方式:电化学的轴突和树突显然受到其临近连接电磁效应的影响。假设我们在试验中把这种影响从人类大脑中剔除——虽然实际操作很难但并非不能实现,假设我们成功地完成了该项实验,并发现去掉神经泄露的皮质电路工作性能有所下降,我们便可据此得出结论:这种现象是大脑进化的结果,也对皮质电路的高性能起着至关重要的作用。必须指出的是,由于连接之间复杂的互相影响,这种结果表明:实际上,概念层级结构模式的有序模型以及层级之下的预测更为复杂。

但这种结论也并不准确。回想一下我们基于隐马尔可夫层级模型建构的模拟皮质,我们也做了类似神经元间交叉谈话的调整。如果我们适当地运行进化程序,系统的性能就会随之恢复(因为进化程序已经适应了) ;如果我们剔除这种交叉谈话,系统的性能又会随之下降。从生物学意义上来说,进化(生物进化)确实会造成这种现象。要适应新因素,生物进化会重新设定详细的系统参数,除非重新进化,否则参数的改变就会降低系统性能。这项试验在模拟环境中可以实行,因为在模拟环境中,进化只需要几天或几周,但是在生物环境中却很难做到,因为这需要数万年的时间。

那么,我们该如何分辨以下几个方面呢?究竟人脑新皮质的特定设计特征是不是生物进化引起的关键创新,或者说对智力水平有很大影响,又或者说仅仅是系统设计所需的,但却不一定形成了?只需加入或删除设计细节的特定变量(如有无连接交叉谈话),我们就能回答这些问题。如果选取微生物作为试验对象,我们也可以观察生物进化是如何进行的,因为微生物代际进化只需要几小时,但同样的实验以人类这种复杂的生物为研究对象却无法实行。这也是生物学的缺点之一。

回到语音识别上来,我们发现,如果分别让(1)负责建构音素内部结构的隐马尔可夫层级模型和(2)负责建构单词和词组的隐马尔可夫层级模型分开运行进化程序(遗传算法),语音识别的效果更加理想。系统的两层都使用了层次隐马尔可夫模型,但是遗传算法可以在不同的层级形成不同的设计变量。该方法中,两层级之间的现象建构是可以共存的,如:连读时,音素的某些音就会模糊化,“How are you all doing”可能会转变为“How’re y’all doing”。

不同的大脑皮质区域也有可能出现类似的现象,因为基于处理过的模式类型,它们已经形成了细微的差别。尽管所有区域都使用相同的新皮质算法,生物进化还是有充足的时间调整每部分的设计,使得模式之间的配合达到最优化。然而,就像之前讨论过的,神经系统学专家和神经病学专家已经注意到了这些区域中的巨大可塑性,而这种可塑性为一般神经算法提供了依据。如果每个区域的基本方法不同,皮质区域之间是不会互相交流的。

通过结合不同的自主算法,我们构建的系统获得了成功。在语音识别的过程中,它们能够首次识别流畅的句子和相对来说比较清晰的词语发音。就算说话者、语调和口音有所差异,系统也能保持相当高的识别率。当下这个领域的代表产品是Nuance 公司针对计算机开发的产品Dragon Naturally Speaking(版本11.5)。假如对语音识别率有高要求的话,我建议可以尝试一下这款产品,因为该产品的识别率通常可以达到99%,而且通过句子和无限词汇识别的训练适应你的声音后,产品的识别率可能会更高。对苹果公司而言,Dragon Dictation 是简单而免费的应用,苹果用户都可以使用该应用。苹果手机上的Siri程序也采用了相同的语音识别技术来识别说话者的话语。

这些系统的表现证明了数学的威力。借助数学方法,就算无法直接进入说话者的大脑,我们也能够了解说话者新皮质内的活动,后者在Siri这样的系统中,对识别说话者语言和确定说话者话语意义的起着至关重要的作用。我们也会好奇:如果我们真的能够观测到说话者新皮质内部的活动,能否发现软件计算出的隐马尔可夫层级模型的连接和权重?我们基本上无法找到精确的匹配,因为与电脑中的模型相比,神经元结构细节差异更大。但我坚信:实际生物和模拟出的模型之间的高精确性肯定存在着某种数学对等体,否则,那些模拟出来的系统为什么会像它们那样运行呢?

列表处理语言LISP

LISP(全名List Processor)是一种计算机语言,由人工智能领域的开拓者约翰·麦卡锡(John McCarthy)于1958年创造出来。如名字所示,LISP跟列表相关。每个LISP表达式就是一个元素列表,其中的每个元素要么是另外一个列表,要么是一个“原子”,后者可能是最简形式的数值或符号。列表的子列表仍可以是该列表本身,所以LISP可以循环递归。LISP语句还有另一种递归形式:第一个列表包含第二个列表,第二个列表包含第三个列表……循环递归直到回到第一个列表,循环就结束了。正因为列表具有这种包含性,所以LISP语言也能够处理层级结构。列表也可以作为系统的限制条件,且只有在满足列表的限制条件时,程序才可以正常运行。如此一来,这个由限制条件组成的层级结构就可以被用来识别模式越来越抽象的特征。

20世纪70年代和80年代初期,LISP语言曾在人工智能领域风靡一时。早期对LISP持乐观态度的人认为LISP语言再现了人脑的工作方式,而且LISP语言可以简化,使得任一种智能程序高效运行。所以当时,LISP程序员和LISP的相关产品在“人工智能”领域备受追捧。但到了80年代后期,当人们发现LISP算法并不能为人工智能领域的发展提供捷径时,对它的投资也就随即减少了。

事实证明,对LISP持乐观态度的人的观点并非无可取之处。我们可以将新皮质的某个模式识别器视为一个LISP语句——每个语句由一个成分列表组成,每个语句成分又可能是另外一个列表。按照这种方法,新皮质处理信息的方法在性质上与列表处理非常相似。而且,新皮质可以同时处理3亿个类似LISP的语句。

但是,LISP语言缺少两种重要特征。一个是缺少学习的能力。LISP程序语句完全由程序员设定。虽然人们曾经尝试了很多方法,以期让LISP程序自我编码,但那些方法并不完全由LISP语言自行产生。与此相反,大脑新皮质则具备这种能力,它可以从自身的经验和系统的反馈中不断选取有意义且可以被执行的信息来填充语句(即列表),然后自行编程。这是新皮质工作的重要原则:每个模式识别器(即每一个类似LISP的语句)可自行编程,且能与它的上、下级列表相连接。另一个就是参数的数量。虽然人们可以人为地生成一系列包含这些参数的列表(生成方式为LISP),但这并不是语言自身所固有的特性。

LISP语言迎合了人工智能领域的原创理念,即找到一种智能方法自行解决问题,而且这种方法可以通过计算机编程实现。这种智能方法的首次尝试是应用于神经网络,但试验不是很成功,因为它不能提供学习修改系统拓扑结构的方法。而通过自身的机制修建,隐马尔可夫层级模型却成功地解决了这个问题。如今隐马尔可夫层级模型及其数学“堂弟”——遗传算法充当了人工智能领域的主力军。对比了LISP语言中的列表和大脑新皮质列表之后,有些人给出了这样的结论:大脑太过复杂,人类难以完全理解大脑。这些批评家指出:大脑有数万亿个连接,而且每个连接都有自身的特点,这就需要数万亿条语句与之相对应。据我估计,大脑新皮质大约拥有3亿个模式处理器——或者说3亿个列表,列表中的每个元素又指向另一个列表(或者从最低概念层次来说,指向新皮质以外的不可简化的模式)。3亿这个数字对LISP语句来说确实太大,目前人类还没有写出过能包含如此多语句的程序。

但是我们也应该知道,这些列表并非在神经系统的最初设计中就被定型了。大脑自行生成了这些列表,并根据自身的经验建立了各个级别之间的连接。这就是大脑新皮质的秘密。自行完成这项任务的程序要比形成新皮质能力的3亿个语句简单得多。那些程序由染色体设定。正如我将在第11章介绍的,染色体组中负责处理大脑信息的信息量(经过无损压缩后的数量)大约有2500万个字节,相当于100万个语句。实际算法甚至还要简单,因为这2500万的基因信息只是神经元的生理需要,并不具备基因组处理信息的能力。2500万个字节我们还是可以处理的。

分层储存系统

在第3章中我已经提到,杰夫·霍金斯和迪利普·乔治分别于2003年和2004年发明了一种结合了层级列表的新皮质模型。我们从霍金斯和布莱克斯利2004年的著作《人工智能的未来》(On Intelligence)中查询到此层级列表的相关信息。在迪利普2008年的博士论文中,我们还可以找到对层级短期记忆法的更加紧跟时代步伐、更加有力的论述。在名为NuPIC(Power Analytics Corporation)的系统中,Numenta公司运用了这个方法,并且为福布斯公司和动力分析有限公司这样的客户研发了模式识别和智能数据挖掘系统。离开Numenta公司后,乔治开了一家名为代理系统(Vicarious Systems)的新公司。该公司得到了Founder Fund公司(由Facebook背后的风险投资家彼得·泰尔和Facebook的第一位总裁肖恩·帕克共同管理)和达斯汀·莫斯科维茨(Dustin Moskovitz, Facebook的创始人之一)领导的Good Ventures公司的资助。

目录
设置
设置
阅读主题
字体风格
雅黑 宋体 楷书 卡通
字体大小
适中 偏大 超大
保存设置
恢复默认
手机
手机阅读
扫码获取链接,使用浏览器打开
书架同步,随时随地,手机阅读
首 页 < 上一章 章节列表 下一章 > 尾 页