第一推动丛书·综合系列(套装共8册)
上QQ阅读APP看书,第一时间看更新

第13章 如何进行类比(如果你是计算机)这一章部分内容来自Mitchell, M.,Analogy-Making as Perception,MIT Press,1993;以及Mitchell, M.,Analogy-making as a complex adaptive system.收录在L.Segel&I.Cohen(编辑),Design Principles for the Immune System and Other Distributed Autonomous Systems.New York:Oxford University Press,2001。

容易的事很难

有一天,我对8岁的儿子杰克说:“杰克,把袜子穿上。”他把袜子顶到头上,“你看,我把袜子穿上了!”他觉得很好玩。而我则意识到他的搞怪行为说明了人类和计算机之间一个很大的区别。

“把袜子穿到头上”的玩笑之所以好笑(至少对8岁的孩子来说是这样),是因为它违反了我们都知道的常识:人类的大部分言辞原则上讲都有些模棱两可,但是当你和别人说话时,他们还是知道你的意思。如果我对我丈夫说:“亲爱的,你知道我的钥匙在哪里吗?”如果他仅仅回答说“知道”,我会很恼火——显然我的意思是“告诉我,我的钥匙在哪里”。当我最好的朋友说她感到在工作中寸步难行时,我回应说“心有同感”,她会知道我的意思不是说我觉得她的工作寸步难行,而是说我自己的工作。这种相互理解就是所谓的“常识”,说得更正式点是“对上下文敏感”。

而现代计算机则对上下文一点也不敏感。我的计算机有一个最新的垃圾邮件过滤器,有时候却区分不出带有V!a&®@这样的“单词”的邮件有可能是垃圾邮件。最近《纽约时报》还报道,记者现在都在学习如何根据搜索引擎的特点而不是从读者的角度来设计标题:“一年前,《萨克拉门托蜂报》“一年前,《萨克拉门托蜂报》”:Lohr, S.,This boring headline is written for Google.New York Times,April 9,2006。Sacramento Bee)改变了网上的版面标题。‘房地产’换成了‘商品房’,‘景致’换成了‘生活格调’,餐饮信息在纸版上是‘美食’,在网络版上则是‘美食/餐饮’。”

当然,并不是说计算机干什么都很蠢。在一些特定的领域它们已经变得相当聪明。计算机控制的汽车现在能自己穿越崎岖的沙漠。计算机程序在对一些疾病的诊断上能胜过医生,在解复杂的方程时能胜过数学家,下棋能打败象棋大师。人工智能(AI)领域这种让人振奋的例子数不胜数。计算机学家霍维茨(Eric Horvitz)说:“在会议上你会听到人们说‘人类级的AI’,“在会议上你会听到人们说‘人类级的AI’”:2006年7月18日霍维茨,引自Markoff, J.,Brainy robots start stepping into daily life.New York Times,July 18,2006。他们说起来毫不脸红。”

呵呵,也许是达到某些人的水平。不过还是有些事情计算机做不了,比如理解人类的语言,描述一张照片的内容,或是像前面讲的使用常识。明斯基(Marvin Minsky)是人工智能的先驱之一,他曾简明扼要地总结AI的悖论:“容易的事很难“容易的事很难”:Minsky, M.,The Society of Mind.New York:Simon&Schuster,1987,p.29。。”计算机能做许多人类认为需要很高智商的事情,同时它们却又做不了三岁小孩都能做的事情。

进行类比

有一个很重要的能力现在的计算机还不具备,那就是进行类比。

说到类比,人们经常会回想起让人头痛的标准化考题,如:“鞋子对于脚就像手套对于___?”不过我说的类比范围更加宽泛:类比是在两个表面上不同的事物之间发现抽象的相似性的能力。这个能力渗透到了智能的几乎所有方面。

我们来看看下面的例子:

小孩能知道在图画书和照片上的小狗与真实的小狗都是同一个概念的实例。

人可以轻松辨认出各种印刷体和手写的字母A。

吉恩对西蒙妮说:“我每星期给爸妈打一次电话。”西蒙妮回应说“我也是这样。”显然她的意思不是她每星期给吉恩的父母打电话,而是说给自己的父母打电话。

一位女士对她的男同事说:“我最近的工作太忙了,都没有时间陪我丈夫了。”他回应说,“我也是一样”——他的意思不是说他忙得没时间陪这位女士的丈夫,而是说他没时间陪自己的女友。

一则广告将毕雷矿泉水(Perrier)说成是“瓶装水中的卡迪拉克”。一篇新闻将教学说成是“职业中的贝鲁特”,伊拉克则被说成是“又一个越南”。

