人工智能被尘封的历史?《多Agent系统引论》第5章 反应式Agent和混合式Agent 小结
5.0 前言
由于符号/逻辑的方法实际上还是有很多问题,还是有不少人怀疑并最终否定了这种做法。20世纪80年代中后期,研究人员开始探索其他的方式。这些方式百花齐放,有一些共同特点:
- 否定符号形式以及由这种形式语法来做决策。
- 强调与环境交互。
- 行为交互简单。
又被称为行为的(因为研究并组合个体的行为是一种共识)、情景的(因为Agent实际上是位于一定的环境中,而不是孤立的一种共识),本章称为反应式(因为这种系统经常被视为对环境的简单反应,而无需推理)。
5.1 Brooks与归类式结构
简介
归类式Agent,它由Rodney Brooks提出,是有争议也是最著名的反应式Agent,而它的作者也是近年来(2003年的近年)出现的对构造Agent的符号方法最直率、最有影响的批评者之一。
Brooks提出的并指导了他的研究的三种主要观点如下:
- 智能行为无需明确使用符号AI建议的那类表示方法就能够产生。
- 智能行为无需使用符号AI建议的那类精确的抽象推理就能够产生。
- 智能是某种复杂系统自然产生的属性。
说白了就是不用符号、不用推理,直接系统生成,直接环境和系统交互。
Brooks还辩别了两种曾经指导他的研究的关键思想:
- 情景和实际 “真正”的智能存在于现实世界中,而不是在诸如定理证明器和专家系统这样的无形系统中。
- 智能和出现 “智能的”行为是Agt和它所处的环境交互作用的结果。而且,智能是在“旁观者的眼睛里”,不是先天的、孤立的属性。
归类式Agent的特点
凝结的精华就是归类式Agent。它有俩明细的特点:
1.直接和环境交互
Agent做决策,直接看行为集合,每个行为都有单独的Action函数。感知直接映射到动作,不做任何推理。
推理 → 动作
2.很多行为可以同时“触发”
然后,它有机制来处理多重动作之间的选择。Brooks建议分层次,低层次可以抑制高层,比如机器优先躲避障碍,就把这个编码到低层次。
归类式结构实现举例
直接摆书上的了:
5.1.1 Steels的火星探索实验
现在有一个场景,你想想怎么搭建这种Agent。(Steels, 1999)
目标是探索一个遥远的星球,更具体地说,是要果集某种特珠类型的珍贵的岩石标本。事先并不知道岩石标本的位置,但它们一般是聚集地分布在某些确定的地方。有一些自动车可用来绕这个星球行驶采集标本,然后回到宇宙飞船母舰中返回地球。虽然知道该地区布满会妨碍车柄交流通信的障碍物,如高山、峡谷等,但没有这个星球的的详细地围。
两种机制
Luc Steels说用基于逻辑的Agent是“完全不实际的”。而他提出了实用归类式结构的解决办法。
他提出了两种机制:
1.梯度场
母舰可以发射信号,机器人沿“梯度向上”走就是返回母舰。
2.互相通信
Agent可以放置一种“放射性碎屑”,其他Agent经过时可以丢下、检测、拾起这些碎屑。
Agent的规则设计
最底层的规则便是躲避障碍物。
如果检测到障碍物,则改变方向 (5.1)
第二种行为保证Agent携带的任何标本都会被送到母舰中去:
如果携带标本并且在基地,则放下标本 (5.2)
如果携带标本并且不在基地,则沿着梯度向上行驶 (5.3)
下一个行为使Aget能够收集起来它们找到的标本:
如果检测到了标本,则检起标本 (5.4)
最后一个行为保证“无事可做”的Aget随机地探索:
如果为真,则随机移动 (5.5)
这条规则的前提是假定规则总是被触发。这些行为被排列成以下等级:
(5.1)<(5.2)<(5.3)<(5.4)<(5.5)
如果标本是随机的,那么这种Agent,数量上再来一点,完全是够应付的。但标本是聚集的哦。于是Agent之间的合作也变得重要了起来。
从蚁群觅食的行为得到启发,想法是这样的:
每当一个Agent找到一块岩石标本时,它就建立一条撒满碎屑的“小路”。这条小路在Agnt把标本送回母舰时被建立起来。如果在此之后,另外个Agt经过这条路,它只需要沿着这条路的梯度下降的方向走下去就可以找到岩石标本的来源。一些小的精修仍可进一步提高这个独特方案的效率。首先,当Agent沿着一条小路走向岩石标本的来源的时候,它会检起一些遇到的碎屑,因此使小路变得更模糊。第二,这条路只有在Agent返回母舰时才会铺设。这样如果一个Agent沿着这条路走到一个所谓的岩石标本,发现其实没有标本时,它会在来的路上减弱这条路,并且不会带着标本返回来加强它。在几个Agent经过了这条路,并且没有在它的尽头找到标本之后,这条路实际上就被消除了。
于是携带标本时,规则修改如下:
如果携带标本并且在基地,则放下标本 (5.6)
如果携带标本并且不在基地,则扔下两个碎屑并且沿着梯度向上方向走 (5.7)
还要有处理碎屑的逻辑:
如果感知到了碎屑,则采集一个碎屑并且沿着梯度下降的方向走 (5.8)
归类等级如下:
(5.1)<(5.6)<(5.7)<(5.4)<(5.8)<(5.5)
Steels说明了这些简单的调整是如何在很多情况下都达到了接近最优性能的。而且,这种解决方案开销小(对每个Agent要求的计算能力都是最小的),健壮性好(失去一个Agent不会对整个系统造成重大影响)。
5.1.2 Agre和Chapman——PENGI
直接贴上原文:
几乎与Brooks所描述归类式结构的第一个结果的同时,Chapman完成了他的硕士论文,文中报告了前面所说的规划在理论上的困难性,并且对符号AI模型的不足也得出了类似的结论。Chapman与他的合作者Agre一起,开始探索AI规划模式的替代问题(Chapman and Agre,1986)。
Agre观察到,大多数的日常活动都是“程序化”的,在这种意义上说,它简直没有新的抽象推理。大多数任务,一旦学会了,就可以按照程序化的方式执行,不会有什么变化。Agre提出,一个高效的Agent结构可以基于“运行参数”的思想。粗略地说,这种思想就是,大多数决策都是程序化的,它们可以在一个低层的结构(如数字电路)中编码,或许为了处理新的问题而需要定期更新。他的方法在著名的PENGI系统中阐明(Agre and Chapman,1987)。PENGI是一个仿真计算机博弈,其中心控制的特点就使用了前面概述的方案。
5.1.3 Rosenschein和Kaelbling——情景自动机
再贴个图片原文:
5.1.4 Maes——Agent网状结构
似乎,是现在这种,神经网络的先驱?
可以看出人工智能发展的历史啊。
5.2 反应式Agent的局限性
有一些优点值得说道:简单、经济、易计算性、预防失败的健壮性以及精巧性等。不过也有很共通的缺点:
- 如果Agent没有使用它所处环境的模型,则它在局部环境中一定要有充分的可用的信息来决定一个可以接受的动作。
- 由于纯反应式Agent按照局部信息(即关于Agent当前状态的信息)做出决策,很难想像这种决策方法能考虑非局部信息一它必然是天生的“短视”。
- 很难想像怎样设计纯反应式Agent才能使它从经验中学习,并随时间的推移而改进它的性能。
- 纯反应式系统的一个主要的特点是,当Agt处在一个环境中时,它的总体行为产生于部件行为的交互作用。但是正是“产生”这个词表明了个体行为、环境和总体行为间的关系是不易理解的。这必然会使得从工程上实现Agent以完成特定的任务变得非常困难。最后,要构造这样的Agent没有严格的方法学,必须经过费力的实验、尝试和修正的过程来构造一个工程Agent。
- 虽然只要少量的行为就可以生成有效的Agent(一般少于10层),但要构造一个包含很多层的Agent十分困难。不同行为间交互的动态过程变得十分复杂并且难以理解。
人们对这些问题提出了各种各样的解决办法。其中最流行的方法是用进化Agent来执行某些任务的思想。这一领域的工作基本上脱离了传统的主流AI研究,例如,实现基于逻辑的Agent,而且主要出现在人工生命(alife)的文献中。
5.3 混合式Agent
这种Agent,思路是这样的:Agent要有反应能力和预动能力,为什么不能分至少两层来分别处理呢?于是混合式Agent应运而生。
有两类结构:
水平层有它的优点:简介性。但也存在问题,每一层都在竞争主导权,就需要一个mediator来协调。而这又需要把所有可能的情况都考虑到,假设有n层,每一层都有m种动作,那可能性就是种。这种复杂度,要搭建不那么简单的系统就难以承受了。
垂直层部分的解决了这个。n层之间有n-1个接口,每一层如果有m种动作,那可能性就是种,比水平层简单一些。然而,缺点也有,容错性差,一层出问题全系统GG。
待会会讨论两个例子,Innes Ferguson的Touring机,水平层的一个例子;和Jorg Muller的InteRRaP,一个(二路)垂直层次结构的例子。
5.3.1 Touring机
结构如图:
反应层迅速反应,就像Brooks的归类式结构。比如在街道上开车,避免街边镶边石的反应规则(选自Ferguson,1992a,p.59):
规则被触发,不会影响环境模型的更新。
规划层就差不多是处理预动的了。规划层处理“日常”行为,在通常的环境下决定Agent做什么。它也不是生成的,设计有规划库。
模型层包含Agent等各种的实体,可以预言冲突,可以产生新目标影响规划层。
控制子系统决定听哪个层的建议,也可以阻止某个层做某些操作。比如:
这里是阻止反应层了解obstacle-6是否能被感知。
5.3.2 InteRRaP
它的结构如图:
也和Touring机一样,有三层。这三层还可以称为反应层、预动层和社会层,你懂我意思吧,就像人的动物性、精神性和社会性一样。
然后,感知输入,如果能处理,就这层处理,否则上抛一层再看。
还有值得一说的是每一层都实现了两种函数,就是有两种脑回路,一个叫情景识别,把知识库和当前目标映射成一个新的目标,第二个叫目标识别函数,根据规划、目标和知识库,选择一个规划执行。就是第一个是重新想,第二个是重新选择去做。
层次结构是目前Agent中最流行、最普通的一类,问题就在于很难理解系统是怎么产生这样的行为的,缺少清晰的逻辑来描述。另一个问题是层之间的交互,水平层复杂度高,而垂直层部分的解决了这个问题。
5.4 注释和进一步阅读
关于层次结构
Muller etc.(1995, pp. 262~264)给出了对层次结构的初步讨论。
Ferguson(1992a)关于Touring机的最好参考书。
Ferguson(1992b, 1995)更易理解的参考资料。
Muller(1997)对InteRRaP最权威的参考书。
Fischer(1996)也是有用的参考资料。
Brooks(1986)的归类式结构,Bonasso etc.(1996)的3T结构,是层次结构的其他例子。
关于归类式结构
Brooks(1986)关于归类式结构的第一篇论文,也是引起轰动的论文。
Ferber(1996)描述和讨论部分的基础。
Brooks(1990, 1991b)都更激进。
Maes(1990a),Agre and Rosenschein(1996)这两本论文集都包含了一些其他反应式结构的文章。
Nilsson(1992)远程反应式程序。
Schoppers(1987)决策树。
Firby(1987)反应式动作包。
其他类似结构
Kaelbling(1986)提供了一个在有限的资源下研究理性Agent的很好的讨论,并提出了一种与Brooks研究的结构有些相似的Agent结构。
对反应式结构的批评
Ginsbery(1989)基于缓存规划,对反应式Agent结构提出了批评。
Etzioni(1993)对Brooks宣称的智能Agent必须位于“真实世界”中的观点提出了批评。他指出,软件环境(例如计算机操作系统和计算机网络)能够提供一个挑战性的可以使Agent在其中工作的环境。
5.4.1 课堂阅读:Brooks(1986)
书上原文如下:
这是一篇煽动性的、吸引人的、充满了丰富思想的文章。将其与Brooks以后的(更有争
议的)文章比较,是一件很有意义的事。
习题
1.[2级]
用Brooks的归类式结构的方法求解第3章描述的真空吸尘器的例子。与基于逻辑的例子比较结果如何?
2.[2级]
用第3章描述的基于逻辑的方法求解探测火星的例子。与反应式的方法相比结果如何?
3.[3级]
自选程序设计语言,用归类式结构实现火星探测的例子(为了做到这一点,实现一个简单的归类式结构的“外壳”来编写不同的行为会很有帮助)。研究上面描述的两种方法的性能,看看你是否能做得更好。
4.[3级]
用模拟器实现前面的问题,分析当增加Agent的数量时会发生什么。最后,应该分析一下过度拥挤导致的次优解决方法——Agent花费更多的时间互相躲避以便工作。试着围绕这个问题,允许Agen.之间传递标本,以此实现链接(参见Ferber1996,p.305中的描述)。
原文地址:https://blog.csdn.net/m0_46948660/article/details/136340674
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!