第四章 机器人与其合理性(第3页)
晚上8点56分。
下周日包裹会在哪里?
在驳船上。
一周以后包裹会在码头上吗?
不会。
在这里我们看到HOMER展示了它对时间的常识性理解,以及它的行为是如何影响环境的——当它把包裹送到驳船上以后,包裹将不会出现在码头。它还表明了它理解自己的计划是需要时间来执行的——它需要在晚上8点56分到码头取包裹,才能赶得上9点把它放到驳船上。
人工智能助手
虽然基于智能体的人工智能起源于机器人学,但许多研究人员很快意识到它在软件世界有着非凡的应用前景。没有人声称它是通用人工智能——就像专家系统的情况一样,人们只是想通过构建软件智能体来代替我们完成有用的任务。软件智能体的运行需要软件环境,如台式计算机和网络。最重要的想法是让人工智能驱动软件跟我们一起完成日常工作,就像助手一般能够处理电子邮件和上网。
为了弄明白软件智能体的概念是如何产生的,我们需要了解人类与计算机交互的方式,以及关于交互方式的思考是如何随着时间的推移而演变的。
最初的计算机用户,如艾伦·图灵,通常是帮助设计和制造计算机的科学家和工程师,他们制造的人机交互接口也就非常粗糙。图灵在20世纪40年代末使用的电脑“曼彻斯特宝贝”,其中每一个单独的计算机内存位置都必须通过开关来设置,以指示“0”或者“1”。计算机的一切都向用户公开,用户必须了解机器的工作原理才能编程。现在几乎没有人能掌握这种编程技术了,而即使在当时,如果你想换台机器编程,你从曼彻斯特宝贝身上学到的一切技术都毫无用处,因为编程的对象不同,程序也完全不同。
到了20世纪50年代末,这种情况开始发生改变,这一时期的主要创新是高级编程语言的开发,这些语言之所以被称为“高级”,是因为它们向程序员隐藏了一些机器语言的细节,因此程序员无须去了解某台计算机是怎样工作的,就能对其进行编程。这些高级语言独立于机器,从某种意义上来说,在一台计算机上用(比如)COBOL语言编写的程序可以在另一台计算机上运行——或许不一定能完美运行,或多或少出点错之类的,但编程技能开始可以中转了。这些创新极大地提高了计算机的可用性,标志着我们与计算机的交互方式开始从“以计算机为中心”转向“以人为中心”。
这种趋势在随后的60年一直在持续,从以机器为导向的人机交互模式稳步发展到越来越以人为中心的模式。到了20世纪80年代,随着苹果电脑公司于1984年推出麦金塔电脑(Mac电脑),人机交互的方式又有了巨大的飞跃。Mac电脑是第一台面向大众市场的电脑,它明确地表示不需要专业的计算机技能即可使用。它的主要卖点是用户界面,Mac拥有基于桌面的图形用户界面(GUI),这就意味着Mac用户的界面上显示着代表文档和文件夹的图形图标(时至今日也是如此),用户通过移动鼠标来操作这些桌面元素。虽然我们已经很熟悉用“桌面”这个词来描述自己的计算机界面,但你可能没想过,用这个词的原因是你的屏幕看起来像真实的桌面——你电脑上的文档应该像现实世界中的文档一样放在桌面上,文件夹也是现实中文件夹的类似物,可以帮助你整理文档。这样的类比还有:你像把废纸扔进垃圾桶一样把不要的文档或者文件夹拖进垃圾桶图标里……(现在这个比喻有点夸张了,我想很多年轻人只是模糊地意识到了这一点。)
1984年Mac电脑开创的图形用户界面,直至今日仍然是标准的[50],而在硬件方面,从1984年到现在已经更新换代无数次了。我怀疑当年的Mac用户使用现代的Madows界面时不会存在任何困难。
因此,关于人机交互界面的要点是,用户需要使用他们熟悉的概念(如桌面、文档、文件夹、垃圾桶)与计算机交互,这能使得人机交互的过程更加自然,从而让用户访问计算机变得更加容易。
由于Mac的成功,在80年代末期,时任苹果公司CEO的约翰·斯库里(JohnSculley)开始思考下一个类似Mac的人机交互创新可能是什么。他决定实现自己命名为知识导航器的想法,它预见了好几项新兴的计算机技术(尤其是万维网的出现,那时候距离万维网出现还有好几年时间)。为了说明知识导航器的想法,苹果公司委托制作了一段同名概念视频,于1987年发布[51]。这段视频是高度概念化的,意在展示一种愿景,而不是展示产品本身。
在视频中,我们看到一位大学教授,使用与现代的平板电脑高度相似的产品。这款平板电脑的界面看上去像是传统的桌面,但有一处关键的不同:教授与平板电脑的交互是通过软件智能体来实现的。与HOMER一样,这个智能体可以使用英文跟人进行交互,但与HOMER不同的是,该智能体在平板电脑的显示屏上是以动画人形的方式呈现的。智能体礼貌地提醒教授他的日程安排,查询一些有关教授正在计划的讲座材料,并负责管理来电。
这段视频别出心裁(其中包含了不少蹩脚的幽默),但它却有着重要的历史意义,原因有好几个。首先,它暗示了互联网将成为我们工作环境的常规部分。在视频制作的年代,互联网还没有普及到个人应用层面,甚至大多数公司都无法用到,它主要是学术机构和政府机关(尤其是军事机构)的专用品。另外,这段视频预示了平板电脑的普及。不过,对人工智能领域而言,视频最重要的一点是建立了通过智能体与计算机交互的思想。
基于智能体的交互界面代表了一种与从前截然不同的人机交互模式。当我们使用MicrosoftWord或者IE浏览器之类的应用程序时,这些程序扮演的是被动的、只会响应的角色。这类应用程序不会控制,没有主动性。当你使用MicrosoftWord的时候,它只会因为你选择了某个菜单或者点击了某个按钮而执行该操作,你和MicrosoftWord之间的交互只有一个智能体,就是你自己。
基于智能体的交互界面则改变了这一点。计算机只能被动地等待用户告知它做什么,与此不同,一个智能体扮演的是更积极主动的角色,就像一个人类助手那样。智能体会以助手的身份与使用者合作,积极配合使用者做他想做的事情。
知识导航器视频中的智能体是以动画人物形式出现的,外形像视频会议中人物头像,用流利的英语发言。人工智能的能力远远超出了当时的技术,但这并不是核心思想的关键点,而是人工智能可以使软件成为使用者的合作者,不再是被动的仆人。这个中心思想随着视频深入人心,到了90年代中期,在万维网迅速扩张的刺激下,人们对软件智能体的兴趣迅速增长。
比利时裔麻省理工学院媒体实验室教授帕蒂·梅斯(PattieMaes)发表了一篇广受读者欢迎的文章,文章的标题抓住了时代精神:“智能体能够帮助人们减少工作量和信息过载[52]。”它描述了帕蒂实验室开发的许多原型智能体——电子邮件管理、会议日程安排、新闻过滤和音乐推荐等。比如,电子邮件助手会在收到电子邮件的时候观察用户的行为(立即阅读、将其归档、直接删除等),并使用机器学习算法,尝试预测用户会怎么处理新到的电子邮件。当智能体对它的预测有足够满意时,就会主动行动,根据它的预测来为用户处理电子邮件。
随后的10年里,上百种类似的智能体问世,其中许多都基于互联网。在万维网早期,搜索工具还处于初级阶段,互联网连接比现在慢得多。在网络上执行许多任务都非常耗时,人们希望智能体能够自动完成这些烦琐的工作[53]。对于20世纪90年代后期开始迅速发展的网络而言,软件智能体似乎是一种很有前景的技术,而一大批软件开发公司,也很快成了网络泡沫的一部分。
事实上,我也是这个故事的一部分。1996年夏天,几位同事邀请我加入伦敦一家雄心勃勃的初创公司,他们给了我三倍于学校的工资,我大概思考了半秒钟就同意了。我们的计划是使用智能体来加强网络搜索效率,我们希望能把万维网变成一个图书馆。但我们对商业一无所知,实话说,我们不懂怎么开发商业软件。很快我们就明白了一个残酷的真相:我们以惊人的速度烧掉投资者的钱,但真不知道怎么把它赚回来。那是一段痛苦的时光,我在加入公司9个月以后就离开了它,再过仅仅8个月后,公司倒闭了。
我那悲剧的创业经历也预示着几年后全球范围内所发生的事情,众所周知,互联网泡沫从1995年持续到2000年初。随着那些雄心勃勃、身价不菲的互联网初创新贵纷纷陷入资金窘境,未能实现盈利,2000年初,网络市场开始崩溃。
软件智能体只是互联网故事的一小部分,但它也是跟人工智能相关的最明显的部分了。其实人工智能研究者倡导的梦想并没有错,只是太超前而已。20年后,苹果公司iPhone智能手机的一款应用横空出世,Siri。它是由斯坦福国际研究院开发的——没错,就是30年前开发SHAKEY的同一机构。Siri是20世纪90年代软件智能体工作的直接产物,许多人工智能界人士立即将其与苹果公司的知识导航器视频联系起来。Siri的构想是一个基于软件的智能体,用户可以用自然语言与之交互,并且代替用户执行简单的任务。其他大众市场的应用商迅速跟进:亚马逊的Alexa、微软的a和谷歌助手都实现了类似的功能。他们都将开发起源追溯到基于智能体的人工智能,当然,实际上它们不可能是20世纪90年代出现的,因为当时的硬件不足以支持它们运行。至少在2010年后,移动设备的计算能力才足以支持。
理性行事
基于智能体的范式提供了另一条有关人工智能发展道路的思考:构造能够有效代替我们行动的智能体。不过这又引发了一个有趣的问题,图灵测试确立了一个观点:人工智能的目标是产生与人类相似到无法分辨的行为。但这跟智能体开发的思路不一样,其实我们只是想让智能体代替我们执行最优的选择,它的选择跟人类是否一样,那就无关紧要了。我们真正想要智能体做的是最正确的选择,至少尽可能做出最好的选择。因此,人工智能开发的目标从构建做出跟人类一样选择的智能体转向做出最优选择的智能体。
智能体理论的出发点是用户的偏好。如果你的智能体要代替你做事情,那么它需要明白你的希望是什么。你当然想让智能体尽可能做出你喜欢的选择,那么,我们如何让智能体明白用户的偏好呢?假设,你的智能体要代替你在买苹果、橘子或者梨之间做出选择,它首先需要知道你对这三种不同结果的期望值。例如,假设你的偏好如示例一这样的:
橘子比梨好
梨比苹果好
在这种情况下,你的智能体在苹果和橘子之间做出选择,它选了橘子,你会很高兴;如果它选择苹果,你就会失望。这就是最简单的偏好示例,你的偏好关系描述了你如何对每一对备选结果进行排序。冯·诺依曼和摩根斯坦的理性决策需要偏好关系满足某些一致性的基本要求。例如,假设你的偏好是示例二这样的:
橘子比梨好
梨比苹果好
苹果比橘子好
这么看来你的喜好就有些奇怪了。因为从橘子比梨好、梨比苹果好能推断出你在橘子和苹果中更喜欢橘子,但这就和你的声明相矛盾。因此,你的偏好不满足一致性。这就让你的智能体没办法为你做出最优决策。
下一步就是将符合一致性的偏好进行赋值,使用被称为实体程序的方式。实体程序的基本思想是为每一种备选项赋予一个数字值:数字越大,就代表偏好程度越高。例如,我们可以将橘子的偏好程度赋值为3,梨子为2,苹果为1,这样就可以描述前文第一个示例的情况了。因为3大于2,2大于1,这样的话,实体程序就能够正确地捕捉到第一例中的偏好关系。同样地,我们也可以用实体程序将橘子赋值为10,梨赋值为9,苹果赋值为0。在这种情况下,这个赋值的具体数值并不重要:重要的是赋值大小引起的结果排序。关键点在于,偏好设置必须满足一致性,才可以使用这种实体程序赋值的方式,用数值来表示偏好程度。看看前文所举的第二个示例,试试你能不能给苹果、橘子和梨赋值来表示这个偏好关系。
用赋值关系来表示偏好程度的唯一目的是使其可以用数学计算的方式做出最优选择。我们的智能体就可以选择偏好值最大的选择项,这就意味着它的选择可以达成我们最喜欢的结果。类似这样的问题被称为优化问题,在数学中得到了广泛的研究。
我们举例来说明这个问题,下面的场景,你的智能体必须在两个选项中做出选择[55]:
选项1:掷一枚硬币,如果是正面,你的智能体获得4英镑;如果是背面,你的智能体获得3英镑。
选项2:掷一枚硬币,如果是正面,你的智能体获得6英镑;如果是背面,你的智能体什么都不获得。