英国与阿根廷之间发生了福克兰岛(马岛)战争,福克兰岛靠近阿根廷,居民则太多数是英裔。希腊支持英国,因为它自己同土耳其对塞浦路斯岛存在争端,塞浦路斯靠近土耳其,居民则主要是希腊裔。

古典音乐爱好者在收音机上听到一段没听过的旋律,马上就能知道是巴赫的作品。早期音乐发烧友听到一段巴洛克管弦乐,很容易就能辨别出是哪个国家的作曲家。顾客能知道超市的背景乐改编自甲壳虫乐队的《嗨,朱迪》。

物理学家汤川秀树(Hideki Yukawa)用电磁力作类比来解释核力,并据此推断出对于核力也存在媒介粒子,其性质类似于光子。后来确实发现了这种粒子,性质也与预测相符。汤川秀树因此获得了诺贝尔奖。

在日常生活中和那种可遇不可求的发现中存在大量类比,这里只是一小部分例子。这些例子表明,人们在各种层面上都能很好地认识到两种事物和情形之间的类似之处,让各种概念从一种情形流畅地“滑到”另一种情形。这些例子揭示了人类思想这种独一无二的能力,就像19世纪哲学家梭罗(Henry David Thoreau)说的:“所有对真理的认识都是通过类比得来的所有对真理的认识都是通过类比得来的”:Thoreau, H.D.(&L.D.Walls,编辑).Material Faith:Thoreau on Science.New York:Mariner Books,1999,p.28。。”

计算机的类比能力可以说是臭名昭著。这也就是为什么我不能给计算机看一张小狗游泳的图片,然后要它在图片库中将“类似的照片”找出来。

我对类比的认识经历

20世纪80年代初,我大学刚刚毕业,还不是很明确今后该做些什么,我到纽约的一所中学当数学老师。这份工作的薪水很低,而纽约物价昂贵,因此我削减了不必要的开支。但我还是买了一本新出的书,作者是印第安纳大学(Indiana University)的一位计算机系教授,“一本新出的书,作者是印第安纳大学的一位计算机系教授”:Hofstadter, D.R.,Gödel, Escher, Bach:an Eternal Golden Braid.New York:Basic Books,1979。题目有点奇怪,《哥德尔、艾舍尔、巴赫——集异璧之大成》。因为我的专业是数学,又参观过许多博物馆,所以知道哥德尔和艾舍尔是谁,而且我也喜欢古典音乐,所以对巴赫也很熟悉。但是将他们的名字放到一起作为书的标题就让我搞不懂了,这勾起了我的好奇心。

没想到侯世达的书改变了我的一生。从题目看不出来,书的内容是思维和意识是如何从大量简单神经元的分散行为中涌现出来的,这类似于细胞、蚁群和免疫系统的涌现行为。这本书让我第一次了解了复杂系统的一些主要思想。

侯世达(图13.1)想用类似的原理建造有智能和“自我意识”的计算机程序。这很快也成了让我充满激情的目标,我决定去跟侯世达研究人工智能。

图13.1 侯世达(印第安纳大学提供照片)

问题是,我只是一个刚刚大学毕业的无名小卒,而侯世达则是获得了普利策奖(Pulitzer Prize)和美国国家图书奖(National Book Award)的著名畅销书作家。我给他写了一封信,说我想跟他读研究生。但是我没有收到回信(后来才知道他没有收到那封信),因此我只好等待时机,并且学了一些AI的知识。

一年后我搬到了波士顿,换了工作,并学习了计算机课程,为我将来的事业做准备。有一天我碰巧看到侯世达将要到麻省理工学院(MIT)演讲的海报。这真让人兴奋,我立刻决定前往,挤进了狂热的书迷中(不仅仅只有我被侯世达的书改变了),希望能和他近距离接触。我终于挤到了前面,握到了侯世达的手,还告诉他我想参与他的AI研究,希望能申请印第安纳大学。他告诉我他实际上就住在波士顿,这一年他在MIT人工智能实验室访问。当时因为后面还有很多书迷在等着,侯世达就让我去旁边和他以前的一个学生详谈,转而接待其他读者。

我很失望,但是并没有放弃。我设法找到了侯世达在MIT人工智能实验室的电话号码,并且拨了几次。每次都是秘书接的电话,她告诉我侯世达不在,让我有事可以留口信。我留了口信,但是没有收到答复。

此后有一天晚上,我躺在床上琢磨该怎么办。我突然想到,我打电话的时候都是在白天,他都不在那里。既然侯世达白天总是不在,那他什么时候会在呢?肯定是在晚上!当时已是晚上11点,不过我还是起来拨了那个熟悉的号码。接电话的正是侯世达。

