机器人难题:不简单的“看”和“走”

制造机器人需要什么?我们暂且不考虑计算行星轨道的超计算能力,先说些人类的简单能力:视物、行走、抓握、思考有关人与事的问题或计划如何行动。

在电影中我们经常看到通过机器人眼睛所呈现的场景,这是电影制作的常用技术,导演使用鱼眼镜头带来失真效果,或者镜头当中出现十字准星来实现这一目的。这对我们观众来说不影响什么,因为我们已经有了功能齐备的眼睛和大脑。但对于了解机器人的内部构造,毫无帮助。机器人里面并没有住着时刻盯着图片的“小人”,告诉机器人看到了什么。如果你真能通过机器人的眼睛看世界,那么你将不会看到带有十字准星的电影画面,而是看到图1-1呈现的图案。

这个视图由数百万个小区域组成,每个数字就代表一个小区域的亮度。较小的数值表示颜色较暗的区域,较大的数值表示颜色较亮的区域。图1-1显示的数字源自瞄准一只手的电子照相机产生的真实信号,当然也可以理解为某人盯着一只手时,从他眼睛到大脑的一些神经纤维的激活率。无论是机器人的大脑,还是人脑,要想识别出物体并且在移动中不撞上去,它必须理解这些数字,猜出世界上哪种东西反射的光会形成这样的影像。这个问题看似简单,其实很难。

图1-1 机器人“看到”的世界

视觉系统必须确定物体边缘的位置,识别出哪里是背景。但世界不像一本彩色的书一样,有着黑色的轮廓和实心颜色的区域。映射到我们眼中的世界是一个由许多小阴影碎片组成的镶嵌图案。也许有人会猜测,视觉脑在寻找大数区域(较亮的区域)与小数区域(较暗的区域)相接的地方。你可以在图1-1中找到这一边界,它就在从顶端右侧到底端中部的斜线上。但不幸的是,大多数时候你找不到物体的边缘,那里只是空白。大数和小数的并列可能是由于许多独特的安排。图1-2中的左图是心理学家帕瓦·辛哈(Pawan Sinha)和爱德华·埃德尔森(Edward Adelson)设计的,它看上去好像是由浅灰和深灰的方砖组成的一道环。

事实上,这图只是一张黑色的纸,中间挖了一个环形的洞,让我们透过它得以窥见它背后的景致。图1-2中的右图,黑色的纸被移除,你会看到,每一对挨着的灰色方块实际上代表物体不同的摆放方式。

图1-2 覆盖与还原

大数挨着小数,可能是由于一个物体立在另一个物体的前面,或深颜色纸放在浅颜色纸的上面,或表面涂有两种灰度的阴影,或两个物体紧紧挨着,或白纸上放着灰色玻璃纸,或两面墙相交的内角或外角,或是一个阴影。大脑总得想办法解决这个“鸡-蛋难题”:根据视网膜的小区域识别出三维物体,通过判断每一片区域是什么东西的一部分,进而区分开每一个小区域是什么(阴影还是涂色,褶皱还是覆盖,透明还是不透明)。

然而,困难才刚刚开始。在我们知道了如何将由视觉所感受到的世界切割成一个个物体后,我们还需要知道物体是由什么做的,比方说,是雪还是煤。乍一看,问题似乎很简单。如果大数来自亮的区域,小数来自暗的区域,那么大数就等于白色,也就是等于雪,小数就等于黑色,也就是等于煤。对吗?错。照到一小片视网膜上光的数量不仅取决于物体灰或黑的程度,而且取决于照亮物体的光的明亮或微弱程度。摄影师的曝光表会告诉你,屋外一团煤反射的光要比屋内一团雪反射的更多。这就是为什么人们常常会对他们拍出的照片颇感失望,为什么摄影是如此复杂的一门工艺。照相机不会撒谎,它自己的设备决定了,拍出的外景如奶白,内景像泥巴。摄影师(有时照相机中的微芯片也可以)精心处理胶片才得出一幅逼真的图像,他们用到的技巧包括:调整快门时间控制、镜头光圈、拍摄速度、闪光灯以及暗室操纵。

我们视觉系统的设计要好得多。它设法让我们将室外明亮的煤块看成黑色,把屋内昏暗的雪看成白色。这是个令人愉快的结果,因为这样,我们意识中对颜色和亮度的感觉就可以与世界原本的状况相一致,而不是和世界呈现到我们眼睛中的镜像相一致。不管在室内室外,雪球都是软的、湿的,随时可能会融化;不管在室内室外,我们也都把它看作是白色的。煤块则总是硬的、脏的,可以燃烧的,我们也总把它看成是黑色的。世界呈现的模样和它实际情况之间的和谐必定是我们神经系统的杰作,因为黑白二色在视网膜上并不是那么简单鲜明。假使你还有怀疑,这里有一个日常生活中的例证。传统CRT电视机关闭时,屏幕上是淡淡的灰绿色。当打开以后,一些磷光点开始发光,显示为图像中明亮的区域。但其他的点则并不是吸收光而呈现为暗的区域,它们只是保持灰色不变。你所看到的黑色区域事实上只是电视机关闭时显像管的灰色阴影。这种黑色是一种虚拟,它是人脑回路的产物,同样的原理也使你能够把煤看作煤。制造电视机的工程师们在设计屏幕时不过是利用了这个回路。

