实际上,每条腿都有权做些简单动作,而且每条腿都能独立判断在不同环境下该如何行事。举例来说,一个基本动作的意识是,「如果我是腿而且抬起来了,那么我要落下去」,而另一个基本动作的意识可描述为,「如果我是腿在向前动,得让那五个家伙稍微拖后一点」。这些意识独立存在且随时待机,一旦感知的先决条件成立就会触发。接下来,要想开步行走,只需按顺序抬起腿(这是唯一可能需要中央控制的地方)。一条腿一抬起来就会自动向前摆动,然后落下。而向前摆动的动作会触动其余的腿略微向后挪动一点。由于那些腿正好接地,身体就向前移动了。
一旦机器生物能在平滑表面稳步前行了,就可以增添一些其他动作使它走得更好。要让成吉思翻越横亘在地板上的电话簿,需要安装一对触须,用来把地面上的信息传递回第一组腿。来自触须的信号可以抑制电机的动作。此规则可能是,「如果你感觉到什么,我就停下;不然我还接着走。」
成吉思在学会爬过障碍物的同时,其基本的行走模式却未受到丝毫扰乱。布鲁克斯借此阐释了一个普适的生物原则——一个神律:当某个系统能够正常运转时,不要扰乱它;要以它为基层来构建。在自然体系中,改良就是在现存的调试好的系统上「打补丁」。原先的层级继续运作,甚至不会注意到(或不必注意到)其上还有新的层级。
当你的朋友告诉你走哪条路去他家的时候,绝不会顺便告诫你「千万别撞车」,即便你确实必须遵守此训诫。他们不需要就那个低层次的目标和你沟通,因为你熟练的驾车技术早已保证那个目标会轻易实现。而走哪条路去他家就属于高层次的活动了。
动物(在进化过程中)的学习方式与此类似。布鲁克斯的移动机器人亦是如此。它们通过建立行为层级来学会穿越复杂的世界,其顺序大致如下:
避免碰触物体
无目地漫游
探索世界
构造内在地图
注意环境变化
规划旅行方案
预见变化并相应修正方案
在碰到障碍物的时候,负责无目的漫游的部门不会大惊小怪,因为负责避免碰触物体的部门早已对此应对自如了。
布鲁克斯移动机器人实验室的研究生们制作了一个拾荒机器人,他们开心地称它为「搜集癖好机」——一到晚上,它就在实验室里四处搜集空饮料罐。它的无目的漫游部门让它在每个房间里晃来荡去;避免碰触部门则保证它在漫游的时候不会磕碰上家具。
搜集癖好机整晚地闲逛,直到它的摄像头侦测到桌子上一个饮料罐形状的物体。信号触动移动机器人的轮子,将其推进到饮料罐正前方。搜集癖好机的胳膊并不需要等待中枢大脑(它也没脑子)发出指令,就能够通过周围环境「了解」自己所处的位置。它的胳膊上连有传递信号的导线,以便胳膊能够「看」到轮子。如果它察觉,「咦,我的轮子停下了」,它就知道,「我前面肯定有个饮料罐」。于是,它伸出胳膊去拿罐子。如果罐子比空罐子重,就留在桌子上;如果和空罐子一样轻,就拿走。机器人手拿着空罐子继续无目的地漫游(因为有避免碰触部门的帮助,它不会撞墙或磕到家具),直到偶遇一只回收筒。这时,轮子就在回收桶前停下。傻乎乎的胳膊会「查看」自己的手是否拿着罐子,是,就会扔进回收筒。如果不是,就再次在办公室里四处漫游,直到发现下一个罐子为止。
这个荒唐的、「撞大运」的回收系统效率极其低下。但夜复一夜,在没有什么其他事好做的情况下,这个傻乎乎却很可靠的拾荒者居然搜集到数量可观的铝罐子。
如果在原有的正常工作的搜集癖好机上添加一些新的行为方式,就能发展出更复杂的系统。复杂性就是这样依靠叠加而不是改变其基本结构而累积起来的。最底层的行为并不会被扰乱。无目的漫游模块一旦被调试好,并且运转良好,就永远不会被改变。就算这个无目的漫游模块妨碍了新的高级行为,其所应用的规则也只是会被抑制,而非被删除。代码是永远不变的,只是被忽略了而已。多么官僚却又多么生物化的一种方式啊!
更进一步说,系统的各个部分(部门、科员、规则、行为方式)都在不出差错地发挥作用——犹如各自独立的系统。「避免碰触部门」自顾自地工作,不管「拿罐子部门」在不在做事。「拿罐子部门」同样干自己的工作,不管「避免碰触部门」在不在做事。青蛙的头即便掉下来了,它的腿还会抽跳,就是这个道理。
布鲁克斯为机器人设计的分布式控制结构后来被称作「包容架构」[1],因为更高层级的行为希望起主导作用时,需要包容较低层次的行为。
如果把国家看成一台机器,你可以用包容架构来这么建造:
你从乡镇开始。先解决乡镇的后勤:基本工作包括整修街道、敷设水电管道、提供照明,还要制定律法。当你有了一些运转良好的乡镇,就可以设立郡县。在保证乡镇正常运作的基础上,你在郡县的范围内设立法院、监狱和学校,在乡镇的层级之上增加了一层复杂度。就算郡县的机构消失了,也不会影响乡镇照常运转。郡县数量多了,就可以添加州的层级。州负责收税,同时允许郡县继续行使其绝大部分的职权。没有州,乡镇也能维持下去,虽然可能不再那么有效率或那么复杂。当州的数量多了,就可以添加联邦政府。通过对州的行为做出限制并承载其层面之上的组织工作,联邦层级包容了州的一些活动。即使联邦政府消失了,千百个乡镇仍会继续做自己的地方工作——整修街道、敷设水电管道、提供照明。但是当乡镇工作被州所包容,并最终被联邦所包容时,这些乡镇工作就会显示出更强大的功效。被这套包容架构所组织起来的乡镇不但能够建造楼房,还可以设立教育体系,制定规则,而且会比原来更繁荣。美国政府的联邦结构就是一个包容架构。
包容架构:Subsumption Architecture
3.3 众愚成智
大脑和身体的构建方式是相同的,自下而上。与从乡镇开始类似,你从简单行为——本能或反射——开始。先生成一小段能完成简单工作的神经回路,接下来让大量类似的回路运转起来。之后,复杂行为从一大堆有效运作的反射行为中脱颖而出,你也就此构建出第二个层级。无论第二层级生效与否,最初的层级都会继续运作。但当第二层级设法产生一个更复杂的行为时,就把下面层级的行为包容进来了。
以下是由布鲁克斯的移动机器人实验室开发出来的一套普适分布式控制方法:
先做简单的事。
学会准确无误地做简单的事。
在简单任务的成果之上添加新的活动层级。
不要改变简单事物。
让新层级像简单层级那样准确无误地工作。
重复以上步骤,无限类推。
这套办法也可以作为管理任何一种复杂性的诀窍,事实上它也就是用作这个的。
你不会指望依赖一个中心化的大脑来管理整个国家的运转。假如你想修修家里的下水道,还得打电话给华盛顿的联邦下水道修理局预约,你能想像自己会搅起怎样一连串可怕的事情吗?
在做某件复杂的事情时——比如治理一亿人口或靠两条细细的腿走路,人们最常想到的办法就是,按顺序列出一个需要完成的任务清单,然后在中央指挥部或大脑的指令下完成这些任务。前苏联的经济就是按这种合乎逻辑却又极不切合实际的方式运作的。其组织模式的内在不稳定性早在苏联解体之前就显现出来了。
中枢指挥下的身体较之这种中央指令型经济也绝好不到哪里去。然而一直以来主流的机器人研发、人造生物、人工智能走的都是中枢指挥的套路。那些头脑中心论的家伙们培育出的机器人,到现在都还没能复杂至可以「崩溃」的程度,对此布鲁克斯一点也不感到奇怪。
布鲁克斯一直致力于培育没有中枢头脑的系统,以使系统拥有当得起「崩溃」的复杂性。在一篇论文里,他把此类没有中枢的智能称为「非理性智能」,其含义生动而微妙,语带双关。一方面,这种基于自下而上层累结构的智能本身并没有用于进行推理的机制,另一方面,这种智能的涌现也毫无推理可遵循。
苏联的崩溃并非因为中央集权体制扼杀了经济,而是因为所有由中央控制的复杂系统都僵化且不稳定。如果按中央集权控制的模式设计机构、公司、工厂、生物体、经济、还有机器人,那它们都难以繁荣下去。
是啊,我听见你咕哝了,作为人类,难道我没有一个中央大脑吗?
人类有大脑,但它既非中央集权,也没有所谓的中心。「大脑有一个中心的想法是错误的,而且错得还很离谱。」丹尼尔·丹尼特[1]这样断言。丹尼特是塔夫茨大学哲学系教授,长期鼓吹意识的「功能性」视角:意识的各种功能,比如思考,都来自不司职思考的部分。爬虫似的移动机器人所具有的半意识,就是动物和人类意识的极好样本。据丹尼特的说法,人体内没有一处是用来控制行为的,也没有一处会创造「行走」,没有所谓的灵魂居所。他说:「如果你仔细看看大脑内部,会发现里面其实空无一物。