他很友好,和蔼可亲。我们谈了一会儿,他邀请我第二天去他的办公室谈,看我能在他的研究小组里做些什么。我如约而至,然后我们谈论了侯世达当时正在研究的课题——写一个能进行类比的计算机程序。

有时候要想有所收获,得有点斗牛犬的精神。

简化的类比

侯世达有一个天赋,他能将复杂的问题简化,然而又留住问题的精髓。在研究类比问题时,侯世达创造了一个微型世界,这个世界虽然是微型的,却保留了问题大部分有趣的方面。微观世界中包含在字母符号串之间进行的类比。

举个例子,思考下面的问题:如果abc变成abd, ijk应该变成什么呢?大部分人会将变化描述为“将最右边的字母用其后继字母替换”,因此答案是ijl。但其他答案也有可能,比如说:

◆ijd(“将最右边的字母用d替换”——就好像杰克将袜子“穿上”)

◆ijk(“将c用d替换;在ijk中没有c”)

◆abd(“不管什么字母串,都用abd替换”)

显然有无穷多种可能的答案,虽然可能性要小些,比如ijxx(“将c用d替换,将k用两个x替换”),但几乎所有人都认为ijl是最佳答案。不过这毕竟是个没有实际意义的抽象问题,因此如果你真觉得ijd好些,我也没法让你相信ijl更好。但是人类似乎进化出了在现实世界中进行类比的能力,以便更好地生存和繁衍,而他们的类比能力似乎也能应用于抽象领域。这意味着几乎所有人都会从内心同意有一个特定的抽象层次是“最合适的”,因而得出答案ijl。那些从内心会相信ijd是更好答案的人可能在进化过程中已经被淘汰了,这解释了为什么现在这样认为的人寥寥无几。

再来看第二个问题:如果abc变成abd,那iijjkk应变成什么?abckji⇒?abd仍然可以看作“将最右边的字母用其后继字母替换”,但如果将这条规则直接应用于iijjkk,得到的答案就是iijjkl,没有考虑到iijjkk的字母重复结构。大多数人会认同答案iijjll,背后的规则是“将最右边的字母组合用其后继字母的组合替换”,将abc中字母的概念变成了iijjkk中重复字母组合的概念。

在下面的问题中可以看到另一种概念迁移(conceptual slippage):

abckji⇒?abd

kji⇒?

如果直接应用规则“将最右边的字母用其后继字母替换”,得到的答案就是kjj,但这样就没有考虑到kji的反向结构,kji是从右向左呈升序结构,而不是从左向右。这使得abc中的概念右迁移到了kji中的概念左,从而产生出新的规则,“将最左边的字母用其后继字母替换”,得出答案lji。大部分人都认同这个答案,有些人则倾向于答案kjh,将kji视为方向仍然是从左往右,只是采取的是降序。这里是将“后继字母”迁移为“前继字母”,因此新规则就成了“将最右边的字母用其前继字母替换”。

再看下一个问题:

abckji⇒?abd

mrrjjjmrrjj⇒?

你想利用abc为字母升序这个明显的事实,但是现在呢?abc的内在结构很显眼,似乎是这个字母串的主要特征,但是mrrjjj似乎不容易看出有这样的结构。因此你可能会(像大多数人一样)认同mrrkkk(或是mrrjjk),也可能会多琢磨一下。这个问题的有趣之处在于,mrrjjj的背后正好潜藏着一个特征,认识到了这个特征,就能得出一个让大多数人更满意的答案。如果你忽略mrrjjj的字母,只注意其字母组合的长度,就能发现所期望的连续结构:字母组合的长度按“1—2—3”递增。一旦发现了abc和mrrjjj之间的这个关联,就可以得出规则“将最右边的字母组合在长度上增加一个”,在抽象层面上变成“1—2—4”,在具体层面上则对应为mrrjjjj。

最后再来看看下面的问题:

abckji⇒?abd

xyz⇒?

粗一看这个问题似乎与前面的ijk那个问题一样,可是有一个问题:z没有后继字母。大多数人的答案是xya,但是在侯世达的微型世界中,字母表不是循环的,因此这个答案不成立。这个问题陷入了僵局,进行类比的人需要重新审视他们最初的观点,可能需要原来没有考虑过的概念迁移,从而发现一种不同的方式来对问题进行理解。