下一个问题是,如何立体地视物。我们的眼睛将三维世界转化为二维的视网膜图像,第三维则必须由人脑来重新构建。但是,视网膜的小碎片上没有提示标志,没法告诉你每个面相距多远。你手心的一枚邮票可以和屋子对面的一把椅子或几千米外的一栋楼一样,在视网膜上映射出同样大小的一个方块[见图1-3(a)图]。从正面看一张切割板,随倾斜度不同,同一张板被看成了各种不同的不规则四边形[见图1-3(b)图]。

图1-3 视网膜成像特点

要想感受这种几何现象的作用,以及处理这种现象的神经机制的运作,你可以盯着一个灯泡持续几秒钟或者在闪光灯闪烁时看着照相机,这会令你的视网膜上暂时出现一小块儿白色。如果这时你去看一页书,余像会附在上面,看上去有几厘米那么大。如果你看着墙,余像会有几十厘米那么大。如果你看天空,它会有云彩那么大。

最后的问题是,视觉模块如何认出外界的物体。机器人由此可以给物体起名,或者了解物体可做什么用。最直接的方法是,为每个物体仿照其形状制作一个模板或者切块。当物体出现时,它在视网膜上的映像会和自己的模板相吻合,就像壶盖对壶口一样。模板将会以形状的名字作为标签。例如,在图1-4中是字母“P”。每当模板吻合时,模板便读出其名字。

图1-4 识别字母“P”

遗憾的是,这种简单的机制可能会出现两种失效情况。不是P时,它可能会错认为P。例如,图1-5第一个方块中的R被错认为P。有P的情况下,它还可能认不出P。例如,当字母移动位置、倾斜、旋转、太远、太近或太别出心裁时,这种机制就认不出P了,如图1-5剩下几个方块中的情况。

图1-5 识别不出字母“P”

这些问题只不过是由一个简单的英文字母造成的。想象一下要认出一件上衣或一张脸,那该怎么设计!确切地说,经过40多年人工智能方面的研究,形状识别的技术已经大大改进。你可以用软件来扫描一页纸,识别字符,并比较准确地把它转化为数码文本文档。但人工的形状识别设备仍远远赶不上我们大脑中的设备。人工的设备是为那些原始的、易于识别的世界所设计的,却应付不了这个杂乱无章、毫无规则的现实世界。支票底端的怪异数字经过了精心的设计,因此没有形状重叠,这是由特殊的设备精确定位后才打印的,以便模板可以识别出这些数字。有朝一日,大厦里装上一台面部识别器来取代门卫,它也不会去尝试解读你的面部轮廓,而会去扫描你的虹膜或视网膜血管的清晰形状。而我们的大脑却对我们认识的每张脸(每个字母、动物、工具等)的形状都保留着相应的记录,这记录总是能够和视网膜上的图像对得上,即使图像如图1-5中那样被扭曲也没问题。在第4章中我们将具体探讨人脑是如何完成这一杰作的。

我们来看看另一个日常生活中神奇的地方:把身体从一处移动到另一处。我想让机器移动,就给它装上轮子。轮子的发明常被人们骄傲地认为是人类文明最杰出的成就之一。许多教科书指出,没有任何动物进化到用轮子来移动,并以此事实为例证明,进化往往不能找到最佳方案来解决工程问题。但这根本就不是一个好例子。即使大自然能够进化出下面长着轮子的驼鹿,驼鹿也肯定选择不要轮子。轮子只有在有道路和铁轨的地方才好用,而在任何松软、湿滑、陡峭或不均匀的地方,轮子都举步维艰。腿比轮子则要好得多。轮子必须沿着不间断的支撑面才能滚动,腿却可以落在一系列分开的立足点上,比如梯子。腿还可以尽量减少歪斜或者跨越障碍。即使现在整个世界好像已经变成了一个大停车场,地球上也只有大约一半陆地可供有轮子或者轨道的交通工具通行,但地球的绝大多数陆地上,有脚这样的载体——动物却都可以行走。这正是自然选择的设计。

