本章节将要涉及到一个围绕人工智能的核心问题——“智能”的定义。但这里讨论的,或者说在人工智能领域里所探讨的这个智能的问题,并不是从哲学意义上的。这里所探讨的问题是更多从“形式上”来考量这个问题的。但是我们很清楚,虽然给出了前提并不能代表我们能避开争论,因为我们就是在探讨“智能”:科学范畴的“智能”与哲学范畴的“智能”不一样吗?或者说只是同一个概念的不同层次?……
问题就在于:我们看到了简化论与还原论之争、“模型”与“实际”的边界模糊,甚至于语言自身暧昧的意义……这么多情况都在作用着,使得我们试图得出“结论”这件事本身就变得不那么有意义——因为你无论如何获得不了“公理”。即使是“定理”本身,也只是适用于“形式系统”内部。一旦试图用“自然语言”对定理进行阐述,它必然会有一只脚跨出了“形式系统”。(这涉及到表达的方式)那这样前提下的争论恐怕是得不到结果的,就算有人试图涵盖方方面面,恐怕这样的阐述文章,百万字都不一定足够。
但虽然如此,不代表发生的一切毫无意义。那么人工智能领域中,对于“智能”探讨的一大成果,就是图灵测试。虽然在今天人们已经普遍能够接受这个“测试”——这个概念被拿到了很多科幻小说里来,它几乎成为了一个基准线。但实际上,有所了解的人也都很清楚,图灵测试的测试前提:对于“机械智能”的定义是存在争议的。(图灵测试面对的“九大质疑”也是非常有名的反驳“机械智能”论述)
本章节的对话题目叫《施德鲁,人设计的玩具》,题目上是对应巴赫的第一百四十七首康塔塔(声乐音乐体裁)的一个唱段《耶稣,人渴望的喜悦》。这里稍微多说几句,相信类似于涉及到“人工智能”题材的很多科幻故事,其实都可以牵扯到圣经乃至其它神话传说方面的精神内核;创作技巧,甚至是故事立意上来说,这加深了故事的深度——之前大火的《西部世界》、经典的《黑客帝国》、《终结者》……这种对应关系可以是剧情形式上的,或者内在逻辑上的——人工智能与人的关系,如同人与神的关系。尤其是在这样的故事框架下,可以进行颠来倒去的关系置换。这样的创作方法增加了很多剧情的曲折,甚至引发思考……这确实很有意思。
回到对话内容上来,这篇对话的内容引述自著名的人工智能学者,美国斯坦福大学计算机科学教授、人机交互研究小组研究主任:特里·艾伦·维诺格拉德的一篇论文《理解自然语言》。这篇论文帮助开发了著名的第二代自然语言理解系统“SHRDLU”(就是对话题目里这个“施德鲁”),这个程序尝试使用自然语言讲述积木组成的玩具世界,以此显示了计算机对于自然语言处理的困难复杂之处。
那么通过人机交互研究,我们必然要牵扯到“图灵测试”的内容上来。在科学研究当中,往往理论要领先实际操作很多,虽然在没有设计操作的依据之下,会有很多争议性。但是理论也同样具有前瞻性,所以本章节后续内容,将会从“图灵测试”开始,简单的回溯一下人工智能的发展历史上都经历了些什么——这一部分内容虽然之前的笔记里已经有过概述了。
到今天为止,计算机程序已经经历了:下棋、证明定理、解决问题、作曲、解数学题、使用“自然语言”。有些内容现在还在经历——“阿尔法狗”下棋、“人工神经网络”解决问题、新的算法的发现……不得不说这些内容实在是太广博了,也让笔者意识到,之前几十万字的笔记连冰山一角都没涉及到。(越写越心虚23333)
这里的“施德鲁”,在上面已经提到,它实际上是一个名为“SHRDLU”的自然语言理解系统。它的运作是利用句法分析、语义解析、逻辑推理相结合,大大的增强计算机系统在自然语言方面的分析能力,从而做到使用自然语言只会机器人进行动作操作。——简而言之它是一个可以让人们使用“自然语言”下达指令,并且由机器通过这个系统“理解”之后,做出动作反馈。这个操作即使放到今天来说都是一个非常超前的研究。
这里插一句题外话:人机交互技术是计算机科学中的一个分支,目前主流的研究可能更加偏向于市场化应用的技术——用户界面设计等等(人工智能领域之前“人工神经网络”的大热也是类似情况:资本的导向)。但可以肯定的是它的源头还是来自于计算机科学理论领域的研究,而且它本身也是多个研究学科的交叉应用。当然这里只是稍微提一句,稍稍有些离题。计算机科学自诞生以来发展迅猛,很快就出现了众多分支的研究领域,而且枝繁叶茂。
说回“SHRDLU”系统,它的重点在于让机器能够做自然语言的“理解”。该系统对话的对象是一个具有简单的“手”和“眼”的玩具机器人,它可以操作放在桌子上的具有不同颜色、尺寸和形状的玩具积木,如立方体、棱锥体、盒子等。机器人能够根据操作人员的命令把这些积木捡起来,移动它们去搭成新的积木结构。
在人机对话过程中,操作人员能获得他发给机器人的各种视觉反馈,实时地观察机器人理解语言、执行命令的情况。在电视屏幕上还可以显示出这个机器人的模拟形象以及它同一个真正的活人在电传机上自由地用英语对话的情景。这也是下面对话中发生的事情,侯世达教授基本上把当时这个操作系统的研究论文直接引用过来了。
注意上述实验内容中,已经在尝试人和计算机使用自然语言进行交流了。这就是为什么后面会涉及到“图灵测试”的内容(追根溯源)。包括上述关于“人机交互”的题外话,这里提到的三者本身的研究可能都不会碰到一起去。如果只是单独研究“人工智能”或者“计算机语言交流”或者“人机交互界面设计”这些领域都足够让一个人钻进去一辈子不出来了(从入门到入土)。所以很多人甚至因此感受到了无比巨大的压力——单独研究一个,一辈子都研究不到头,意义何在?
可是来到宏观视角之下,这些学科虽然各自相隔很远,甚至鸡犬不相闻。可是它们确实出自同源,这种内在的关联,是GEB这本书想要阐述的一个核心线索——这就是为什么题目故意用了三个截然不同领域的人做命名。更何况和GEB的书名相比,上述提到的三个研究学科还都是在“计算机科学”这个大的门户之下的。
技术研究于理论研究,就像是一棵在不停分叉的树,枝干之间越来越远,信息越来越多。人们越来越感受到学习的成本是那么繁重,可是实际上,就像之前笔记里阐述过的遗传分子学一样,相隔再远的分叉,依然是同一棵树上的一个部分。
这样的阐述其实不止一次了,这种关联性也并不是强行要解释什么。而是为了化解在阅读这本书的时候读者经常会遭遇到的一个问题——为什么内容会突然跳的那么远?但实际上那是一个错觉,实际上它说的内容并没有离题。恰恰相反,这些大量的旁证是在阐述同一个主题,只是它们展现了这个主题不同面、不同阶段的不同表现而已。
“ 有一天,伊她·娥英女士漫步到麻省理工学院人工智能实验室,碰上了才气横溢的 青年计算机程序施德鲁 。施德鲁正急着找人来试验试验新近 开发出来的一个人——‘格拉德·维维诺诺博士’ 。施德鲁向伊她说明:这位格拉德·维维诺诺博士在他的专业领域里是颇为聪明的,他的专业是分析关于一种‘玩具世界’的对话,,而这种‘玩具世界’由各种不同形状、不同大小、不同颜色的积木组成。这些积木摆在一张桌子上,可以捡起来,挪到别的位置。伊她女士一听就着迷了,立刻在施德鲁的键盘上劈里啪啦地打起字来。格拉德·维维诺诺博士答应站在她身后随时提供一些说明。 ”
要注意一下,这里稍微来理清楚一下三个对话角色的关系,可以帮助理解这篇对话表达的内容。估计很多非专业方面的读者可能会被绕进去——可能专业方面的,或者了解过这个的读者一下子就明白了。在这里的三个角色中,只有一个是人类。另外两个都是计算机程序,其一是自然语言的反应程序(施德鲁),另一个是一个解释程序,在前一个程序的基础之上进行进一步的自然语言分析。从结构上看,感觉两个程序应该是处于不同的层次之上的,二者合一构建了一个双层次的自然语言反应。(比起单层次更加接近自然语言的运用)
格拉德·维维诺诺博士 :施德鲁执行命令时候照例回答:‘行!’。为拣起这个红方块,须先找出一个地方,以便移开上面的绿方块。
格拉德·维维诺诺博士 :屏幕上有三个方锥,施德鲁懂得‘那个’所指的是说话人心目中的一个对象。
伊她·娥英 :找一块比你手里的那块大点的积木,把它搁到盒子里。
格拉德·维维诺诺博士 :施德鲁先要弄清‘那块’、‘它’各指什么,还要推定‘手里’有什么。
格拉德·维维诺诺博士 :施德鲁能用启发规则确定‘它’所指的是‘手里的那块’还是‘找’出来的那块。
格拉德·维维诺诺博士 :施德鲁须先放下红方块,才能拣起蓝方块。
格拉德·维维诺诺博士 :以前说‘方锥’时,施德鲁说‘我不明白你说的是哪个方锥’。现在,他认为你所说的就是刚才谈及的那个方锥。
格拉德·维维诺诺博士 :施德鲁能掌握各种不同的否定词语的含义,例如‘没’,‘不’等等。
伊她·娥英 :这四个方块里有没有比我刚说让你拣起的那块大的?
格拉德·维维诺诺博士 :‘这四个方块’指上一个问题中谈及的方块;‘比……大的’也应指方块。名词短语中可能含有复杂的数量词,如‘至少一块’、‘三块以上’、‘恰好七块’等。为确定‘我刚才让你拣起的那块’,需要用到已发生事件的记录。此外,‘我刚才说让你拣起的’和‘那块’的句法关系是间接的。施德鲁的句法分析程序能以一种具有普遍性的方式处置这种复杂的句法关系。。 ”
在第十七篇笔记的时候,那一章节的主题是关于自指和自复指的内容。还记得那段内容中开篇提到的例子——自指的句子。我们知道自然语言的蕴含意义具有着多层次,上一次给出的比喻是:我们交流的语言,形式上蕴含的信息仅仅只是冰山一角。意识中能赋予的信息层次是更深的多层次的——直白的说,一个完整的信息内容,一成在形式里,,剩下的都是“言外之意”、“话外之音”。它们由于太过庞杂,层次过于复杂,所以在交流中,这一部分是无意义的繁复。
我们的交流之所以限定于“形式”,正是一种高效的,去繁就简的处理。我表达了:“我不饿。”,我就不需要再去表述:“我吃过了。”、“我的消化系统还在运作。”、“我不饿是因为我的上一次进食在不久之前。”……但是我们知道这些信息是蕴含在底下的,尤其是会想起WJU形式系统的那个游戏,机器的复杂表述是不能跳过的。但反过来说,构筑更复杂的层次,确实是逐渐接近“真实”的一个路径。
格拉德·维维诺诺博士 :只有动物才能拣东西,而桌子不是动物。施德鲁的语义规则具备这些知识。
格拉德·维维诺诺博士 :施德鲁的推理系统发现了一个例证,所以他知道这是可能的。
格拉德·维维诺诺博士 :这个问题本身是有意义的,但是在屏幕上并没有出现例证。施德鲁无法看到他自己的程序里的细节,,尽管他的能力终究是由这些细节所确定的。
格拉德·维维诺诺博士 :施德鲁尝试这样做,但失败了。
格拉德·维维诺诺博士 :施德鲁知道对象的颜色、形状,大小和位置。质料则是对象的未知性质。告诉它以后,它就记录在数据库中。
伊她·娥英 :除了红的木块和方锥下边的木块以外,都是松木的。
格拉德·维维诺诺博士 :施德鲁对这句话的理解,导致它建立一个新的推理过程,以确定某个木块是否是松木的。
格拉德·维维诺诺博士 :盒子中有个方锥,盒子是方锥下面的东西。 ”
这里可以看得出来,如果有研究语言学的人,可能会比一般人有更深的感受。自然语言处理当中包含的东西非常多,而语言学是这门学科的一个涉及到的范围。语言学对于人类自然语言的研究涉及了对语言形式、语言含义和语境的分析。在上面的对话中,之所以有一个跟在后面解释的“维维诺诺博士”会牵扯进对话里,就是这个原因。除开语言形式不说(这里原版都是用英语对话的,而关于计算机中文系统的研究也是之前计算机科学里一件挺值得一提的事,不过这里就略过了。)
很明显施德鲁对于操作人员的回应,这里就是语言含义上的对答交流。而后面跟着的“维维诺诺博士”的进一步解释,则加入了语境和语法的分析。
语言学本身是一个太过广阔的门类,这里之所以要提到就是因为,“人工智能”研究的一部分是和这个门类有重叠的。自然语言处理系统的研究就是结合了计算机科学和语言学的一个分支研究主题——这里的分支研究简直多如繁星,而且顺着挖,又会发现多个分支之间的交叉……
伊她·娥英 :你把绿色方锥放在小方块上边以前动过哪个方锥没有?
格拉德·维维诺诺博士 :施德鲁能从它的记忆中找出现在说的是什么事件,并能把它和别的事件前后联系起来。对于本句的分析涉及像‘没有’这样的词的种种不同用法。
格拉德·维维诺诺博士 :时间可以用当时所做的工作来描述。
格拉德·维维诺诺博士 :施德鲁记得前一句话,因此能理解这类问题。
格拉德·维维诺诺博士 :施德鲁能从原有的子目标树找出其工作的每一步骤的目的。
格拉德·维维诺诺博士 :‘这’指的是前一答句中的动作。
格拉德·维维诺诺博士 :‘那个’指的是前一句里所说的红方块。
格拉德·维维诺诺博士 :施德鲁记得他做了什么,而不是对它的要求的原话。
施德鲁 :有四样东西:盒子、小红方块,蓝方锥和叫做大胖子的那块积木。
格拉德·维维诺诺博士 :所取的名字也可以用于指称事物。
格拉德·维维诺诺博士 :施德鲁的语法知识实际上是一个程序,这个程序使他能处理惯用语。 ”
自然语言处理(Natural Language Processing,缩写作: NLP)如上面已经提到的,是人工智能和语言学领域的一个交叉分支学科。自然语言处理的概念大体是从1950年代开始,虽然更早期也有作为。1950年,图灵发表论文《计算机器与智能》(Computing Machinery and Intelligence),提出了著名的“图灵测试”作为判断计算机智能的条件——以语言、行为作为计算机具有智能的判断依据,这为自然语言处理系统的研究奠定了基础和标准。
1954年的乔治城实验(Georgetown-IBM experiment)涉及计算机自动翻译(automatic translation),将超过60句俄文翻译成英文。当时的研究人员声称三到五年之内即可解决机器翻译的问题——不过实际进展远远低于预期(到今天机翻依然还有很多问题,虽然比那个时候可能要强很多。)结果到了1966年,ALPAC报告发现十年研究未能达到预期目标,机器翻译的研究经费因此遭到大幅削减。一直到1980年代末期,统计机器翻译系统发展出来,机器翻译的研究才得以更进一步。
1960年代发展成功的一个NLP系统的例子,就是“SHRDLU”系统。除此之外,还有1964-1966年约瑟夫·维森鲍姆模拟“个人中心治疗”而设计的“ELIZA”——几乎未运用人类思想和感情的信息,有时候却能呈现令人讶异地类似人与人之间的交互。“病人”提出的问题超出ELIZA 极小的知识范围之时,可能会得到空泛的回答。例如问题是“我的头痛”,可能会得到回答:“为什么说你头痛?”
理论上,NLP是一种很吸引人的人机交互方式。早期的语言处理系统如“SHRDLU”,当它们处于一个有限的“积木世界”,运用有限的词汇表会话时,工作得相当好。这使得研究员们对此系统相当乐观,然而,当把这个系统拓展到充满了现实世界的含糊与不确定性的环境中时,这些NLP系统的表现让研究员很快丧失了信心。
由于理解自然语言,需要关于外在世界的广泛知识以及运用操作这些知识的能力,自然语言认知,同时也被视为一个人工智能完备的问题(这个问题能牵扯到强弱人工智能概念的定义)。同时,在自然语言处理中,"理解"的定义也变成一个主要的问题。
1970年代,程序员开始设计“概念本体论”(conceptual ontologies)的程序,将现实世界的信息,架构成电脑能够理解的数据。当时研发的成果包括:MARGIE、SAM、PAM、TaleSpin、QUALM、Politics以及Plot Unit。许多聊天机器人在这一时期写成,包括PARRY 、Racter 以及Jabberwacky(就是爱丽丝梦游仙境里那个梗,之前提到过)。
一直到1980年代,多数自然语言处理系统是以一套复杂、人工订定的规则作为基础。不过从1980年代末期开始,自然语言处理引进了“机器学习”的算法,NLP产生革新。
当时的革新成因有两个:其一是运算能力稳定增加(摩尔定律的效果,硬件的升级);其二是诺姆·乔姆斯基提出了“转换-生成文法”,使得之前语言学理论渐渐丧失主导(转换了对于语言的研究思路,从经验主义进入理性主义)。在那之后的自然语言处理系统的构架不再依赖语料库的建立。
有些最早期使用的机器学习算法,例如:决策树,是硬性的、“如果-则”规则组成的系统。类似当时既有的人工订定的规则,不过词性标记将隐马尔可夫模型(也就是统计模型)引入NLP,并且研究日益聚焦于软性的、以几率做决定的统计模型。基础是将输入数据里每一个特性赋予代表其分量的数值。
现在许多的语音识别依赖的缓存语言模型(cache language model)即是一种统计模型的例子。这种模型通常足以处理非预期的输入数据,尤其是输入有错误(真实世界的数据总免不错误了),并且在集成到包含多个子任务的较大系统时,结果比较可靠。
NLP系统研究进程中,许多早期的成功属于机器翻译领域,尤其归功IBM的研究,渐次发展出更复杂的统计模型。这些系统得以利用加拿大和欧盟现有的语料库,因为其法律规定政府的会议必须翻译成所有的官方语言。不过,其他大部分系统必须特别打造自己的语料库,一直到现在这都是限制其成功的一个主要因素,于是大量的研究致力于从有限的数据更有效地学习。
同时随着这方面研究的不断发展,以及各方面条件的升级。自然语言处理所涵盖的范围越来越多,现在主要的研究范畴涉及: 文本朗读 、 语音合成 、 语音识别 、 断词/分词 、 中文自动分词 、 语法分析/剖析 、 汉语自动句法分析 、 词汇标示框架 、 n元语法 、 词嵌入 、 词性标注 、 文档分类 、 自然语言生成 、 文本分类 、 信息检索 、 信息抽取 、 文字校对 、 问答系统 、 聊天机器人 、 对话系统 、 机器翻译 、 自动摘要 、 文字蕴涵 、 命名实体识别 、 主题模型 、 文本情感分析 、 语义分析 、 潜在语义学 、 词袋模型 、 标签云 、 自然语言理解主要范畴:文本朗读 、 语音合成 、 语音识别 、 断词/分词 、 中文自动分词 、 语法分析/剖析 、 汉语自动句法分析 、 词汇标示框架 、 n元语法 、 词嵌入 、 词性标注 、 文档分类 、 自然语言生成 、 文本分类 、 信息检索 、 信息抽取 、 文字校对 、 问答系统 、 聊天机器人 、 对话系统 、 机器翻译 、 自动摘要 、 文字蕴涵 、 命名实体识别 、 主题模型 、 文本情感分析 、 语义分析 、 潜在语义学 、 词袋模型 、 标签云 、 自然语言理解 。
近来随着“深度学习”的发展,NLP的研究更加聚焦于非监督式学习和半监督学习(semi-supervised learning)的算法。这种算法,能够从没有人工注解理想答案的数据里学习。大体而言,这种学习比监督学习困难,并且在同量的数据下,通常产生的结果较不准确。不过没有注解的数据量极大(包含了万维网上的所有数据),弥补了较不准确的缺点。语言模型、语法分析等等都是目前最尖端的发展成果。
虽然到了现在,自然语言处理的很多方面都得到了长足的进步——有了更有效率的算法,也有了更好的硬件支持。然而到现在为止,很多根本性的问题依然存在着,这也是目前NLP研究主要试图突破的问题,尤其是这些难点恰恰来自于自然语言本身的很多地方,又有很多延展性。
而且上述的内容还都是外语系的语言处理,中文的系统还需要另外拿出来说。中文因为是象形文字,很多相关的语言内容,是根据类似字形结构成的,还有一词多义等等情况:
一个经典笑话:“这是什么意思?”“没意思。”“没意思是什么意思?”“就是意思意思”“那就不好意思了……”(计算机处理系统汗颜……)
这个例子虽然是一个笑话,但是可以看出,在人类语言中,问答情况下一般有两种情况,其一是有特定答句的问题(某国的首都是什么?),这类问题可以依靠现有技术处理(应答数据库)。但是还有很多开放式的问句,是目前NLP系统需要面对的难题。(“保安三问”)
从这个问题衍生出来还有很多自然语言处理的研究难点:
1:单词的界定 :在口语中,词与词之间通常是连贯的,而界定字词边界的方法通常需要随着文本而定。另外在书写上,汉语也没有词与词之间的边界。
2:词义的消歧 :许多字词不单只有一个意思,因此需要识别当下句子当中的词的含义是什么。(机翻里通常遇到这个问题,而且这里还要计算机自己能找出最优解。)
3:文法的模糊性 :自然语言的文法通常是模棱两可的,根据之前笔记的内容提到过,意义可能蕴含多个层次。其可能的选项足以列出一棵剖析树,而必须要仰赖语义及前后文的信息才能在其中选择其中一个正确答案。
4:不规范输入 :比如抄写笔误,口误,还包括外国口音或地方口音。如何将其识别出来,而不被其误导。(期末考试的填涂卡,填的不对计算机看不出来……)
5:语言行为与实际情况 :句子常常并不只是字面上的意思,有时候还要结合实际情况进行判别;例如,“你能把盐递过来吗”,一个合理的回应应当是动手把盐递过去;在大多数上下文环境中,直接回答“能”将是一个糟糕的答案。虽然也可以回答“不”或者“太远了拿不到”这在逻辑上也可以接受(但这也是一种限制——“好好先生”或“否否先生”……)。
“ 一:传统的基于句法-语义规则的理性主义方法过于复杂,随着语料库建设和语料库语言学的崛起,大规模真实文本的机器学习处理成为自然语言处理的主要选择。
二:统计数学方法越来越受到重视,自然语言处理中越来越多地使用机器自动学习的方法来获取语言知识。
三:浅层处理与深层处理并重,统计与规则方法并重,形成混合式的系统。
四:自然语言处理中越来越重视词汇的作用,出现了强烈的“词汇主义”的倾向。词汇知识库的建造成为了普遍关注的问题。——by维基百科 ”
图灵的大名在学术界估计很多人都知道,不过可能14年的电影《模仿游戏》,才把他真正的带进大众视野。而他的图灵测试也一直客串很多涉及到“人工智能”的科幻题材作品——之前大火的《西部世界》第一季就提到了乐园里的host研究早期就具有了通过图灵测试的水平。包括《银翼杀手》里,如何分辨“复制人”的那个问答方法也是一样。
它几乎成为了一个标杆,而图灵本人也确实是“人工智能”研究领域很多研究界限的启发者。所以基本上谈到“人工智能”的内容,很少能绕开他的。而传奇的人物身前生后都是“传奇”——虽然这个词在这里不一定是褒义的。非同凡响的人要面对的和普通人是不同的,他们非凡的同时必然要面对无数争议,图灵也是如此。
阿兰·麦席森·图灵,OBE,FRS(Alan·Mathison·Turing,1912年6月23日-1954年6月7日)是英国计算机科学家、数学家、逻辑学家、密码分析学家和理论生物学家,他被誉为计算机科学与人工智能之父。
图灵的父亲朱利斯·麦席森·图灵(Julius Mathison Turing)是一名英属印度的公务员他与图灵的母亲在印度结婚。1911年,因为希望自己的孩子在英国出生,于是他们回到伦敦,住在帕丁顿,并在那里生下了阿兰。父亲的公务员委任使他在阿兰小的时候经常来往于英伦和印度。由于担心印度的气候不利于儿童成长,他便把家庭留在英伦与朋友同住。图灵很小的时候就表现出他的天才,后来就更加显著。据说他在三个星期里就自己学会了阅读,而且,从小就对数字和智力游戏着迷。图灵的父亲朱利斯·麦席森·图灵(Julius Mathison Turing)是一名英属印度的公务员他与图灵的母亲在印度结婚。1911年,因为希望自己的孩子在英国出生,于是他们回到伦敦,住在帕丁顿,并在那里生下了阿兰。父亲的公务员委任使他在阿兰小的时候经常来往于英伦和印度。由于担心印度的气候不利于儿童成长,他便把家庭留在英伦与朋友同住。图灵很小的时候就表现出他的天才,后来就更加显著。据说他在三个星期里就自己学会了阅读,而且,从小就对数字和智力游戏着迷。
图灵在学校的时候,他的天赋引起了学校老师的注意,然而他天生对科学的喜好并没有给他在校的老师留下好印象。他们对教育的定义是着重于人文学科而不是科学。虽然如此,图灵继续在他喜欢的学科表现出惊人的能力,还没有学过基础微积分的他,就已经能够解答以他年纪来说算是很高深的难题。
1928年,在图灵16岁的时候,开始阅读阿尔伯特·爱因斯坦的著作。他不但能够理解,而且看出了爱因斯坦对牛顿运动定律存有质疑,即使爱因斯坦的著作中并没有明白指出这点。
1931年,图灵考入剑桥大学国王学院。1934年他以优异成绩毕业。1935年因为一篇有关中心极限定理的论文当选为国王学院院士。
图灵在他的重要论文《论可计算数及其在判定问题上的应用》(On Computable Numbers, with an Application to the Entscheidungsproblem(Orignal Paper),1936年5月28日提交)里提出了著名的“图灵机”概念,他用这个概念对哥德尔在1931年做的证明工作进行了重新论述,他用的简单形式的抽象装置代替了哥德尔的以通用算术为基础的形式语言。
虽然图灵机由于硬件问题使其没有实际用途(运作太慢,以及无限长的纸带子),图灵还是证明了这样的机器有能力解决任何可想像的,并以数学式表达的数学难题。现今,图灵机依然还是计算理论研究的中心课题。他继续证明了判定问题是不可解的。图灵的证明首先展示了图灵机的停机问题是无解的:“不可能用一个算法来决定一台指定的图灵机是否会停机。”(邱奇—图灵论题在之前提过)
尽管他的证明比阿隆佐·邱奇在λ演算方面相等的证明晚发表了几个月,图灵的著作是更易于理解和直观的。他的“通用图灵机”的概念也是很超前的。这一通用机能够完成任何其他机器所能做的任务。这篇论文还介绍了可定义数的概念。
图灵在普林斯顿大学度过了1937年和1938年的大部分时间,在邱奇指导下学习。1938年,他取得了博士学位。他的论文介绍了超计算的概念,在图灵机的基础上加上了预言机,让研究图灵机不可解的问题变得可能。
1939年图灵回到剑桥,聆听了维特根斯坦关于数学基本原理(Foundations of mathematics)的讲座。他们激烈地争论,图灵为形式主义辩护,而维特根斯坦则认为图灵把数学抬得太高并不能发现任何绝对真理。
同年,图灵被英国皇家海军招聘,并在英国军情六处监督下从事对德国机密军事密码的破译工作。两年后他的小组成功破译了德国的密码系统Enigma,从而使得军情六处对德国的军事指挥和计划了如指掌。但是军情六处以机密为由隐瞒了图灵小组的存在和成就,将其所得情报据为己有。后世科学家估计,图灵小组的杰出工作,使得盟军提前至少两年战胜了纳粹德军。(电影《模仿游戏》拍了这段剧情)
1945年到1948年,图灵在国家物理实验室负责自动计算引擎(ACE)的研究工作。1949年,他成为曼彻斯特大学计算机实验室的副主任,负责最早的真正的计算机---曼彻斯特一号的软件工作。他同时在继续作一些比较抽象的研究,如“计算机和智能”的论文写作工作。图灵在对人工智能的研究中,提出了“图灵测试”的假想实验,尝试定义出一个决定机器是否有“智能”的标准。
那段时间图灵还积极地参加体育运动,他的马拉松最好成绩是2小时46分03秒(手动计时),比1948年奥林匹克运动会金牌成绩慢11分钟。1948年的一次越野赛跑中,他跑赢了同年奥运会银牌得主汤姆·理查兹。
1952年,图灵写了一个走国际象棋的计算机程序。可是,当时没有一台计算机有足够的运算能力去执行这个程序,他就模仿计算机,每走一步要用半小时。他与一位同事尝试下了一盘,结果程序输了。
后来美国新墨西哥州洛斯阿拉莫斯国家实验室的研究组根据之前图灵的理论,在ENIAC上设计出世界上第一个电脑程序的国际象棋-洛斯阿拉莫斯国际象棋。(而电脑弈棋程序的开发也成为了人工智能研究的一个重要子版块。)
从1952年直到去世,图灵一直在生物数学方面做研究。他在1952年发表了一篇论文《形态发生的化学基础》(The Chemical Basis of Morphogenesis)。他主要的兴趣是存在于植物结构的斐波那契数列。他应用了反应-扩散公式,现在已经成为图案形成范畴的核心。可惜的是当时他的论文都没有发表,一直等到1992年《阿兰·图灵选集》出版,这些文章才见天日。2012年,《自然》杂志称赞他是有史以来最具科学思想的人物之一。
1952年,图灵因为他的同性恋倾向而遭到迫害,他的同性伴侣协同一名同谋一起闯进图灵的房子行窃,但是英国警方的调查结果使得他被控以“明显的猥亵和性颠倒行为”。他没有申辩,并被定罪。在著名的公审后,他被给予了两个选择:坐牢或女性荷尔蒙注射“疗法”(即化学阉割)。他最后选择了雌激素注射,并持续一年。在这段时间里,药物产生了包括乳房不断发育的副作用,也使原本热爱体育运动的图灵在身心上受到极大伤害。1954年,图灵因食用浸过氰化物溶液的苹果而死亡。很多人相信他的死是有意的,并判决他的死是自杀。但是他的母亲极力争辩他的死是意外,因为他不小心在实验室里堆放了很多化学物品。但是这件事情的后续一直没有结束,并且持续在发酵。
直到2009年9月10日,一份超过3万人的请愿签名,使英国首相戈登·布朗在《每日电讯报》撰文,因为英国政府当年以同性恋相关罪名起诉图灵并定罪,导致他自杀身亡,正式向阿兰·图灵公开道歉。
至2012年,有 21000多人签名请愿,要求英国政府追授图灵死后赦免状,但被当局拒绝。英国上议院的麦克纳利勋爵解释说:
“ 死后赦免状是不合适的,因为图灵是根据当时的法律被定罪。图灵应当知道他的所做所为会触犯法律,他也应当意识到他有可能会受到迫害。图灵在当时的判罪在今天看来既残酷又荒唐,这无疑是一个悲剧,尤其我们应当知道他对战争胜利做出了卓越的贡献。然而,我们不应当脱离历史背景看待这一事件,在那时的法律这的确是重刑。我们不应该在纠结于把不正确的事强行拨乱反正,我们所能做的是确保今日的社会再也不要回到过去、重复历史。 ”
2013年12月24日,英国司法大臣宣布英国女王伊丽莎白二世赦免1952年因同性恋行为被定罪的阿兰·图灵,不过有抗议者指出应将此赦免令范围扩大到所有和图灵同时代且受到同样待遇的同性恋者。
2015年2月23日,图灵的家人向英国首相府邸发出了一份超过50万人签名的请愿书,要求英国政府赦免49000个和图灵一样因同性恋而获罪的人。2017年1月31日,阿兰·图灵法案生效,约49000位因同性恋定罪者被赦免。(这也是为什么在英国,GAY是一个那么经久不衰的梗的原因,很深入的历史原因……)
直到2009年9月10日,一份超过3万人的请愿签名,使英国首相戈登·布朗在《每日电讯报》撰文,因为英国政府当年以同性恋相关罪名起诉图灵并定罪,导致他自杀身亡,正式向阿兰·图灵公开道歉。
至2012年,有 21,000多人签名请愿,要求英国政府追授图灵死后赦免状,但被当局拒绝。英国上议院的麦克纳利勋爵解释说:“死后赦免状是不合适的,因为图灵是根据当时的法律被定罪。图灵应当知道他的所做所为会触犯法律,他也应当意识到他有可能会受到迫害。图灵在当时的判罪在今天看来既残酷又荒唐,这无疑是一个悲剧,尤其我们应当知道他对战争胜利做出了卓越的贡献。然而,我们不应当脱离历史背景看待这一事件,在那时的法律这的确是重刑。我们不应该在纠结于把不正确的事强行拨乱反正,我们所能做的是确保今日的社会再也不要回到过去、重复历史。”
2013年12月24日,英国司法大臣宣布英国女王伊丽莎白二世赦免1952年因同性恋行为被定罪的艾伦·图灵,不过有抗议者指出应将此赦免令范围扩大到所有和图灵同时代且受到同样待遇的同性恋者。
2015年2月23日,图灵的家人向英国首相府邸发出了一份超过50万人签名的请愿书,要求英国政府赦免49000个和图灵一样因同性恋而获罪的人。2017年1月31日,艾伦·图灵法案正式生效。
图灵测试是阿兰·图灵于1950年提出的一个关于判断机器是否能够思考的著名思想实验,目的在于测试某机器是否能表现出与人等价或无法区分的智能。
关于机器是否有可能思考这个问题历史悠久,笛卡尔早在1637年《谈谈方法》中有了类似图灵测试的概念:
“笛卡尔指出,机器能够与人类交互,但认为这样的机器不能作出适当的反应,但是任何人都可以。”
因此,笛卡尔借此区分机器与人类。当然当时笛卡尔没有办法预测到当代的技术能力,但他已经有了超前的理念。
“如果他们发现一只鹦鹉可以回答一切问题,我会毫不犹豫宣布它存在智能。”
当然狄德罗本人未必赞同这一标准,但这个说法已经成为了当时唯物主义者普遍的说法。
关于人类智能定义的争论,在之前提出过。包括二元论、唯灵论、唯物论等等。虽然目前争论都没有能够拿出足够具有说服力的证据。但是整个人工智能研究的可能性,立足的基础在于唯物主义的基础。(当然即使抛开这些问题,人工智能的研发依然具有着技术上的价值。)
1936年,哲学家阿尔弗雷德·艾耶尔思考心灵哲学问题:“我们怎么知道其他人曾有同样的体验?”在《语言,真理与逻辑》一书中,艾尔提出区分有意识的人类及无意识的机器的论点。
1956年达特茅斯会议之前,英国研究者已经探索十几年的机器人工智能研究。比率俱乐部是一个非正式的英国控制论和电子产品研究团体,阿兰·图灵就是其中的成员。
1950年,图灵发表了一篇划时代的论文《计算机器与智能》,文中预言了创造出具有真正智能的机器的可能性。由于注意到“智能”这一概念难以确切定义,他提出了著名的图灵测试:如果一台机器能够与人类展开对话(通过电传设备)而不能被辨别出其机器身份,那么可以称这台机器具有智能。这一简化彷佛使得图灵能够令人信服地说明“智能机械”是可能的。论文中还回答了对这一假说的各种常见质疑。(归类出九大类型的反驳)图灵测试是人工智能哲学方面第一个严肃的提案。
2014年6月8日,首次有电脑通过图灵测试,尤金·古斯特曼成功在雷丁大学(University of Reading)所举办的测试骗过研究人员,令他们以为“它”是一位名为Eugene Goostman的13岁男孩,但后来有文章指它其实并非真正地通过了测试。
如果一个人使用测试对象都能理解的语言去询问两个他不能看见的对象——问任意一串问题。对象有两个:一个是正常的人类、一个是机器。如果经过若干询问以后,提问者不能得出实质的区别来分辨两个测试对象的不同,则此机器就算通过图灵测试。
图灵测试在被提出来之后,在原版测试的基础上,又发展出了多个变种版本:比如变动测试人员数量的版本——测试两个机器,或者单独测试。另外还有完全图灵测试和反向图灵测试。
因为原版的图灵测试,会在物理上完全隔绝测试者和被测试者。而完全图灵测试则要考虑到测试者和被测试者互相接触的情况。这就涉及到了人机物理层面接触的技术问题(严格意义上来说,从物理上模仿人类并不属于“人工智能”的范畴,而可能应该归类到仿生学的范畴里去)。所以为了通过完全图灵测试,还需要在普通图灵测试之外另外两项额外技术课题。询问者还可以测试的受试者感知能力(需要计算机视觉),和受试者操纵物体的能力(需要机器人学)。
反向图灵测试的目的也很好理解了,要让机器没有办法蒙混过关。这个方面比较典型的例子,就是现在网络上各个论坛注册时候用到的“验证码”。在网站上完成登录或注册之前,往往用户被给予一个扭曲的图形,并要求用户输入图中的字母或数字。这是为了防止网站被自动化系统用来滥用。理由是能够精细地阅读和准确地重现扭曲的形象的系统并不存在(或不提供给普通用户),所以能够做到这一点的任何系统可能是一个人类。
当然,技术都有两面性,可以破解验证码的软件也在被积极开发。让程序拥有一个有一定的准确性的验证码分析模式生成引擎。而在破解验证码软件被积极开发的同时,另一种通过反向图灵测试的准则也被提出来:这个准则认为即使破解验证码软件被成功研发,也只是具有智能的人类透过编程对验证码所作出的破解手段而已,并非真正通过反向图灵测试或图灵测试。而如果一台机器能够规划出如同验证码一类的防止自动化系统的规避程序,此台机器才算是真正通过了反向图灵测试。
任何具有超前概念的理论,都会遭到反对。这几乎是非常自然的事情,而图灵在写作自己的论文的时候,就已经预见到了可能的反对意见。他在自己的论文中把所有可能的反对归纳成了九个类类型,并分别做出了自己的回应。GEB书中,,侯世达教授把这九个反对类型非常详细的都列举了出来,这里就直接搬运原书内容了:
“ 由于图灵知道这种观点无疑会遇到暴风雨般的反对,他接着就简洁而又带有幽默感地剖析了一系列对‘机器能够思维’这种想法的反对意见。我在下面给出他列出的九类反对意见,并采用他自己对它们的描述方式。遗憾的是,由于篇幅所限,这里不能复述他所给出的幽默而又机智的答复了。你也许会乐于自己思考一下这些反对意见,并给出你自己的答复。
(1)来自神学的反对意见:思维是人的不朽的灵魂所具有的功能。上帝把不朽的灵魂赐给了每个男人和女人,但没有赐给任何其它动物或机器。因此动物和机器都是不能思维的。
(2)鸵鸟式的反对意见:机器思维的后果将是非常可怕的。让我们希望并且相信它们不能做到吧。 (众多科幻题材的元素之一就来自这条。)
(3)数学化的反对意见:(这基本上就是卢卡斯的论点。)( 书里之前详细提到的卢卡斯—彭罗斯论题。)
(4)基于意识的论点:‘除非一台机器能出于自身的思想和情感——而不是据符号的任意组合——写出一首十四行诗或一首协奏曲,否则我们不能同意说机器等与大脑——这就是说它不但要能先写出来,还要能知道它已经写出来了。没有什么机器能够真正产生下列感受(而不仅仅是发出人为设置的信号——那是简单的发明):在它成功时感到愉快,在它的部件损伤时感到痛苦,听到奉承话就觉得舒服,犯了错误就觉得悲伤,碰到异性会被吸引,得不到它想要的东西就会愤怒或失望。’(这是援引某位杰弗逊教授的话) ——这一条涉及到人造意识的相关讨论了,所以‘人造意识’和‘人工智能’这二者其实不能完全等同,虽然它们确实有交集。
(5)基于各种缺陷的论点:‘就算你能造一台机器做你所提到过的那些事,,你也绝不可能造出一台能做到X的机器。’有许多与此相关的X被提出来。我在下面提供其中一部分:善良、机智、优美、友好、有创造性、有幽默感、区别是非、犯错误、坠入情网、爱吃草莓和奶油、使人动心、从经验中学习、用词得当、成为自己思考的对象、像人那样行为多变、做某些真正新的事情。
(6)洛芙莱丝命妇的反对意见:关于巴比奇的分析机,最详尽的信息来自洛芙莱丝命妇所写的一本传记。她在其中写到:‘分析机并不自称能 创造 任何东西。它能做 任何我们知道怎样命令它去做的事 。’(黑体是她用的)。
(7)基于神经系统连续性的论点:神经系统肯定不是一台离散状态的机器。一个撞击神经系统的神经脉冲的强度这样的信息若是有一点误差,都可能使输出脉冲的大小产生很大差别。因此可以争辩说,由于这个原因,我们不能指望用一个离散状态系统来模拟神经元系统的行为。
(8)基于行为非形式化的论点:这种观点大概是这样的:‘如果每个人都有一个确定的指导规则集来控制他的生活,那他也就无异于机器了。但并不存在这种规则,因此人也就不可能是机器。’
(9)基于超感官知觉的论点:假设我们要进行那种模拟游戏,而两个被问者是一个能接受心灵感应的人,另一个是数字计算机。询问人可以问这样的问题:‘我右手里这张扑克牌是什么花色的?’那个人利用心灵感应或特异功能,在400次讯问中能说对130次。而那台机器只能随机地猜测,也许只能说对104次,,这样,询问人就能做出正确的判断了。 ”
如果有仔细看的读者,可能会注意到,九大类型的反驳理论里,有很多是可以互相重叠的。而值得一提的是最后一个论题。图灵在后来重印的论文中,删去了第九条。图灵可能倾向于认可存在“超感知”的情况,而侯世达教授则在GEB当中表示了反对意见。而关于这个问题的答案,目前由于尚无确凿的证据证明答案,所以可能更多时候还是每个人会选择各自倾向的答案——选择相信有,或者相信没有。
另外,对于“图灵测试”体现出的人们对于“人工智能”的态度之外,还有另外一种倾向值得一说:这个情况出现在约瑟夫·维森鲍姆的“ELIZA”系统里面,GEB摘录了维森鲍姆的著作《计算机能力和人类理性》一文中的原话:
“ ‘伊莉莎’(即生成‘医生’的那个程序)在与它交谈的许多人心中造成了很强烈的错觉,使他们感到它已经理解了他们所说的话。……他们常常要求与该系统私下交谈。而且在谈了一段时间之后,尽管我作出了解释,他们仍会坚持说机器真的理解了他们。 ”
这种情况的存在其实不是完全没道理的,就像是所有关于人工智能的话题下面,总能看到很多人对于人工智能能否出现的期望,这种期望透露在他们发表的评论里。这种倾向无关乎是否具有专业知识,以及他们对于人工智能真的概念了解有多少。(当然宣传有一定加深倾向的效果,这个话题要是讨论开,也能牵扯到很多。)
“ 大多数人对计算机一无所知。因此,除非他们抱有极强的怀疑心理(就像我们在看魔术表演时那样),否则他们如果想解释计算机的那些智能行为,就只能采用他们所能采用的唯一的类比,即类比于他们自己的思维能力模型。这样一来,他们那些过火的想法也就不足为怪了。比如说,的确无法设想一个人能够模拟‘伊莉莎’的行为,对他来说‘伊莉莎’的语言能力构成了他的极限。 ”
对于“人工智能”的心理现象,是一个值得注意的情况。因为涉及到太多方面的论述,这里暂且提一句就到此为止了,不然篇幅会超过。
接下来将要说一说人工智能的发展历程,其实这个话题已经分布在之前的很多内容当中了。我们知道人工智能的概念可以往上追溯到人工生命的概念。从时间上和涉及到的学术上,我们甚至能够追溯到炼金术时代(瓶中小人),甚至更早的神话时代。所以要追溯“人工智能”的渊源的话,我们会意外的发现,这个内容可能比我们所以为的要更久远——可能与人类文明历史的本身一样久远。
稍微把思路收回来一点,这里要说的是现代概念下的“人工智能”,那么它是从什么时候开始的呢?如果要追溯的话,大概也能追溯到很早之前——文艺复兴时期,达·芬奇就设计过机器人。而从帕斯卡和莱布尼茨的时代开始,人们已经开始意识到,想要让机械来完成智能性的任务。
十九世纪,布尔和德·摩根发明了“思维定律”的概念,这个概念本质上就是“命题演算”。于是这成为了通往计算机“软件”概念的基石。另一方面,巴比奇设计出了“差分机”,这是公认的现代计算机的鼻祖,人们就有了计算机“硬件”的原初概念。
“ 我们可以把人工智能出现的时刻定义成机械装置完成了某些以前只能用人脑完成的任务之时。 ”所以之前有提到过,当代人工智能的研究历史,几乎可以等同于计算机的历史。
“ ……无论怎样说,我们确实知道,在近一个世纪之后,当第一台电子计算机构成的时候,其设计者们是体验到了在面对另一种‘思维生物’时的一种敬畏、神秘之感。在那种情况下到底在多大程度上发生了真正的思维,这是许多困惑的根源所在。甚至在几十年后的今天,这个问题仍是刺激与苦恼的一个丰富的源泉。
有趣的是,今天实际上已经没有人再有敬畏感了——尽管和当时那些令人后脊梁骨上冒凉气的东西相比,现在计算机所完成的工作已经复杂得令人不可思议了。‘大电脑’这个一度使人激动不已的名词现在只不过是一个过时的陈词滥调,成了旧时代的一个可笑的遗迹。我们这样快就对它感到厌倦了,这多少有点令人悲哀。 ”
侯世达教授在这里提到了一个人:拉瑞·泰斯勒(拉里·特斯勒)和他的 泰斯勒定理 。这里稍微简单多说几句,介绍一下这个人。(注意这里不是离题,而是需要介绍清楚借此能够更好的阐述,侯世达教授对于人工智能的看法。)
拉瑞·泰斯勒,美国计算机科学家、数学家,人机界面研究专家,于今年2月17日刚刚去世,享年74岁。他毕业于斯坦福大学计算机科学专业,之后专注于从事人工智能的研究。他的履历就不详细说了,各位可以直接百科他的名字就能看到。
这里侯世达提到了泰斯勒著名的泰斯勒定理:也可以称作 复杂度守恒定律 。
“ 根据复杂度守恒定律,每个应用程序都具有其内在的、无法简化的复杂度。无论在产品开发环节还是在用户与产品的交互环节,这一固有的复杂度都无法依照我们的意愿去除,只能设法调整、平衡。如对于邮箱的设计,收件人地址是不能再简化的,而对于发件人却可以通过客户端的集成来转移它的复杂性。 ”
泰斯勒于1984年提出这个定理——据侯世达教授的说法,他是最早知道这个定理的人之一。这条定律成为了交互设计领域的七大定理之一,并且引发了开发人员中的一场争论:“ 应该让一位工程师花费额外的一周时间去减少软件程序的使用难度,还是应该让数以百万计的用户花费额外的一分钟来克服这一困难,哪个观点更有益于企业的成功。这一争论本身也反映出复杂度守恒定律的普适性,而不仅限于软件和应用程序领域。”
侯世达教授把这个定理拓展到了人工智能领域中,他对此的原话是:“ 人工智能是尚未做到的事。 ”
随着各方面的条件不断地凑齐——软件、硬件、概念。人工智能的研究逐渐揭开了它的真实面目,我们要做的事不是那么简单的单靠一两句话就能概括的事,因为人工智能的研究本身就有一个基准的“复杂度”,因为我们看到,在这个主题之下,有那么多的分类领域,侯世达教授在书里做了一个他自己的划分:
在有限的词汇范围内理解口头表达的词(如十个数字的名称)
根据一个数学领域中的证明构造另一个相关领域中的证明
书中在随后的四十多页内容里把上述的所有划分,都大概介绍了一轮——说是说大概,也列举了非常多的例子,但是由于篇幅关系,这里跳过一些之前涉及到的内容(比如说计算机弈棋的相关内容,在之前的笔记附录里写过了“围棋”:虽然书里说的还是国际象棋这些棋类,因为当时计算机弈棋还远没到下围棋的程度。)
再比如机翻的内容,也在上面关于自然语言处理的部分提了一下,这里也就略过了。
这里将要再一次提及一个被反复提及多次的概念——“组块化和层次”。这个概念在前面已经列举过很多例子了,它几乎贯穿了所有的内容。这部分举出的几个人工智能研究的例子所面临的情况,通过这个概念来解释将会明了很多。
首先是机器翻译的研究题目,上面的分类版块里我们知道它是人工智能研究的一个子版块之一。这一部分要说的话其实挺简单的,之前机核上有过好几篇关于汉化的内容:我们知道翻译汉化不是那么简单的一件事。
机器翻译其实是人工智能当中最艰难的几个问题之一——对于自然语言的运用。人类调用自然语言的能力是很高层次的(尤其是对于自己的母语来说),而把外语翻译成自己的母语这个过程,也会经历一个由低到高层次的穿越过程。我们知道一开始当我们对于外语不熟悉的时候,我们的翻译是:一个一个词去查,然后在理解了大概意思之后,把这个意思再表达出来(期间找寻合适的表达方式而绞尽脑汁;翻译中的校对和润色就是这个进步过程。)而越来越熟练的翻译者,就能够很快的跨越这些细碎的低层次步骤,很快就能找到合适的高层次表达的“同构”。于是他就能对更复杂的语言表达进行处理包括:俚语、双关、隐喻、比喻、反语等等表达方式,这就是对于语言的高层次运用。
那机器翻译的问题是什么呢?很明显机器做不到对于语言的高层次运用,甚至到目前为止,机器翻译仍然只是词语意义对应之后的排列组合。机器翻译出来的语言显得非常的笨拙,目前依靠庞大的词库,机翻比过去稍微强一点,能够对一些词组的意思进行调用。但是请注意,这里依然是提前输入到词库里的固定搭配。所以机器在遇到自然语言里的各种表达技法的时候还是会露怯,
这里是对于自然语言使用的,由低层次到高层次的一个结构关系。而难点在于,人类对于自然语言的运用能力是高层次的“组块化”处理,甩开目前的机器一大截。我们对于语言的使用、精简、提炼,乃至于创新的能力是来自于我们的经验、知识、体验。而机器目前几乎不可能同时具备这些条件,我们通达高层次的语言使用时,上述条件缺一不可,这是它们共同作用的结果。而目前机器即使只做到其中一项,就已经需要大量的软硬件支持,其资源消耗远远超过我们。
于是人工智能的第一个问题就涉及到了人工智能的核心问题:“智能”模型的如何构筑。
第二个例子是计算机弈棋,这个也在附录系列第一篇内容里详细的说过了。计算机早期的计算,仍然是线性的,单点计算。对于下棋的棋子需要逐个计算,来绘制超前搜索树。这是很低层次的方式,包括目前对于围棋的计算,我们虽然找到了更高效率的计算——蒙特卡洛算法。以图形识别(函数)而不是超前搜索树来计算围棋,使得围棋程序的能力一下子提升了一大截。这就是往更高层次迈了一步,但是即使如此:计算机的资源消耗还是远远大于人类。(资源消耗过大,是以低层次的方式运行高层次操作的必然现象)
而且计算机弈棋虽然可以算作是“智能”的一种能力表现,它却并不能等同于智能。对于智能的认定来自于另外一个重要的性质——“独创性”。程序的成果该归功于程序本身还是归功于设计者?虽然程序确实能表现出从超越设计者的能力——计算机比人算的快。
“ 我们似乎完全可以这样说:如果我们能把程序的行为归因于其中某些容易被追踪的操作,那在某种意义上,程序所做的只不过是揭示出那些在本质上是埋藏在——虽然并不很深——程序设计者头脑中的想法。相反地,如果对程序的追踪无助于说明为什么这个特定的发现得以产生,那么我们也许应当开始把程序的‘头脑’于其设计者的头脑加以区别了。程序的构造应归功于人,但不能说在他的头脑里已经有了程序所产生的那些想法。在这种情况下,人可以被说成是‘元作者’——即作者的作者,而程序是(普通的)作者。 ”
对于程序能否具有“独创性”的问题,另一个相关的研究题目是一个非常形象的例子:“计算机作曲”。(如果有人追看美剧《美国众神》的话,可能有人会有印象,那个朋克烟鬼风格的科技小子就诞生于“计算机作曲”。)
我们知道,在前面很多篇笔记里(集中在上半部GEB的内容里),介绍过很多音乐乐理方面的内容,不论是音乐的基础规则、还是创作技法、体裁风格等等。所有这些都是可以看成形式规则的,那么我们知道,任何系统都可以对应于形式规则,于是使用计算机作曲自然是可能做到的事情。
计算机作曲的技术,可以追溯的20世纪中期,可以肯定的是,它的诞生绝对冲击了很多音乐从业人士。但是请注意,我们这里讨论的重点在于“创造性”,而不在于“计算机”。(所以电子音乐这些的并不在讨论范围之内)
问题就在于,计算机确实可以把所有的阅历规则和创作技法,变为形式规则,然后进行操作,它甚至可以随机排列组合。但是我们不禁要问,这是计算机的创造吗?很难说,因为这个创作的源头,依然要追溯到操作计算机的人身上——人赋予了计算机“创作”的权限,再有了计算机进行“创作”。
“ 是计算机在作曲吗?最好还是不要提这个问题,但对它也不能完全置之不理。要提供一个答案是很难的。所用的算法是确定的、简单的,,也不难理解。其中并没有涉及复杂的或难以理解的计算,没有使用‘学习’程序,没有出现随机过程,机器是以一种完全机械化的、简单明确的方式在运行。但是,其结果是一个并没有被作曲家完全计划好其细节的声音序列,尽管这一段的总统体结构是被完全、精确地说明了的。这样,作曲家就常常吃惊、而且又惊又喜地看到了他的想法的实现细节。计算机只是在这种意义下作曲。我们称这一过程为算法化的作曲,但我们马上要再一次强调这些算法是能一目了然的。 ”
这把我们引向了一个不在人工智能领域里,但又与其核心息息相关的主题——“自我意识”。这个我们已经看到过很多讨论了,看到过很多演绎了,这个主题的表现可以说是千千万万。在对于形式系统的研究和讨论里,我们就看到过这个主题所演绎出的各种奇妙现象——哥德尔不完备性定理以及其他种种——没错这里可以涉及到“自指”。一旦试图在自身内部对自身进行描述就会产生自我矛盾,这非常有意思,关于这个问题提得讨论可以上升到哲学层面了,那么我们就先在此打住吧。
“ 现在让我们转回到人工智能的历史上来。人们在开始时企图程序化的智能活动之一是定理证明。从概念上看,,这和为一台计算机编程序,让它在WJU系统中为WU找一个推导是没有什么区别的,唯一的不同是所涉及的形式系统往往比WJU系统复杂得多。它们是谓词演算的各种变形,而谓词演算是在命题演算中加入量词后得到的扩充形式。事实上,谓词演算中的大部分规则都已包括在TNT之中了。编写这种程序的关键是要灌输进一种方向感,,这样程序才可能不盲目地到处乱撞,而是只在‘有关的’途径上工作——所谓‘有关的途径’,是指那些经过合理的检查,看来是引向所要得到的符号串的途径。 ”
记得在最早第一篇对话里,乌龟和阿基里斯相遇的时候,我们就讨论过经典的芝诺悖论——那个无穷分割的问题。然后在第五篇笔记的时候,我们遇到了一个类似的问题“递归”中的“无穷回归”。记得阿基里斯和乌龟在探讨欧几里得证明的时候,乌龟当时就用了这个概念来捉弄阿基里斯。
如果不记得了的话,这里可以回顾一下,我们去看看所有的证明推导的最后一步,和我们最后得证的结论之间。有意思的地方就在于我们可以见缝插针的去问“为什么?”虽然这么做一般最后会被认为是在抬杠。但实际上仔细考虑我们会发现,其实这种情况是存在的——证明逻辑中的芝诺悖论。
在WJU形式系统游戏里,探讨了W方法和J方法。这两种方法就体现了人类智能和计算机在处理上述提到的这种“无穷回归”的时候的应对方式。我们的思维会很聪明的跳过整合一部分这类情况,避免了无穷回溯的情况,但是机器似乎做不到——停机问题也有涉及这个;算法内部无法判断自己什么时候该停了。
“ 定理证明的关键是要运用到下列事实:你有一个总目标——也就是你所要生成的那个符号串——可以用来指导你的局部行动。已经发展起来的一种技术就是把总目标转化成推导的局部策略。这种技术被称为‘问题分解’。它是基于这样一个想法之上的:每当你面对一个遥远的总目标时,通常总存在一些‘子目标’,达到了它们就有助于达到总目标。因此,如果我们把给定的问题分解成一系列新的子问题,然后再把它们分解成子子问题,如此以递归的方式进行下去,我们最终总能得到一些非常简单的目标,而我们有把握通过若干步达到它们,或者说至少看起来好像是这样的……。 ”
这也和上面提到的层次结构可以互相照应——我们把高层次问题分解成低层次问题。然而是否还记得在关于大脑的简化论和还原论之争的问题?这个争论在这里是有一个位置的——因为我们也该问一问,这种方式有效吗?在分解过后有没有什么是否可能使得什么东西发生了变化?这个不好说,但是有些现象的存在似乎提醒我们,可能真的存在这样的情况。不论是从低层次极大消耗资源才能运行高层次运作,或者子问题的解的集合能否等同于母题的解?
随后侯世达教授就提出了上述问题的探讨,他举的例子叫:《山迪和肉骨头》,山迪是一只狗狗。简单来说,一只狗想要跑向自己的肉骨头,但是中间有障碍在阻拦。它的不同选择,就相当于把母题分解成了子题进行处理。下棋程序的超前搜索树也是一个类似的方法,所以狗狗会在尝试过所有的可能之后,才找到一个路径通往自己的肉骨头,这和计算机的运行方式挺接近的——而人们会直接选择一条路径,而不需要把全部的路径先过一遍。
“ 请注意一切都取决于如何表示‘问题空间’——也就是说,把什么看成是对问题的‘简单化’(即朝向总目标的行动),把什么看成是对问题的‘复杂化’(即背离总目标的行动)。 ”强调一下,这里的空间并不是物理意义上的,而是抽象意义的。
当围棋程序下赢人类的时候,大家都在为之兴奋或担忧。但是这仅仅只是陷入在情绪之中而已,却没有深思过这类问题。侯世达教授当时给出过自己的看法,现在的程序确实能做到一些很厉害的事情,但是——那并不代表“智能”。请注意这并不是某种为反驳而反驳的论调,而是试图更全面的来看待这个问题。
即使是下赢了最复杂的围棋,我们也不会担心这样的围棋程序能做出什么超出意料的举动。因为很明显,这个程序只能下围棋,它在围棋方面也许远超人类,但也就仅此而已了。计算机计算的速度远远超过人类,但那并不代表计算机全方位的优于人类大脑。
所以这里其实想要提出的是另一个重要的观点,对于“智能”的定义之一——通用性。直白地来说“智能”应该能做到不止一件事。那么现在的电脑也能有很多操作,为什么它也不算“智能”呢?因为很明显,它做的所有事情,都有程序一一对应,都需要独立触发,而不是靠一个通用型程序触发所有的操作。
“ 一个智能程序大概要具有相当好的通用性,能解决各种各样的问题。它应当能学着做各种不同的事情,并在此过程中积累经验。它应当能依据一组规则来工作,而同时又能在适当的时候后退几步,判断一下依据这组规则工作是否会有利于表达到它的某些总目标。它应当能在需要时决定不再继续工作于一个给定框架中,并构造一个新的规则框架,在里面工作一段时间。 ”
这部分依然和上面的内容相关联,我们看到了“通用性”和“自主性”之间的紧密关联,同时它能给予自身一个总目标,并且可以有效地跨域“无穷回溯”问题,同时它还能进行自动切换,还有自省。很难说这几个功能谁高谁低,因为它们几乎全都互相交织在一起。而目前来说,只要是计算机系统(形式系统),几乎在这每一个方面都有着目前来说跨不过去的问题:
比如在自省方面,系统被不完备性定理限制着,系统内部不可能包含一个真正能“自省”的“语句”。另一方面在解决问题制定目标方面,图灵的停机问题不可解也阻拦在这道路上——算法不能判断自己能否停止计算——然后就遭遇到了“无穷回溯”的问题。那这也就导致了,程序不可能进行自动的任务切换——它不能有效停止任务(如果没有提前设置终止条件的话),就会被卡在那里。程序只有结束了上一个任务才能进行下一个任务。(那这就是很机械地表现了。)
“ 在上面举出的例子之中,有许多是为了强调:一个领域的表示方式,在很大程度上,决定了那个领域是怎样被‘理解’的。一个此程序如果仅仅能以预先确定的次序打印出TNT中的定理,,那它还不能算是理解了数论。一个程序如果像利内特那个带有额外知识层面的程序那样,那就可以说是对数论有了初步的了解。而只有当一个程序中的数学知识是包含与广博的现实经验之中的时候,或许才能被我们认为是以与我们同样的方式在‘理解’。正是这个‘知识表示’问题成了人工智能的关键所在。 ”
人工智能的研究一直是一个双向的研究,我们既是在延展计算机的能力,探索人工技术的未来,同时也是对于我们自身最深奥的部分进行探索。人工智能的很多研究,在早期的很多观念,随着我们对于自身的更多了解,慢慢都转遍了。早期那些简单的“心智模型”慢慢的被我们对于自身研究的新发现所否定——简单来说,人类一直在超出对于自身的认知。(这算不算哥德尔定理在人类心智方面的一种表现呢?)
在研究下棋程序的时候,我们以为我们头脑中的“知识”可以以信息的方式来表示,然后被存储在自己的大脑“内存”里,在需要的时候,可以让对应的大脑“程序”拿出来进行调用。
“ 心理学家早就知道,人类是以某种更为复杂的方式来存储事实的。但这一点只是近来才被人工智能研究工作者所重新发现。他们目前正面临着‘组块化’知识的问题和过程性与描述性只是的区别问题。而后一个问题,正向我们在第十一章中所看到的,涉及到‘内省可达的’和‘内省不可达的’这样两类知识间的区别。 ”
如果要想到达更高层次,那么有些东西就得往低层次放。换到计算机科学当中的说法,我们还是需要硬件的支撑。比对一下过去计算机,和现在最先进的计算机,,这个变化就可以看出来了。过去计算机需要在程序中运行的处理,现在的计算机把一部分这样的处理给做到了硬件当中去。而我们知道,以层次结构来看的话,硬件层次处于底层。所以当代计算机确实可以运行比过去的计算机更高层次的程序操作。
不过把知识转化为程序或者数据,这两项操作一直都是同时存在的,并不是说只有单一化的方法更好。单纯的把知识做进硬件里,或是编进程序里,都无法达到“智能”的通用性。比较明确的例子可以从生物分子学里找到,DNA和RNA之间的区别,有了这样的区别,遗传信息的传递才有了高效率,而如果只有蛋白质的话,遗传的很多过程就会被中断——因为效率大大降低。
再换一个说法:既然我们的“智能”还是依托于大脑的生理结构,同样的道理“人工智能”的开发也同样需要硬件的支持。
“ 在知识表示中出现的另一个问题是模块性。要插入新知识有多难?要修改旧知识有多难?书籍的模块化程序有多个?这都要依情况而定。如果从一本高度结构化的——即含有许多交叉相关的——书中删去一章,这本书余下的部分可能会变得实际上无法看懂了。这就像从一个蜘蛛网上拉出一根丝来一样——你这样做会毁掉整张网的。而在另一方面,某些书是非常模块化的,即各章相互独立。 ”(GEB这本书属于前者,虽然这本书在结构上也做到了模块化。但是很多跳着阅读的读者恐怕会损失大量的知识内容,以至于你们看的片段部分虽然好像也包含着知识,但是没有其他章节的内容作为支持,真正底下蕴含的信息可能会被破坏掉。)
知识是否以模块化表示,这还得放到层次结构当中来看。这在之前提到过,不同层次的相同信息会发生“变质”。知识的表示适用于这个规律:在一些层次中,这个知识可以是模块化的,而同样的知识在另一些层次上,则是非模块化的。
“ 例如,在一个下棋程序中,如果你要生成一个超前搜索树,那么一种能以最小的冗余量对棋局进行编码的表示法,就比以多种不同的方式重复地存储信息要好。但如果你想让你的程序通过寻找模式,,以及把它们与已有模式相比较,来‘理解’一个局势,那么把同样的信息以不同的形式重复表示多次将是更有用的。 ”
如何表示知识是一个非常复杂的问题,尤其是在资源有限的情况之下。目前比较有影响力的主张是,使用推理演绎:“ ……类似于TNT所用的那种形式化表示法——即采用命题联词和量词。这种表示法中的基本运算无疑是形式化了的演绎推理。逻辑演绎可以通过推理规则来完成,就像在TNT中那样。 ”
这样一来,在有限的初始条件之下,就可以演绎出相当数量的知识内容——而且是依靠自身机制生成的,前面列举过欧几里得几何的例子。不过这样的方法的限制和缺陷也很明显——没错,不完备性定理又拦在那里了。
但这里让笔者联想起了前几章节关于人类大脑的争论——它究竟能不能用机械论来解释?“智能”的本质是不是一个“形式系统”?这样的想法,应该是源于上述的研究方向。它的论证对于上述的研究主张非常重要,因为其结果代表着这个研究方向的正确性。很可惜的是,研究方面当时的人们可能想简单了,而对于实际的论证,目前依然还处在没有有力证据的不可证状态。
“ 这种方法提供了对所表示领域的一种‘演绎式认识’,即可以从已知事实中推导出正确的逻辑结论。但是,它忽略了人类某些发现相似性和对情境进行比较的能力——即忽略了那种被称为‘类比式认识’的东西——而这正是人类智能的一个关键性的方面。这不是说类比思维过程不能被硬塞到这种模子中来,而是说用这种形式化系统无法自然地对它们进行把握。近来,面向逻辑的系统不像另一些系统那样吃香了,原因之一就是后者允许复杂的比较可以更自然地得以实现。
一旦你认识到知识表示绝不仅仅是一些数字的存储,那么‘计算机过目不忘’的说法便是一个容易攻破的迷信了。‘存在存储器中’的东西不一定就是一个程序‘知道’的东西的同义语,因为即使一条给定知识是编码在一个复杂系统中的某个地方,如果没有过程或规则或其它类型的数据处理器可以得到它,那它也会是无法使用的。在这种情况下,你可以说这条知识已经被‘遗忘’了,因为通向它的途径已经暂时地或永久地失去了。这样一个计算机程序可能会在高层‘忘掉’某些它在低层实际还‘记得’的东西。这是那些反复出现的层次间差别中的一种,而我们或许能从中进一步了解我们自己。 ”
侯世达教授曾经尝试使用“递归迁移网”语法,来让程序自己构成句子。这个方式的目的是为了让程序的语法具有灵活性和递归性,然后他得到了有很强烈的超现实主义色彩的句子和段落。这部分内容一开始会让人觉得眼前一亮,然而看了一段时间之后就觉得无聊了。
“…… 你若对某个东西感到厌烦,这往往不是由于你已经穷尽了它的所有可能的行为,而是由于你已经发现了包含其全部行为的那个空间界限。只不过一个人的行为空间太复杂了,所以才总能使别人感到惊奇。 ”换句话说是意义蕴含的深度,底层信息量的蕴含。颠来倒去的语句人也会写,去看看意识流的作品,超现实主义的作品,甚至是那些技法大于内容的作品。这些作品比起计算机生成的文本依然更加具有深度,为什么?因为计算机底层蕴含的信息依然是计算机的,而人类智能创作的文本,其底层信息则可以和现实世界的真实情况产生“同构”关系——哪怕文本的表层叙述有多么荒诞。
程序设计好的语法生成的语句,和自然语言之间的差别一直存在,但是很难讲清楚这种差别这涉及到之前探讨过的一个话题,也就是“意义”的机制:它是包含在信息里的?还是解读者赋予?还是两者都有?还是说信息自身就有一种“意义”的生成机制?或是触发了我们大脑中的“意义”生成机制?不论哪一种,可以肯定的是,程序生成语言在一定程度上一定是有缺陷的——这里指的是带有随即性的,可以根据规则自动推导出的语句,而不是那种被设定死的交流语句。
有一个例子比较贴近,是之前的pq形式系统,还记得这个系统的字符串曾被拿来解释数学中的加减法:“ pq系统以其微不足道的方式反映了世界的一个小角落。但当我的程序运行时,在它的内部并未反映世界是如何运行的,它只反映了它所必须遵循的那一小组语义限制。为了能反映对世界的理解,我必须得为每个概念包裹上一层又一层关于世界的知识。 ”
语言是如此,那么更加抽象的音乐呢?我们上面看到过了计算机算法生成音乐的尝试,音乐的意义比起语言的符号意义更加抽象化,要更加纯粹。但是是这么简单的吗?这样,音乐对于程序生成机制来说要比语言更简单吗?并非如此,一个最直观的例子:轻音乐、流行音乐、口水音乐之比于古典音乐。
“ ……为什么某些音乐要比其它音乐更深刻、更优美呢?这是因为音乐中的形式是具有表达力的——可以表达给我们头脑中某些奇特的潜意识区域。乐曲中的音响并不涉及农奴或者城邦,但它们触发了我们心灵最深处的模糊情感,在这个意义下,音乐的意义的确依赖于从符号到世界中的事物间的那些错综复杂的联系——在这种情况下,那些事物就是我们心中秘密的软件结构。不,伟大的音乐将不会出于像ATN语法这样简单的形式系统。伪音乐,像伪神话一样,是可能被产生出来的——对人来说这样做将是个有价值的尝试——但音乐中意义的秘密远不是靠纯粹的句法所能挖掘到的。 ”
之后侯世达教授再次分析了“施德鲁语言系统”的一些情况,但可以明确的是:层次结构是一直存在的,但是这让问题就变得非常复杂了:
“ 这种决定会不断地涌现:一个系统应当有多少层?在哪一层上该设置哪种‘智能?’设置多少?这都是今天的人工智能所面临的一些最困难的问题。由于我们对自然只能所知甚少,我们就很难说清人工智能系统的哪一层应该完成一个人物的哪一部分。
这就使你对本章前面的对话场景背后的东西略见一斑。在下一章中,我们将看到人工智能中一些新鲜的、推测性的想法。 ”
后面还有三个章节,整本GEB的阅读之旅就结束了,进入倒计时的时候,反而越来越考验耐力了。论述的内容也不再是单纯的一个主题,一个讨论——后面的探讨都是综合性的,需要结合前面的全部内容来说。这篇笔记比起原书的内容已经缩水了很多很多了,目前这个篇幅是笔者能缩水的极限了。
评论区
共 8 条评论热门最新