人们对这个问题有各种答案,包括xy(“干脆将z去掉”),xyd(“将最右边的字母用d替换”;由于问题不寻常,这个答案虽然不那么严格,但是比前面的ijd要合理),xyy(“如果不能用z的后一个字母,那么就不如用它的前一个字母”),等等。然而有些人却似乎有天才般的洞察力,对这个问题能另辟蹊径。其中关键是注意到abc与xyz互为“镜像”——xyz位于字母表的末端,而abc则位于前端。因此xyz中的z可以看作与abc中的a对应,很自然的x就与c对应。在这种对应背后是一组平行的概念迁移:字母表头kji⇒?字母表尾,最左kji⇒?最右,后继kji⇒?前继。这些迁移合在一起,就将最初的规则变成了适用于xyz的规则:“将最左边的字母用其前一个字母替换”。从而得出很让人吃惊却又很有说服力的答案:wyz。

现在应该很清楚了,要在这个微型世界中进行类比,同在现实世界中一样,关键就是我所说的概念迁移。根据当前的背景找到合适的概念迁移对于找到好的类比极为重要。

模仿者

侯世达给我制订的计划是编写出能在字母串世界中进行类比的计算机程序,程序采用的机制要与人类进行类比的机制基本类似。他还为这个尚未存在的程序起了个名字:“模仿者(Copycat)”。其中的思想是,类比是一种形式很微妙的模仿——例如,模仿abc转变成abd的方式,根据ijk自身的相关概念对其进行变化。因此这个程序是一位聪明而且富有创意的模仿者。

1984年夏天,我在MIT研究这个课题。到秋天,侯世达转到了位于安阿伯市(Ann Arbor)的密歇根大学任教。我也跟着过去了,在那里攻读博士学位。我与侯世达一起花了近6年时间编写他构想的这个程序——当然,魔鬼藏在细节之中。终于,我们写出了能在微型世界中进行类似于人类的类比的程序,我也获得了博士学位。

如何做到

要想成为一个具有智能的模仿者,你首先必须理解你所“模仿的”对象、事件或情景。如果所面临的情景具有很多组成部分,各部分之间又有各种潜在的关系,比如一个视觉场景、一个朋友的故事或是一个科学问题,人(或者一个计算机程序)应该如何处理理解情景的大量可能方式以及与其他情景可能的相似性呢?

下面是两种相反的策略,都是不合理的:

1.有些可能性先天就被绝对排除。例如,在扫描mrrjjj之后,列出一系列可能的概念(比如字母、字母组合、后继、前继、最右等等),然后严格限定于此。显然,这个策略的缺点是放弃了灵活性。一些与问题的关联不那么明显的概念可能后来发现是关键性的。

2.所有可能性都是平等的,处理的难度也是一样的,因此可以穷尽搜索所有可能的概念和关系。这种策略的问题是在现实世界中有着太多的可能性,甚至事先不知道对于给定情形有哪些可能的概念。如果你的发动机发出不太正常的突突声,你的汽车无法发动,你可能会认为有两种原因,可能性一样,(a)皮带从轴承上脱落了,或者(b)皮带老化,断了。如果没什么特别的原因你就认为还有一种同等的可能性是你的邻居偷偷把你的皮带剪了,那你是有点妄想迫害症。如果你还认为有种同等的可能性是组成皮带的原子通过量子隧道进入了另一个平行宇宙,那你是科学狂人。如果你不断想出各种各样同等的可能性,那……正常人的头脑是没法做到的。不过,也许你刚好就有一个恶毒的邻居,量子隧道的可能性也不能完全排除,说不定你还会因此获得诺贝尔奖,这些可能性都是存在的。

所有可能性都有可能存在,但问题的关键是它们的可能性不是对等的。不符合直觉的可能性(例如,你恶毒的邻居、量子隧道等等)确实有可能,但必须有明确的原因才会被加以考虑(例如,你听说过你邻居的恶行;你刚好在你的车上安装了一台量子隧道机器;其他可能性被发现是错误的)。

大自然在许多例子中都找到了探索性策略来解决这个问题。例如,在第12章我们看到蚁群搜索食物的方式:通往最佳食物源的最短路径会具有最强烈的信息素气味,沿路径行进的蚂蚁越来越多。然而,无论何时,还是会有一些蚂蚁沿着气味较弱、可能性不大的路径前进,也有一些蚂蚁仍然会随意搜寻,这样就有可能发现新的食物源。

这是一个在搜索和开发之间进行平衡的例子,在第12章曾提到过这一点。如果收益很可观,就必须根据估计的收益以一定的速度和强度进行开发,并不断根据新的情况加以调整。但无论何时都不停止对新的可能性的探索。问题是如何根据最新的信息为各种可能动态分配有限的资源——蚂蚁、淋巴细胞、酶或者思维。蚁群的解决方案是让大部分蚂蚁采取两种策略的组合:不断随机搜索与简单地跟随信息素轨迹并沿途留下更多信息素的反馈机制相结合。