但腿的存在是伴随着高昂成本的,它需要指挥控制装置。轮子只需转动,逐渐改变支撑点,就可始终承受重量。腿则必须在极短的时间内改变支撑点,这只有卸掉重量才能做到。控制腿的发动机必须将脚落在地面的同时承受和推动负载,然后再卸掉负载使腿能够自由移动,如此往复交替进行。在整个过程中,它们还得在脚所站的极小区域内保持身体重心平衡,使身体不致蹒跚倒地。指挥装置还必须尽量减少无用的上下颠簸运动。在可以行走的棒球投球手玩具中,这个问题的解决依靠了一个精密的机械联结装置,将旋转轴转化为迈步的动作。但这些玩具不能根据地势状况做出调整,找到最佳落脚点。

即使我们解决了这些问题,也只不过是搞明白了如何控制一只行走的昆虫而已。6条腿的昆虫总是将它的3条腿像三脚架一样落在地上,而将其余3条腿抬在空中。在任何时刻,它都是比较稳定的。即使对于四足的走兽,在移动不太快时,它们也总能保持3条腿立于地面。但正如一位工程师所描述的:“人类两脚直立行走,这种设计本身简直就是一场灾难,这需要极高超的控制才能使之可行。”我们行走时,不断在摇摇欲坠之际重新站稳;我们奔跑时,如飞机起飞刹那陡然启动。这些特技令我们在落脚空间分布不规则、直立不易的情况下仍能牢牢站立,也让我们能侧身通过狭窄小径或是轻松跨越障碍。但还是没有人能搞清楚我们是怎么做到这些的。

控制胳膊又是一项新的挑战。抓住一个建筑师用的灯罩,沿着对角线把它从离你近的左下方移动到距你远的右上方。在灯移动时,注意灯杆和灯的合页。尽管灯罩是在沿直线运动,灯杆却在以一种复杂的弧度摇摆,有时向下迅速俯冲,有时却几乎保持静止不动,有时又从弯曲移动转回直线运动。那么我们来反向推理一下:如果你不观察灯罩,你必须仔细设计每个联结处的扭曲次序,这样才能令灯罩保持直线运动。这其中所需的三角几何的复杂程度令人不寒而栗。但其实你的胳膊就是建筑师的灯罩,每次你做出指示动作,所需大量公式都被你的大脑轻而易举地解决了。你要是曾经用抓灯夹子来拿一盏灯的话,你就会明白,那问题比我刚才所描述的还要难上加难。灯会由于其重量而四处乱甩,就好像它自己有思想一样,如果你硕大的脑袋不发挥作用解决这个难解的物理问题,那你的胳膊也会那样。

更令人称绝的是手的控制。大概2 000年前,希腊医生盖伦(Galen)就指出了人手的精妙自然设计。只此一项工具,就足以操控大小不一、形状重量各异的一应物什,大到一根圆木,小至一颗粟粒。“人类能用手处理各种东西,”盖伦强调,“而且处理得相当完美,就像手是为每一种东西专门设计的一样。”手可以做成钩形钳(提桶)、剪刀钳(夹香烟)、五爪卡盘(举滑板)、三爪卡盘(握铅笔)、衬垫相接的两爪卡盘(纫针)、衬垫分隔的两爪卡盘(拧钥匙)、挤压钳(抓榔头)、盘形钳(开罐子)和球形钳(持球)。每种夹钳都需要肌肉拉伸的精确组合,将手做成合适的形状并尽力保持,以对抗载荷的反方向作用。来想想拿起一纸盒牛奶的情况:手抓得太松,它就掉了;抓得太紧,则会把奶挤出来;你还可以轻轻摇一摇,把纸盒拉开,这样指尖又成了一个小计量器,告诉你里面还有多少牛奶。

我们还没说舌头呢,这是个只能通过挤压来控制的无骨水气球。它能够把食物从后牙挤出来,又能像跳芭蕾舞一样发出“thrilling”(激动的)和“sixth”(第六)这样词的声音来。

“普通人对不普通的事情感到惊叹;智者对平凡之处感到伟大。”让我们谨记哲人的名言,来继续看看人类行为的平凡之处,但我们要换个新的视角,看看机器人设计师是怎样试图复制这些平凡之处的。假定我们已经能够设法建造一个能看能动的机器人了,那么,它看到以后会怎么做?它如何决定自己的行为?

一个智能生命不可能将所看到的任何事物都视为宇宙中独一无二的个体。智能生命必须将事物划分范畴,这样就可以将它艰难习得的,有关从前曾遇到过的相似事物的知识应用于新的事物了。

但是,只要人们试图列出一套规则标准来划分一个范畴成员的所属关系,这个范畴就会分化。且不说诸如“美”或者“相对主义”这样含糊不清的概念,我们来看看一个教科书上明确定义的概念——“单身汉”。当然了,单身汉就是指从来没结过婚的成年男性。但现在假设一个朋友请你邀请一些单身汉来参加她的聚会,如果你用这个定义来决定邀请下面哪些人,看看会怎样。

