1979 年 9 月 19 日下午,赫伯特·西蒙在卡内基梅隆大学计算机科学系为研究生开设的系列讲座上,介绍自己当时正在进行的研究。西蒙同时任教于计算机科学系与心理学系,一年前刚获得诺贝尔经济学奖,此时正与约翰·麦克德莫特、吉尔·拉金及夫人多萝西娅·西蒙合作研究物理学中专家与新手的解题差异。本文依据现场录音编译整理。
我的表说现在是三点二十九分,有人看的时间不一样吗?把大家的时间加起来取个平均就行。这块表要是不摇一摇,有时候干脆就不走了,这也算是给排课理论与实践添的一条注脚。今天我遇到的第一桩灾难完全是自找的:我给自己一天排了四场不同性质的课,我想这是二战以来我在一天之内做过的最多的教学。第二桩灾难是本地的排课系统似乎有某种不确定性,把这场讲座的开始时间在三点和三点半之间来回摆。不管怎样,现在人都到了,时间是三点半,我们都认为该开始了,那就开始吧。
我想这类讲座的一个主要功能,是让教师谈谈自己手头的研究,谈谈自己在忙些什么,好让你们对这所学校里研究的范围有个大致了解。你们多数人知道,我大半时间待在心理学系那边。说得更准确些,我几乎整个人生都在心理学系,因为我的秘书在那儿。在这边我也有一间办公室,可以躲进去。下周的二十七号,还有十月五号,另外两场讲座由约翰·安德森主持,他也来自心理学系,也是两系合聘的教师。这两场讲座出现在日程表上,本身就说明了我们这里对人工智能与现代认知心理学之间关系的看法。
我们认为,这两个学科离了对方都活不好。持这种看法的人似乎越来越多,多到已经成立了一个认知科学学会(Cognitive Science Society)。这个学会把人工智能的人、认知心理学家、心理语言学家、几位走散的神经生理学家,再加上一些哲学家之类,全都收进了自己的边界之内。这个学会能不能把一个人工智能学会该做的事都做了,眼下还不清楚,我听说还没有定论。
无论如何,人工智能与认知模拟之间的密切关系已经有二十五年的历史了。所谓人工智能,我的定义是让计算机做聪明的事;所谓认知心理学,我的定义是弄清楚人是怎样做聪明的事的,有时也包括人是怎样做蠢事的。事实证明,至少在一部分时候,虽然不是所有时候,当你想让计算机做某件聪明的事时,先弄清人是怎么做这件事的,看看有没有什么想法可以借用,是个好主意。反过来,当你想弄清人是怎么做某件聪明的事时,看看周围有没有计算机在做这类事,再看看计算机是用一种特别计算机化的方式在做,还是程序里的某些想法与人做这件事的方式有关联,也常常很有用。
举个例子。我们发展出了一套启发式搜索(heuristic search)理论,讨论的是智能系统如何在巨大的空间里找到稀少的目标,又不至于无休止地找下去。这套理论对人工智能系统显然高度相关,最成功的人工智能系统内部几乎都嵌着某种形式的启发式搜索。但它对心理学同样高度相关,因为人常常发现自己身处极其庞大的问题空间之中,能走到田野另一头的唯一办法,就是某种高度选择性的启发式搜索。这就是两个领域有充分理由待在一起的一个例子。
在决定某个时刻该研究什么的时候,当然这也随时在变,一个好问题是:眼下的大问题、悬而未决的问题是什么?可有些人对人工智能会倾向于反过来问:已经解决的问题是什么?我们究竟知道些什么,如果真的知道什么的话?我认为我们知道得很多。我认为人工智能领域的人太爱说自己的坏话了。这毛病比五年前好了些,但我们对自己做的事还是过于谦虚,至少领域里有些人过于谦虚。
我认为,对于那些不需要处理海量任务专属信息的领域,我们对问题求解已经知道得相当多了。谜题类的问题就是这样的领域。我认为我们对解谜题类问题懂得非常多,倒不是说我们总能解得好,而是说我们已经有了一个相当完整的理论结构,其中一部分你们可以在尼尔森(Nilsson)的教科书里找到。那本书现在有点旧了,但新的正在陆续出来。
我说“一套理论”,是在什么意义上说的?这里面没有多少定理。这有时会让数学家不高兴,因为数学家总把这两个词搞混,理论(theory)和定理(theorem)拼法差不多,可理论并不一定是定理。世界上关于经验现象的理论多得很,形式化的程度各不相同。我想不得不承认,信息稀疏领域的问题求解理论,在这个意义上并不是高度形式化的。关于搜索算法我们有几条定理,比如叫 A 和 B 的最佳优先算法,我们对它们知道一些东西,甚至能证明几条性质。但我认为我们的进展和知识的核心并不在这些定理里,不管它们多有用。核心在于:我们对这些领域中问题求解与智能的本质已经了解得足够多,能实际造出有时确实能解决问题的系统。大体上说,这就是人工智能领域检验知识的方式。
这种检验有时会骗人,因为我们想要的是能迁移到新问题上的知识。除非特别留心,否则总有一种危险:我们造了这个系统,造了那个系统,又造了另一个系统,每个都能跑,可到造第四个时,又得从头学一遍系统究竟靠什么才跑得起来。不过我认为我们已经不至于糟到那个地步了。今天任何人造一个新的解题系统,都不可能不知道也不设法利用这样一些事实:有一种东西叫最佳优先搜索(best-first search),有一种东西叫手段目的分析(means-ends analysis),日子实在难过的时候,你总可以退回到生成与检验(generate and test),看看它能不能帮上忙。我们至少有了一套问题求解方法的分类体系。我相信你们任何一个人都能出去造一个内嵌某种手段目的分析的系统,或许这话我该等一周再说,不过就算你现在还不会,到这学期末也会了。
关于记忆组织和语言,我们也知道一些东西,知道有哪些可选的路子。记忆你想怎么组织都行,但只要你在写人工智能程序,最后总会变成某种表结构记忆(list structure memory),别名语义网络,别名有向图,同一个基本想法大概有十六个不同的名字,而这个想法已经存在很久了。我们学到的是:如果你要给一个系统组织记忆,这个系统将不得不在各种它自己预料不到的情形下行动,将不得不存入各种它事先无法预知种类的信息,那你多半会以这样一种记忆告终。
关于语言,我想我们相应地学到的是:我们想要的是某种表处理语言和产生式系统(production system)语言的结合。我不是说这两者互相排斥,它们并不排斥。但这是人工智能研究中涌现出的两个核心思想。这话得说得小心些:产生式系统当然不是从人工智能研究里出来的,表语言才是。但凡打算造智能系统的人,都知道这两个核心思想。
当我们转向需要处理多得多的信息的领域,也就是语义丰富的领域,标准的例子是医学诊断问题。象棋属于这一类还是前一类,可以谈上很久,但就我们今天为它编程序的方式来看,象棋大概最好也算作语义丰富的领域。到了这里,我们碰上另一组问题,学到了不少,但要学的还多得多。
第一个问题还是:在系统里表示知识有哪些方式?我们是给这个系统建一个模型,一个可以实际运行、看它会怎么走的模型?还是把信息放进某种关系网络?还是像某些诊断系统那样,试着对系统里各条知识之间的关系做因果分析,建起某种因果网络?还是别的什么?我们至少对其中不算太窄的一批表示方式有过经验,知道它们各自在哪里好用、在哪里不好用、能派什么用场。
关于控制结构,我们知道一些,但远不如需要的那么多。我们知道,至少就模拟人在丰富领域里能做的那类事情而言,传统编程格式那种层层堆叠的封闭子程序的层级控制结构,往往有点不够灵活。这不是说有什么事情这种结构做不了,我们不是在争论图灵机那种论证。而是说,事实证明,这种结构不太有利于写出那种能相当灵活、开放地回应不断变化的环境的程序。
所以过去五年里,人们至少认真尝试过使用与产生式系统相关联的控制结构。在早期的产生式系统里,控制结构非常简单:你把所有指令排成一个产生式列表,然后哪一条先举手,也就是哪一条的条件先被满足,就先触发哪一条,接着是下一条。这么做结果并不完全令人满意。于是现在有了别的想法,例如嵌在 OPS5 系统里的那些,你们在这里会接触到它。关于产生式系统中该由什么决定产生式触发的优先级,我们有了别的想法。但这些系统仍然比我们过去写的那种更自由、更松散,就我们在编程时有意识地、刻意地施加多少控制而言是这样。你们大概看出来了,我是按我们的无知程度往下排的,知道得最多的先讲,最无知的最后讲。
在语义丰富的领域里,出于种种理由,我们经常想用自然语言跟人交流。有时想用口语交流,Hearsay 和 HARPY 做的就是这件事。即便只用书面交流,我们也想用自然语言。周围有各种各样的系统能处理自然语言的一小块一小块。我不认为此刻有谁声称自己的系统能直接处理像我现在嘴里说出来的这种随意英语。这似乎仍有些超出现有技术的水平,因此自然语言理解仍是一个非常活跃、非常多产的研究领域。我每年见到的语法分析器都比前一年好一点。马克,这话现在还对吧?它们还不是我们想要的全部,但正在往前走。
再往下是更开放的问题。我想,在人工智能领域,我们都深深感到把人类知识搬进计算机这副担子的沉重。我不确定我们这种反应有多少道理。想想看,把人类知识搬进人类自己,这个过程也实在算不上高效。我就不问在座各位上了多少年学了,但你们知道,那是一个很长很长的过程。我怀疑世上有没有哪台计算机处于输入模式的小时数,比得上你们这辈子坐在课堂里听讲和读书的小时数。所以,指望有某种不费力的办法把信息灌进计算机,把它变成比方说优秀的医学诊断专家,我们也许是不切实际的。而如果真有一种不那么费力的办法,我们认为这办法就是用自然语言,那我们恐怕更是在自欺。
只要能像我现在跟你们说话这样跟计算机说话,计算机就会一下子变得有智慧,这个想法可能是个陷阱和幻觉。我相信你们会变得有智慧,计算机我可不敢说。尽管如此,人工智能界仍有一种强烈的感觉:我们应该能跟自己的计算机说话。在我看来,这跟任何别的理由一样,足以支持自然语言理解研究继续以良好的速度推进。
我本来还想在这里补一点,不是关于自然语言理解的研究,而是关于计算机如何在某些人类学习的意义上学习。因为你读一本教科书的时候,我希望你不是把句子收进来、分析一下、存起来就完了。那样做糟糕透顶。我认识一些这么干的学生,他们大多从卡内基梅隆退学了。读书时另有某种过程在发生,另有某种更有效的存储方式。当你从读到的内容里存入信息时,你同时也在存入通向这些信息的各种访问路径。事实上,你阅读的效果,取决于你在阅读时重组信息、存入访问路径的策略,远甚于取决于你一小时能翻多少页、扫多少眼。
所以我们不仅希望能用自然语言跟计算机交流,还希望当自然语言像一本教科书那样呈现给计算机时,它能做一些聪明人做的那种智能加工,把信息存起来,不是存成能死记硬背地吐出来的东西,而是存成能用来解决问题、应对各种偶然情形的东西。学习在我看来是一个非常重要的题目。稍后我会多谈一些,因为这正是我和心理学系的其他人眼下在做的研究领域之一,而且我认为它对人工智能同样相关。
最后,过去的计算机在多个方面都处于感官剥夺的状态。想想就知道,它们跟外部世界的接口实在少得可怜。它们没有眼睛,没有耳朵。它们确实有一台电传打字机,可打字机真的替代不了眼睛和耳朵。它们也不能作用于世界,没有运动器官。它们通常只能告诉你该做什么,自己做不了。当你试图造一个真正与世界互动的计算系统时,一整批新问题就冒出来了,而这在我理解就是机器人学(robotry)的全部内容。在我的词典里,机器人是这样一种系统:它有某种感觉器官,有某种运动器官,二者之间又有足够的脑子,能完成需要手眼协调的智能动作,或者说需要运动器官与感觉器官之间协调的动作。
我把它单列出来,是因为我认为机器人学涉及某些研究分支,在人工智能研究的其他方面至少不以显著的形式出现。头一条是,你必须直面这样一个问题:造出能满足特定任务要求的感觉器官和运动器官。如果说过去二十五年我们学到了什么,那就是模拟人的感觉与运动部分,比模拟两耳之间的那部分难得多。说得最赤裸一点:模拟一位大学教授,比模拟一个推土机司机容易得多。在模拟思考、解题这些好东西上,也就是我猜大学教授干的那些事上,我们取得的进展远远大于模拟与粗糙环境的互动,感知那个环境,再控制某种装置。不只是开推土机,光是走过一片崎岖的田野,就足以当例子了。为什么会这样,我可以给你们各种各样的解释,但在眼下的语境里那不重要。重要的是事实如此,因此机器人学为人工智能研究提供了一些极具挑战性的问题。
这些问题目前正在工业场景里以非常有限的方式得到处理。工业机器人眼下热得很,各种人给我们报数,某某国家某某月有多少台,数字如今已经上千了。可工业机器人仍是一种非常有限的装置,感知能力有限,效应器有限,而且在连接传感器与效应器时,人工智能的已知技术通常用得很少。我认为现有的机器人更多来自反馈控制系统、伺服机构的技术,而不是人工智能的技术。也许这就是这头野兽的本性,也许永远如此,但我表示怀疑。我认为总有一天,而且这一天正在到来,我们会希望机器人足够聪明,聪明到它们需要的不只是模拟计算机和反馈控制来充当大脑的替代品,而是真正需要做一些复杂的处理。你们有些人知道,这个方向当然已经有过研究,斯坦福那台令人惋惜的、已经故去的 Shakey 就是很好的早期例子。Shakey 干的事算不上伟大,但它至少是一个爱思考的系统,去哪儿之前总先把路线规划好。你们有多少人至少看过 Shakey 的电影?不多啊。我们这儿有没有片子可以找个时间放一放?大概有吧。也许现在已经有更先进的系统了,通用汽车有一套系统。
除了这些话,我就不再谈机器人学了。我只是想强调,接下来这一个小时我要讲的题目,也就是我目前大部分研究精力所在的题目,并不一定是人工智能里唯一令人兴奋的研究课题,虽然我认为它们确实令人兴奋,否则我也不会做。对那些对这些题目不感兴趣的人,还有别的选择。顺便说一句,欢迎打断、评论、插话,也欢迎提问,只要别太难。到现在为止大家还跟得上吧?
现在转到我的兴趣上来,或者说不只是我的兴趣,而是主要分布在心理学系、在计算机科学系这边也有些据点的几组人的兴趣。在语义丰富的领域,也就是必须掌握大量知识才能有所作为的领域,我们想知道的事情之一是:专家和新手的区别是什么?专家为什么是专家,新手为什么是新手?我们现在有一个大项目,研究物理学中专家与新手的问题求解。我们不打算去找胶子,而是在比较温和的层次上活动,大学一年级物理,或者高中高年级物理之类。参与的人有约翰·麦克德莫特、吉尔·拉金、我妻子和我,还有其他几位相关的人。这个领域可以说明当今人们探索人类认知过程的一种典型方式,不是唯一的方式,但是典型的一种。
这个策略很简单,但至少在一定程度上管用。你先抓来一些新手和一些专家,让他们坐下来解题,解题的时候打开录音机,并请他们在解题时把想法说出来。关于“说出来”是什么意思,你要故意含糊其辞,因为你不希望被试给你一套关于他自己解题过程的理论。那会很失体统,就像一台盖革计数器在美国物理学会的年会上站起来发表演说一样。弄清现象背后的理论是心理学家的活儿,被试的活儿只是做眼前的任务,解眼前的题。多数人在解题时是能说话的。我们当中有些人独自解题时也会自言自语,只是有旁人在场时会有点害羞。但多数人能说出不少东西,从中你能得到大量关于人们所用过程的信息,尤其是他们在解决复杂问题的路上经过了哪些阶段。这类证据的性质以及怎样使用它,我稍后再回头谈。眼下只需说,我们手上的数据,是一些人解一些题时的出声思维记录(thinking-aloud protocol),其中有些人是新手,有些人是专家。
与此同时,我们试着写一个或几个同样能解这些题的计算机程序。不是要把计算机做得尽可能聪明,而是尽我们所能判断,让程序使用我们认为新手和专家被试正在使用的那类过程。让我举个例子,把这一切说得具体些,只要我别把自己绕进去。
我们可能有一道关于落体的题。我主要谈运动学的题。就拿最简单的来说:一个物体从四十米高的悬崖上落下,问要多长时间。一个相当简单的系统就能解这道题,而且我们相信,被试解这样的题用的也是相当简单的系统。他们在记忆里存着一组物理方程,代表运动学定律。其实你只需要三四个方程,三个就够用;多数教科书会在方程形式上变来变去,给你七八个,其中有些我从没见过,或者不记得见过。不管怎样,方程的数量很少。要解这道题,你要做的只是按适当的顺序运用其中适当的几个。而这一点也非常简单:如果你能找到一个含 n 个变量的方程,其中 n 减一个变量的值你已经知道,那解一下这个方程准没坏处,因为你可以再得到一个变量的值。
比方说有一个方程 s = ½at²,其中 a 是已知常数。这道题里我们知道 s,也就是物体要下落的距离,我们想要的是 t,那要做的就是解这个方程。我想你们都能看出怎样造一个产生式系统来做这类事。你只要在产生式的条件里写上方程中出现的变量的名字,触发这条产生式的条件大致是:如果除一个变量外其余变量的值都已知,就触发。事实上,我们的专家差不多就是这样表现的。这是一种众所周知的解题方法,叫做正向推理(working forward):拿你知道的东西,从中推出任何能推出的东西,直到快乐的一天到来,你知道了问题的答案。事情本不必如此,原则上不必如此。但事实证明,在运动学问题以及我们如今考察过的其他一些领域里,这个方案好用极了,解题几乎不费时间。
你也许会问,这个系统要是考虑一下自己的目标,考虑一下自己真正要求的是什么,而不是见到任何只剩一个未知变量的方程就解,不是更好吗?我只能报告一个事实:这些领域太小了,你解上两个、最多三个方程,答案就出来了。对专家来说,这比真正去想自己在干什么更高效。
我们的新手就不这样表现了。我说的新手,是指代数还过得去、也读过这些方程所在章节的人。新手的表现,就好像他或她有一个产生式系统,动作与专家的相同,也是这些方程:位移等于平均速度乘以时间,末速度等于加速度乘以时间,等等。教科书那一章当然只处理匀加速的情形,所以事情比较容易。新手看着题说:我要求什么?我要求 t。然后,至少在新手程序的某些版本里,他会去找一个含 t 的方程,试着解它。如果方程里还有别的未知数,就把它们和原来的变量一起放进待求清单,再去找能解出它们的别的方程。这也是一种众所周知的解题方法,有时叫逆向推理(working backwards),有时叫手段目的分析。你知道自己的目标,问自己:我知道什么能帮我达到这个目标?你试着用它,发现用不了,于是把“用上它”设为目标,再问有什么能帮我达到这个目标,如此下去。这个简单系统的全部内容就是这些。
我觉得有意思的是,我们这辈子老师一直在告诉我们,我肯定也这样告诉过学生:解题的聪明办法是逆向推理,先弄清目标,再从目标出发倒推出一条能达到目标的事件链。可我们现在有了非常清楚的证据:在这类问题领域里,正向推理才是专家的策略。这种研究会带给你意外,我想我们最初发现这一点时也感到意外。到现在我们有了一套解释,甚至能给它加上一些限定。
(听众问及正向推理是否更高效。)大概是吧。眼下我们还不太知道怎样度量这种效率。正向推理往往要多解一两个方程,但我们不知道究竟该怎么度量效率,因为我们在细节层面上不知道哪些过程在耗时间。不过,不必去想自己在干什么,这里面似乎有某种效率,而我目前的模型里还没有把它表示出来。因为逆向推理时,你得把子目标存进某种下推表或类似的东西,把子目标一直留在手边;而正向推理完全不用操心子目标,做顺手的事就行。效率的来源可能就在这里。我们还发现,不是在这个领域,而是在热力学里,专家也是这样正向推理的。但如果你扔给他们一道格外难的题,比他们习惯的更难,让他们真正卯足了劲,他们就切换到逆向推理的模式。所以正向推理模式,与身处一个让你有把握的任务领域有关:你觉得只要收集信息,而正向推理就是收集信息,就能得到问题的答案。
我举这个例子,首先是为了说明这类心理学研究看的是什么。这个例子对人工智能也可能有些意思,因为在构造各种解题程序时,同样的二分法也摆在我们面前。曾经有一个时期,也许这个时期还没有过去,我认为人工智能的解题程序被手段目的分析和最佳优先搜索的想法所主导。最佳优先搜索可以是正向的,但手段目的分析肯定是从目标往回推。而你还可以持另一种观点:解题就是不断收集关于情境的信息,直到答案变得显而易见。近年的某些博弈程序,也许可以解释为体现了这种哲学。汉斯,我这样说有没有冤枉你?我不认为我们对这种策略在哪里好用、在哪里不好用知道得很多,但它确实提示了一种新的看法,至少是一种不同的看法。我不认为它是全新的,我知道至少从 1971 年起就有人在某些情形下这样看了。但这是看待问题求解的另一种方式,可能有些教训能反馈到人工智能研究里去。
它还说明了另一件事:在那些被认为对人类很难的领域,没有多少人抱怨大学物理太容易了,在这些对多数人来说很难的领域,你可以造出相当简单的产生式系统,麻利地完成这些任务。而且,我引入这个题目时把它叫做语义丰富的领域,物理学里要知道的东西确实很多。可如果你真去分析教科书各章的内容,你会发现物理学,而且只要玩同样的游戏,大概多数别的领域也一样,其实是一个很精瘦的领域。物理学有很多主题,到你读完博士的时候,教科书能摞很高。可如果你只问“我一个学期学到了什么”,或者“我读一章书的这一周学到了什么”,答案是四五件事。不是四五百件,是四五件。你嫌四五这个数目太少,我可以给你一打。总之是相当有限的几件事。我们一直在数,虽然我不太清楚“一件事”究竟是什么,这里的单位该怎么定,我们还有些疑虑。但从那一章里能获取的信息量,并不令人招架不住。
做这件事时另一点会变得明显:教科书对某些东西说得非常明确,对另一些东西却很扭捏,几乎像在保密。教科书极擅长告诉你自然规律是什么,却往往极不明确地告诉你某条自然规律什么时候对解题有用,什么时候该用某条规则。这不只是物理教科书如此,代数教科书也如此。在代数课本里学习通过对等式两边同加、同减、同乘、同除一个数来解一元一次方程的那一章,前半章教你这些规则,然后给你两个例子,真的用这些规则解出一个方程。可在我知道的任何教科书里,你都找不到对“你怎么知道该用哪条规则”的任何明确讨论。要是谁能给我举出一个例外,我会很高兴。哪怕像我们刚才给出的那么简单的启发式规则,即要决定用哪个方程,最好先问问手上有哪些已知量、哪个方程能解,通常教科书也不会告诉你。人们似乎迟早都能学会,但学生们常常抱怨:规则他们都知道,就是不知道什么时候用。而他们不明白为什么知道规则还不够,为什么这样不行。
其实他们只要稍微学一点产生式系统,就会明白:他们学到的是产生式的动作端,没学到条件端。教科书就是这样,动作端很强,条件端很弱。要是你们中有谁不久后打算写教科书,我相信你会想办法补上这一课。顺便说一句,这纯属道听途说和信口一猜:我的印象是,有一类教学书在这方面比别的都好得多,就是教身体技能、游戏和运动的“怎么做”手册。好的那些手册更注意告诉你该留意哪些线索。你怎么知道自己挥网球拍的姿势对不对?在这一点上,它们比多数讲学术科目的书好得多。我想过去十五到二十年的一些棋艺著作,从爱德华·拉斯克那本小小的入门书开始,也有不少这方面的内容,但仍有改进的余地,你说呢?你一直觉得它们够用了。好吧。我想你要是仔细看,会发现它们在线索上还是很单薄。
也许这个世界在这个意义上是最优的,但我很怀疑,因为你知道,选了物理课的人里有一大批从来没学会这个。也许的确,聪明人,不管这词是什么意思,聪明人不太需要这些。我愿意相信,这就是汉斯·伯利纳读棋书时不需要多少这类内容的原因。但很可能,我们所说的智力的一个方面,就是人与人之间在找出并补上产生式条件端的能力上的差异。这是个非常大胆的假说。但我不会对教科书在这方面的现状感到安心。过一会儿我会借代数的例子再回到这一点。关于这一点,还有别的评论或问题吗?
对这些简单的运动学问题以及其他几类问题有了这样的认识之后,我们并不幻想自己已经知道了专家与新手在物理学表现上的全部差别,甚至不敢说知道了多少。我们展开的第二条战线,是试图理解物理学家说“物理直觉”时指的是什么。每个物理学家都有它,没有它就解不了题,或者说,谁解得了题你就会说他有它。它对解物理题似乎非常重要。这并不是物理学家独有的。在任何领域,如果一个专家刚刚飞快地回答了一个问题,你问他是怎么做到的,他会说:“我用的是直觉。”我们正开始抓住一点头绪,因为“直觉”是个很令人不安的词。它属于那种只给现象贴标签而不解释现象的词。不幸的是,这样做的结果通常是让现象在某些人眼里消失了,他们不再为它操心,而他们本该操心。或者,它让人们形成这样一种态度:既然全是直觉,显然就无法解释,那还写什么计算机程序,还试图让人工智能程序做那些直觉的事干什么。(听众说:这是魔法。)对,魔法。我们这些还原论者、反活力论者,以及诸如此类的坏人,我们当中有些人认为,人身上发生的任何事都是通过某个过程发生的。也许这个过程很快,有些直觉过程确实很快,但我们的任务之一应当是设法解释这些过程,而不是仅仅给它们贴标签。你们记得莫里哀的一出戏,我想是《无病呻吟》,里面有个医生,人家问他为什么鸦片能让人入睡,他说:因为鸦片有催眠的功能。这种解释跟“直觉”的解释是一个水平。
那么,直觉是什么?我先谈一般意义上的直觉,再谈物理直觉。在大量据称动用了直觉的场合,我甚至不必说“据称”,就是动用了直觉的场合,证据是这样的:一个问题被摆出来,专家非常快地给出了答案,也许只用了几秒钟。别说“瞬间”,因为人的神经系统里没有什么事是瞬间发生的。那实在是一套很差劲的硬件,靠电化学过程运转。没有什么事在微秒之内发生,更不用说纳秒了。你要是能让它在一百毫秒内做出点什么,就算走运。所以说他“瞬间”做到了,意思是花了一两秒。在我们干计算机这一行的人听来,这可不像是瞬间。
我认为这些现象大多可以解释为识别现象,而在为数不多的几个做过研究的领域里,也确实已经这样解释了。就是说,如果我有一个大记忆库,有一套足够好的索引,有一组足够好的通向这个记忆库的访问路径,而呈现给我的又是一个恰当的刺激,一个这套索引能够识别的东西,那么我就可以有一个非常快的过程,立刻把我指向记忆里存着这件东西的相关信息的位置。举个傻例子,如果我对一位医生提到“白喉”这个词,他能当场,也就是在这一两秒之内,开始滔滔不绝地讲白喉的事,这没有什么可惊讶的。同样,如果他看着我,发现我身上有一堆颜色古怪的斑点,随即叫出一种病的名字,而这甚至可能正是我得的病,这也没有什么更值得惊讶的。
顺便说一句,这种直觉判断并不总是对的。这里又有象棋提供的有趣证据,可以追溯到荷兰心理学家德赫罗特(de Groot)的早期工作。他让阿廖欣等一批相当强的棋手坐在棋盘前,一边选择走法一边把想法说出来。特级大师身上典型的情形是:看棋盘不过几秒钟,大约五秒,他们就有了一个候选走法,而这个走法百分之九十五的时候正是正确的走法。但特级大师当然还会再坐上十到十五分钟,尤其是在锦标赛的对局里,去确认自己的直觉靠得住,也就是确认自己的确辨认出了这个局面里的相关线索,而这些线索把他送到了记忆中说“有这类线索在场时,我该考虑走到王四格”的那个地方。所以,直觉的这些方面看起来不再那么神秘了。显然,任何一个人,或者任何一个系统,只要花了很长时间获取关于许多事物的信息,又把这些信息编好了索引,那么当你问它一个在它信息范围之内的问题时,它就很可能给你一个很快的答案。有时我在 PDP-10 上提出恰当的求助问题,也能得到答案;要是问错了求助问题,它就手忙脚乱,嘟嘟囔囔,什么也不给你。所以,按我在人的情形下所用的同样证据,我不得不说,PDP-10 对于它自己的某些内脏、它记忆里的各类程序等等,表现出了大量的直觉。
不过我想,物理学家说物理直觉时,指的还不止这些。我先诉诸内省的证据。内省证据在心理学里要处理得谨慎一些,因为你希望科学是公开的,希望能核查人们说的话是否属实、是否可信;而如果他们告诉你的是他们自己的内心想法,那能否用通常的科学规则去检验,就有些疑问了。所以我此刻并不是把内省当作证据提出来,但它可以是一个很好的想法来源,然后再用别的实验程序去跟进。
你给专家看这个程序在做什么:它只是拿到题目的陈述,在我描述的这个程序里,陈述其实不是英语,而是一种编码化的英语,不过这无关紧要,陈述说的是“高度是四十米,时间是问号”。是不是英语真的无所谓。系统拿到这个问题,然后只是唤起正确的方程,再解这些方程。专家声称他根本不是这样做的。要是我这里有更难的题,这话会更有说服力。但专家声称,他做的是读题并理解它,理解其中的物理情境,然后写出一些方程来表示这个物理情境。让我说明一下这两种说法的区别。一种是:题目陈述,不管是英语还是某种形式化的东西,直接导向一个方程或一组方程,然后你去解它。另一种是:题目陈述导向对题目所描述情境的某种内部表征,这个表征导向一些方程的构造,方程再导向解。我不想问专家为什么要绕这条弯路而不走直路,至少现在不想问,因为直路看起来比弯路更高效。也可能在非常简单的题上,直路确实就是实际发生的,这一点很难找到正反两方面的证据。但随着题目变难,第二种情形似乎相当明显地在发生,出声思维记录里甚至有一些证据。这意味着,擅长解物理题的人确实有一种或多种表示物理情境的方式,而这些方式并不简单地同构于或者说等价于将要求解的那组方程。
三四年前,得克萨斯的戈登·诺瓦克(Gordon Novak)在博士论文里造了一个系统,我认为它对物理直觉可能是什么,给出了一个很好的提示。诺瓦克的程序碰巧处理的是静力学,专门对付这样的题:一个人站在梯子上,梯子十二英尺长,人离底端两英尺,体重一百八十磅,等等,你们都知道那类题。诺瓦克的程序是怎么解这些题的?首先,它的长期记忆里有一批图式(schema)和定义。梯子被定义为一根杠杆。人呢,看语境,人被定义为一个质量。对人的定义相当简约,但就这个目的而言足够了。站在梯子上的时候,这确实是看待自己的最好方式,千万别把自己想成长了翅膀,那很危险。所以它做的第一件事,是把题目翻译成一组标准对象。第二件事,它有一些图式,知道杠杆之类的东西该有哪些部件:杠杆该有支点,杠杆上该有作用力,诸如此类;质量该有作用点;杠杆该有与水平面的夹角。这些图式,你们在别的程序里都见过类似的东西,无非是一组槽位,说明对某类对象该预期些什么。然后有一个小程序做两件事。第一,为这道题里出现的对象把这些图式实例化。第二,把适当的一组图式连接起来,表示这道具体的题:它拿实例化了的“人”的图式和实例化了的“梯子”的图式,把人放到梯子上,表示出支点,表示出两者的接触点,等等。我想我们会倾向于主张,这个中间的图示,与物理学家说他在写方程之前先形成了对问题的物理表征时所指的东西,大概相差无几。
而且,在我刚才描述的这种题里,他为什么要这样做,也相当清楚。如果只有一个情境、一组与之相关的变量,那么从对它的文字描述直接走到一组方程,说说是可以的。但当你有一堆彼此相关的对象等等时,你就得有某种办法把方程所要表示的整套关系组装起来,而经过这个形成物理表征的中间步骤,看来是组装的一个好办法。我们现在正在造做这件事的程序。吉尔·拉金有一个相当有意思的通用程序,有时间的话我想说几句,看看什么时候有时间吧。我们正试着更详细地了解这些物理表征的性质:它们有多抽象、多具体,专家手头得有多大范围的图式,他又是怎样运用这些图式的。在这件事上,总的来说,写计算机程序把这些东西表示出来、模拟出来,比直接取得关于人所用图式的性质的证据要容易。后者非常难以捉摸,因为你不能直截了当地问一个人“你是怎么表征那个情境的”,还指望得到一个理智的回答。首先,答案得用语言说出来,而这可能牵涉一场相当可怕的翻译:从一个非语言的、肯定不与词串同构的结构翻译成语言。所以,关于怎样从人类被试那里取得关于他们所用物理表征的性质的任何证据,我欢迎现在或以后提出建议。
我们能得到一些间接证据。几年前我们用下面这类代数题做过实验。你们有些人听这个例子已经听到腻烦了,但我还是再用一次。一个人有一块木板,他把它锯成两段。第一段是整块木板长度的三分之二,第二段比第一段长四英尺。问木板有多长。你们都算出来了?(听众:这题不成立,前后不自洽。)不成立?哪里不成立?好,我再说一遍:一个人有一块木板,锯成两段,第一段是木板长度的三分之二,第二段比第一段长四英尺,问木板多长。我可以为它写一个方程:2/3x + 2/3x + 4 = x。我料到你们要说什么。这个方程哪里不自洽?就方程本身而言,没有任何内部矛盾。它是和我们记忆中关于真实木板的另外一些信息相矛盾。这就是证据。
我们把这道题给数学、物理等等各种熟练程度的被试做,被试相当一致地分成三组,而且在一整套题上都是这样。我们只要求被试写出方程,不要求解。第一组被试会写出上面那个方程。第二组被试对这样的题会写出另一个方程:他们写的是减号而不是加号。第三组被试的反应和你们一样,说这题有矛盾。这就给了你关于内部过程的很强的证据。它说明第一组被试完全是在句法上操作:他们拿到那句话,把它翻译成一个代数方程,就像你把英语翻译成法语那样。第二组被试呢,他们的语法不那么好。他们一定是形成了某种物理表征,然后填进去了在那个表征里最说得通的代数符号。所以他们一定有一个语义表征。要么他们就是在瞎猜。不过在我们做过的这类题里,凡是有人改了方程,改的方向总是从物理上不可能的形式改成物理上可能的形式,我想没有过例外,我们也从没见过反方向的改动。第三组被试显然做了仔细的句法分析,也构造了物理表征,并发现了两者之间的矛盾。所以,关于物理表征,你可以得到这类间接的信息。我们的被试样本不够大,接下来这句话本不该说,但从很小的样本外推,结果是物理学家和工程师属于第二类或第三类,他们要么写减号,要么提出异议;而纯数学家写的是那个原方程。
(听众问是否要求被试解题。)没有,没有要求他们解。因为我们想给他们做一系列这样的题,担心第一道做完,把戏就穿帮了。其实也不一定第一道做完就穿帮,但我们不想冒这个险。所以没有要求他们解。
赫伯特·西蒙 1979 年在卡内基梅隆的这场讲座,以 AI 与认知心理学"谁也离不开谁"为主线,盘点了 AI 已知与未知的知识版图,并用物理问题求解的专家—新手研究揭示两个反直觉发现:专家"向前推"而非"向后推",所谓"物理直觉"其实是可以被程序化的识别与表征过程。
西蒙的整体判断是:AI 的核心难题不在推理引擎本身,而在知识如何进入系统、如何被表征、以及系统如何像人一样学习。他反复强调反直觉的经验发现优于教条,例如向前推的专家策略正在被新一代博弈程序体现为"收集信息直到答案显而易见"的哲学,这一思路可反哺 AI。
值得注意的细节包括:出声思考实验刻意不告诉被试"出声"的确切含义,以免被试提供自己的理论而非行为,他比喻这如同盖革计数器在物理学会上发言一样失体;西蒙承认向前推为何更高效尚无法度量,因为不知道哪些过程在消耗时间;他在物理专家新手项目中的合作者包括约翰·麦克德莫特、吉尔·拉金和他的妻子;锯木板实验只让被试列式不求解,是担心第一道题就"暴露把戏"。讲座本身以他一天排了四场教学、"二战以来最多"的自嘲开场,且自称大部分时间待在心理学系。

微信公众号