免疫系统在探索和开发之间似乎也保持着几乎最优的平衡。在第12章我们看到免疫系统利用随机性获得了对遇到的任何病原体做出反应的潜力。一旦抗原激活了某个B细胞,触发了这种细胞的增殖,潜力就会被释放出来,繁殖出的抗体会增加针对这种抗原的特异性。因此免疫系统对所发现的抗原信息进行开发的方式就是分配大量资源来对抗目前发现的抗原。但是它仍然会保有大量不同的B细胞,以继续探索其他可能性。同蚁群一样,免疫系统也是将随机性同基于反馈的高度导向行为结合在一起。

侯世达提出了一种探索不确定环境的方案,“并行级差扫描”,在第12章我曾提到过。根据这个方案,许多可能性被并行地进行探索,用获得的最新信息不断对各种可能性的收益进行估计,并根据反馈分配资源。同蚁群和免疫系统一样,所有可能性都有可能被探索,但是在同一时刻只有部分被探索,并且分配的资源也不一样多。当人(或蚁群,或免疫系统)对所面临的情形只有很少的信息时,对各种可能性的探索开始时非常随机、高度并行(同时考虑许多可能性)和分散:没有理由要特别考虑某种可能性。随着获得的信息越来越多,探索逐渐变得集中(增加的资源集中于少数可能性)和确定:确实有收益的可能性会被开发。同蚁群和免疫系统一样,在模仿者(copycat)中,这种探索策略也是通过简单个体的大量互动涌现出来。

模仿者程序

模仿者的任务是用其拥有的概念在某个问题的三个未经处理的字符串之上建构认知结构:对对象的描述、相同字符串中对象的关联、字符串中对象的分组以及不同字符串中对象的对应关系。程序建立的结构代表其对问题的理解,让它可以得出一个答案。对于每个问题,程序的初始状态都是一样的,拥有的概念集也完全一样,因此概念必须具有适应性,根据其相互之间的关联以及不同问题的情形进行适应。面对问题时,建立起对情形的表示之后,联想就会产生出来,并且被视为各种可能性,并行级差扫描以并行的方式对理解情形的各种可能途径进行检验,并根据当前对各种可能性的收益评估决定对其检验的速度和深度。

模仿者对字符串类比问题的解答涉及以下这些模块的互动:

◆移位网(Slipnet):概念组成的网络,包含一个中心节点,周围围绕着可能的联想和移位。图13.2中给出了程序最新版中一些概念和关系的图。移位网中每个节点都有一个动态的活性值,表示目前认识到的其与正在处理的类比问题的关联性,这个值随着程序的运行不断调整。活性值会向相邻概念扩散,并且如果得不到加强就会衰减。每条连线有一个动态的阻抗值,表示其目前对移位的阻力。这个值也随着程序运行不断变化。连线的阻抗值与对应节点的活性值呈反比。例如,当反向活性很高时,由反向连线相连的节点(如后继和前继)的移位阻抗值就很低,从而增加移位的可能性。

图13.2 模仿者的移位网局部。节点用其表示的概念标注(例如,A—Z、最右边、后继)。一些节点之间的连线(例如最右边—最左边)连接到一个节点,表示连线所代表的关系(例如反向)。每个节点都有动态的活性值(没有标出来),活性会向相邻节点扩散。如果得不到增强,活性值就会衰减。每条连线都有移位阻抗,对应节点活性越高,连线阻抗就越低

◆工作区:作业的区域,其中有类比问题的字母和在字母上建立的认知结构。

◆码片(Codelets):在工作区不断探索可能认知结构的自主个体,自主个体会试图实现它们发现的结构。(码片一词意指“小片的编码”。)成组的码片一起合作构建出定义对象关系的认知结构(例如,“abc中a的后面是b”,或“iijjkk中的两个i形成组合”,或“abc中的b对应于iijjkk中的jj”,或“abc中的c对应于kji中的k”)。每组码片考虑世界结构的一种特定可能性,根据试图建立的结构的可能收益为各组分配资源(码片时间),可能的收益随着探索的进行不断进行评估。这样就实现了对各种可能性的并行级差扫描,各组码片通过竞争和合作,逐步建立起结构层次,表现程序对情形的“理解”。

◆温度:对系统的认知组织程度的度量。类似于物理世界,温度高对应无组织,温度低对应高的组织度。在模仿者中,温度度量组织程度,并作为反馈信号控制码片决策时的随机程度。温度高时,表明认知组织度低,能据以进行决策的信息也少,码片决策时也就越随机。随着认知结构的建立,对于相关的概念以及如何建构对世界中对象和关系的认知的信息也越来越多,温度也就越来越低,表明有更多的信息引导决策,码片进行决策时也就越有确定性。