阿瑟在过去5年一直与爱丽丝愉快地生活在一起。他们有一个两岁的女儿,但两人一直没有在法律上正式登记结婚。

布鲁斯就要被征召入伍了,于是他打算和他的朋友芭芭拉请一名太平绅士为他俩主持结婚,因为这样他就可以免服兵役了。但他俩其实从未生活在一起过。布鲁斯谈过一些女朋友,并计划一旦找到他想娶的女孩,就宣布与芭芭拉的这次婚姻无效。

查理17岁,他现在在上高中,同父母住在一起。

戴维17岁,他13岁时离家创办了一家小企业,现在已是一名成功的年轻企业家。他住在阁楼式的公寓,过着花花公子般的生活。

埃利和埃德加是同性恋情人,两人生活在一起已经多年。

费塞尔根据其本族法律可以有3位妻子。他已经有了两位,目前正在寻找另一位可能的未婚妻。

格里高利神父是泰晤士河边一个小镇天主教堂的主教。

这份人员列表由计算机科学家泰利·维诺格雷德(Terry Wingograd)拟定,它说明“单身汉”的字面定义并不能概括我们对该范畴成员的直觉。

知道谁是单身汉只是一个常识,但常识一点儿都不平常。人脑或机器人脑中常识的形成也定不寻常。常识绝不是生活的年鉴,可以任由老师传授或像一个海量数据库一样能够下载。没有任何数据库能够列出所有我们知道的隐含事实,甚至没有任何人能够把这些隐含事实教给我们。你知道:当埃尔文把狗装进车里,狗就不会再在庭院里;埃德娜去教堂,她的头会随着她一起去;如果道格在房子里,他一定是通过某个开口进去的,除非他就在里面出生,之后再没离开过;如果谢拉早晨9点活着,下午5点也活着,那她中午也一定活着;野生的斑马从不穿内裤;打开一罐新牌子的花生酱不会使整座房子蒸发;人们从不把测量腋温的温度计放到耳朵里;沙鼠比乞力马扎罗山要小。

一个智能系统不会仅仅填满海量的事实,它还需要具备一个清单列出少量的核心真理和一套相应的推导规则。但这种常识规则就像常识范畴一样,很难毫无争议地确定。即使是那些最显而易见的规则也经不起我们的日常逻辑推导。马维斯住在芝加哥,他有个儿子叫弗雷德;米利也住在芝加哥,他也有个儿子叫弗雷德。但尽管马维斯和米利都住在同一个城市芝加哥,马维斯的儿子弗雷德,却不是米利的儿子弗雷德。如果你车里面有个袋子,袋子里有一加仑(2)牛奶,你可以说你车里有一加仑牛奶。但如果你车里有个人,那个人身体里有一加仑血,你要得出结论,你车里有一加仑血,这就很荒唐。

即使你试图制订的只是一套能推导出合理结论的规则,用这些规则来明智地指导行为也绝非易事。很显然,思考者不能一次只运用一个规则。火柴发光;锯子锯木头;锁着的门用钥匙打开。但要是有些人擦着火柴接近油箱,用锯子锯他坐着的凳腿,或者把钥匙锁在车里,然后花一个小时琢磨怎样让车里的家人出来,那我们就会嘲笑他们缺心眼。思考者不仅需要计算其行动的直接效应,还要考虑间接效应。

但思考者也不能事先预测到所有的间接效应。哲学家丹尼尔·丹尼特(Daniel Dennett)让我们去想象这样一个情景,我们派一个机器人去一个放有炸弹的房间取回一个备用电池。1号机器人看到电池放在一个拖车上,它想如果把拖车拖出屋子,电池就会带出来了;不幸的是,炸弹也在拖车上。1号机器人不能推导出拖出拖车也会带出炸弹。2号机器人考虑了它行动的所有间接效应。它刚刚算完拖出拖车不会改变房间墙壁的颜色,正在证明拖车上有轮子而轮子转圈时,炸弹就爆炸了。3号机器人能够将相关信息和无关信息区别开来。它坐在那儿盘算出上百万条内容,并把所有相关的信息列在待考虑的事实清单上,所有无关的列在要忽略的事实清单上,而这时炸弹的倒计时正在嘀嗒嘀嗒地逼近。

智能生命必须依照自己的所知信息尽量地进行思考,但只能是有关的信息。丹尼特指出,这项要求提出了一个深刻的问题,不仅针对机器人设计,而且是一个认识论的问题——对“我们如何知道”的分析。好几代哲学家都没有重视这个问题,他们自满地陶醉着,凭着自己的常识想当然地以为此问题轻而易举。只是当人工智能的研究者们试图在计算机这个终极白板上复制这种常识时,这个难解之谜才浮出水面,现在这个难题被称为“框架问题”(frame problem)。尽管原因难解,我们只要运用常识,总能够解决这个框架问题。