运行模仿者

解释模仿者各部分之间如何交互的最好方式是用图形显示程序的运行情况。这些图形是程序运行时的屏幕显示。这一节我们来看一下程序面对abckji⇒?abd, mrrjjjmrrjj⇒?这个问题时的运行过程。

图13.3:给出的问题。图中包括:工作区(这里是类比问题中尚未结构化的字母);左边竖条为“温度计”,显示当前的温度(初始值设为100,100也是最大值,反映出当时没有任何认知结构);右下角显示当前运行的码片数量(初始值为0)。

图13.3

图13.4:有30个码片在运行,已经探索了许多可能的结构。原则上,码片可以视为同蚂蚁一样的自主体,每个都根据一定的概率探索一条路径,但是受其他码片的探索路径引导。在这里“路径”代表的是可能的认知结构。码片随机搜索合理的描述关系、字符串划分以及字符串之间的对应关系,然后提出可能的结构。如果认可某种结构的码片很多,这种结构就会得到增强。一旦强度达到某个阈值,就认为结构被建立起来了,从而影响后面结构的建立。

图13.4

在图13.4中,点线代表刚刚开始考虑的结构;短画线代表考虑了一段时间的结构;实线代表已经建立起来的结构。码片根据对结构可能收益的判断决定提出这种结构的速度,例如,提出a—m对应关系的码片认为其有很高的可能收益,因为两者都在各自字符串的最左边:最左边kji⇒?最左边这样的一致性关系总是很强。提出a—j对应关系的码片则认为其要弱得多,因为最左边kji⇒?最右边这样的对应要弱很多,而且反向关系目前也没有活性。因此对a—m对应关系的探索速度就很可能比不太合理的a—j对应要快得多。

因为mrrjjj中最右边的两个j建立起了“相同”关系,温度值从100降到了94。这个相同关系激活了移位网中的节点相同(没有画出来)。这会驱使一些码片去寻找其他相同的地方。

图13.5:有96个码片在运行。abc的后继关系已经建立起来。13.4中提出的c—b的前继关系已经替换为b—c的后继关系。abc中的两个后继关系相互支持:每个都因为对方的存在而变得更强,因而使得与之竞争的前继关系不太可能胜出。

图13.5

两个都是基于后继关系的组合相互竞争:bc和abc(整个字符串形成组合)。两者在图13.5中分别用点线方框和短画线方框表示。虽然bc组合出现的时间早些(它是短画线,而后者是点线),abc组合涵盖的字母却更多。因此它比bc组合要强些——码片会倾向于以较快的速度对其进行验证,也更有可能将其的结构建立起来。图下方在考虑基于相同关系的组合jjj。

a—j的交叉对应关系(图13.4中的点线)已经被放弃了,因为进一步探索它的码片发现其太弱,无法建立起来。c—j对应则被建立起来了(垂直的锯齿线);线的下端给出了对应关系的依据(两者都是各自字符串最右边的字母)。

因为后继和相同关系都建立起来了,再加上最右边⇒最右边(rmost⇒rmost)对应,这些节点在移位网中活性很高,因而会驱使码片去探索其他地方是否还有这种关系。例如,考虑最左边字母的对应关系。

随着结构的建立,温度也相应降到了76。温度越低,码片的决策就越不随机,因此像bc组合这样不太可能的结构就更不可能被建立起来了。

图13.6:abc组合和jjj组合建立起来了,用字母周围的实线方框表示。为了让图像清晰,组合中字母之间的连接没有显示。这些组合的存在驱使码片寻找其他后继和相同关系的组合,例如rr相同组合就被高度关注。jjj这样的组合形成了字符串中新的对象,可以有它们自己的描述,有自己的连接,也可与其他对象产生对应。大写字母J表示由jjj组合形成的对象;类似的,abc组合也形成一个新的对象,为了清晰起见,图中没有画出表示它的单个字母。同其他特性一样,组合的长度并不能被程序自动注意到,要由码片来发现。每当一个组合节点(例如,后继组合、相同组合)在移位网中被激活,它就会将部分活性扩散到长度节点。这样长度节点就有了一点活性,从而产生出关注长度的码片,但这些码片并不会马上就会相互比较,甚至还没有开始运行和关注组合的长度。

图13.6

一个描述abc⇒abd变换的规则已经建立起来了:“将最右边的字母单元用其后继字母替换”。模仿者当前的版本认为变换示例替换的刚好是一个字母,因此建立规则的码片会对模板“将___用___替换”进行填充,以一定的概率在程序给出的字母变换描述中进行选择,描述越抽象(例如最右边的字母就比C抽象),选中的概率就越大。

温度降到了53,这是因为建立起来的结构表明认知组织度越来越高。

图13.7:有225个码片在运行。字母与字母的对应c—j已经被字母与组合的对应c—J代替。在对应关系的下方,最右边⇒最右边(rmost⇒rmost)上面增加了字母⇒组合(let⇒group)对应关系。c—J对应要强于c—j对应,因为前者涵盖的对象更多,同时组合概念的活性很高,因此与问题的相关度似乎更高。然而,虽然c—j对应相对较弱,还是有一组新的码片又在考虑它。

图13.7

与此同时,rr组合也建立起来了。此外,它的长度(用R后面跟着的2表示)也被一个码片注意到了(概率事件)。这个事件激活了长度节点,驱动码片注意其他组合的长度。

屏幕上方产生了新的规则,“将最右边的字母单元用‘D’替换”,虽然这条规则比前面被换掉的规则弱些,但由于各种结构(包括规则)的竞争是根据概率随机决定的,因此这条规则还是有机会胜出。然而它的胜出导致温度又回升到了58。

如果程序现在停止(这不太可能发生,因为决定程序是否停止的概率中有一个很重要的因素就是温度,而目前温度还很高),对于字符串mrrjjj,得出的规则就是“将最右边的字母组合用‘D’替换”因为要遵守根据c—J对应得出的字母⇒组合移位,从而得到答案mrrddd,模仿者程序确实会得出这个答案,不过次数很少。

在整个运行期间不断会有码片想要制造出答案,不过不太可能成功,除非温度很低。

图13.8:有480个码片在运行,“将最右边的字母单元用其后继字母替换”这条规则又恢复了。但是c—J对应没了,换成了c—j对应(也是一个概率事件)。如果程序在现在停止,得到的答案将会是mrrjjk,因为abc中的c对应的是一个字母,而不是组合。这样建立答案的码片就会忽略b与字母组合的对应。不过c与组合J的对应再次受到强烈关注。它将与c—j对应竞争,不过它将比以前更强大,因为与之平行的b与组合R的对应已经建立起来了。

图13.8

在移位网中,长度的活性衰减了,因为对R组合的长度描述目前还没有发现有什么用处(也就是说,没有发现其与其他结构的关联)。在工作区中,描述R的长度的2已经消失了。

温度仍然很高,因为目前程序还很难为mrrjjj建立一个一致的结构,为abc建立结构则容易些。由于问题一直没有解决,再加上在mrrjjj中建立的两个相同组合导致的驱动力,使得系统开始考虑单个字母组成的相同组合这种不太可能出现的结构。这表现为围绕着字母m的短画线方框。

图13.9:这些驱动力结合到一起,使得相同组合M被建立起来,与R组合和J组合并列。其长度1附在了其描述后面,激活了长度节点,使得程序再次考虑组合长度与问题有关联的可能性。这次激活强烈地吸引了码片关注组合的长度。一些码片已经在探索它们之间的关联,而且在1和2之间建立了后继关系,这可能是受abc中的后继关系的驱使。

图13.9

三个一致的字母⇒组合(let⇒group)对应已经建立起来了,由于这个新结构的前景被看好,温度也降到了36,反过来又使得这个新观点被锁定。如果程序这个时候停止,它将得到答案mrrkkk,这也是最常见的答案(图13.13)。

图13.13 让模仿者运行1000次,每次的随机数种子都不相同,得出的最后答案的样条图

图13.10:由于长度节点一直具有活性,其余两个组合(jjj和abc)也附上了长度描述,2和3之间的后继关联也被注意到了(很大程度是受abc和mrrjjj的结构驱动)。不太可能的候选结构(bc组合和c—j对应)仍然被留意,不过不像以前那样关注了,现在对问题的一致认识开始涌现出来,温度也相当低了。

图13.10

图13.11:2和3之间的关联建立起来了,再加上abc后继组合的驱使,使得码片能够基于数字(而不是字母)后继关系提出并建立由整个字符串构成的组合。这个组合用围绕三个相同组合的实线框表示。同样,由abc和mrrjjj整个字符串构成的这两个组合之间的对应(两个字符串右边的垂直点线)也受到关注。

图13.11

可笑的是,这些复杂的思想似乎正要成形,少数逆潮流而动的码片叛徒却撞了好运:它们成功地扳倒了c—J对应,代之以c—j对应。显然这降低了整体水平;强大的mrrjjj组合的建立本来能让温度降低许多,然而这种降低却被两个字符串之间对应关系的不平行抵消了。如果这时强行停止程序运行,得出的答案将是mrrjjk,因为这时c似乎更倾向于与字母j而不是组合J对应。不过另外两个对应关系会继续驱使程序(作用在码片上)回到c—J对应。

图13.12:事实上,没运行多久就发生了这种情况:c—j对应被打破,c—J对应重新建立起来。另外,abc与mrrjjj整个字符串之间的对应也建立起来了;上面标着整体⇒整体(whole⇒whole),后继组合⇒后继组合(sgroup⇒sgroup),右⇒右(right⇒right,组合中连接的方向),后继⇒后继(successor⇒successor,组合中连接的类型),字母⇒长度(letcat⇒length),以及3⇒3(组合的长度)。

图13.12

现在程序建立的认知结构已经非常一致了,使得温度降得很低(11),由于温度低,一个码片已经成功根据工作区中给出的移位(字母⇒组合,字母⇒长度,其他对应都是不变对应)得出了规则。得出的规则就是“将最右边的组合的长度用其后继进行替换”,从而得出答案mrrjjjj。

从上面的叙述可以清楚地看到,由于模仿者每次运行都充满了随机决定,因此运行得出的结果也可能会不一样。图13.13显示了模仿者1000次运行中给出的不同答案,每次运行都有不同的随机数种子。各种答案的立方条高度表示答案的出现频率,上面标了具体的次数。立方条下面则给出了各种答案最后的平均温度。

答案的频率大致上对应于答案相对于程序的显见程度。例如,对于程序来说,出现了705次的mrrkkk就比只出现了42次的mrrjjjj要显见得多。但是得出mrrjjjj后的平均温度还是比得出mrrkkk后的平均温度要低得多(分别是21和43),这表明虽然后者更显见,程序还是认为,根据答案结构的一致性,前者要好于后者。

总结

通过程序运行中表现出来的机制,模仿者避开了认知的第22条军规:你无法探索所有可能,但如果你不探索它们,你就无法知道哪种可能值得探索。你必须毫无偏见,但需要探索的领域又太大;你需要利用概率来让探索公平。在模仿者受生物启发的策略中,最初是信息很少,使得温度很高,也很随机,许多探索并行进行。随着获得的信息越来越多,适当的概念被发现,温度降低,探索也变得越来越具有确定性,一系列特定概念开始占据主导。整体上使得系统从极为随机、并行和自底向上的处理模式逐渐转变成确定、连贯而且集中的模式,逐步发现对情形的一致性认知并渐渐让其“凝结”。就像我在第12章阐释的,处理模式的逐步转变似乎是一些复杂适应系统的共性。

模仿者与生物系统的相似性迫使我们从更广泛的角度来思考和理解我们所建立的系统。例如,人们可能会注意到,细胞因子在免疫系统中传递信号的作用就类似于码片在类比问题中唤起对特定位置的注意,这实际上就是在广义的信息处理层面上认识生物学单位的功能。类似的,如果注意到了免疫系统中的温度现象——发热、炎症——来自于许多自主体的联合行动,人们也许就会受到启发,从而更好地对模仿者这样的系统中的温度机制进行建模。

最后还有棘手的意义问题。在第12章我曾说过,就传统计算机来说,信息对于计算机本身是没有意义的,只对人类创造者和“最终使用者”才有意义。然而,我还是认为模仿者代表了一种相当不传统的计算模型,对于它所具有的概念和它所做的类比,它能理解一种非常初级的意义。例如,后继组合的概念在网络中与其他类似的概念相联,模仿者能够认识这些概念,并在各种情形中合理地利用这些概念。在我看来,这就是意义的开端。但是就像我在第12章说的,意义与生存和自然选择密不可分,而模仿者还没有涉及这一些,只是在降低温度这一点上与“生存”本能有一点点关联。从这方面来说,模仿者(以及后来由侯世达的研究团队研发的一系列让人印象更加深刻的程序“由侯世达的研究团队研发的一系列让人印象更加深刻的程序”:对这些程序(包括模仿者)的一些介绍,参见Hofstadter D.,Fluid Concepts and Creative Analogies.New York:Basic Books,1995。)与生物系统还有着很大的区别。

AI的终极目标是让人摆脱意义的怪圈,并且让计算机本身能理解意义。这是AI中最难的问题。数学家罗塔(Gian-Carlo Rota)称这个问题为“意义屏障”,“意义屏障”:Rota, G.-C.,In memoriam of Stan Ulam-The barrier of meaning.PhysicaD,2(1-3),1986,pp.1—3。不知道AI是否或何时能“破解”它。我个人认为这不是短时间能做到的,但如果能够破解,我怀疑类比将是关键。