- AI:人工智能的本质与未来
- (英)玛格丽特·博登
- 1666字
- 2020-08-29 17:48:04
人工智能领域中的规划
在今天的人工智能领域中,规划的地位十分突出,尤其是在很多军事活动中。事实上,直到最近才在人工智能上支付大部分研究费用的美国国防部指出,在第一次伊拉克战争的战场上,他们在后勤保障方面省下的钱(利用人工智能规划)超出了其前期投入。
规划不仅限于人工智能:我们都在规划。请想想假期打包东西的情景。你必须找到所有要带的东西,但这些东西可能没有放在同一个地方。你可能还要买一些新东西(比如防晒霜)。你必须决定是把所有东西放一块儿(也许放在床上,也许放在桌子上),还是把每样东西都放在皮箱里。这个决定可能部分取决于你是否决定最后再放衣服,因为你怕把衣服弄皱。你是需要一个背包,还是要一个手提箱,或者两者都要,你如何取舍?
把规划用作人工智能技术的GOFAI程序员们考虑到了有意识的深思熟虑(基于神经网络的人工智能大不一样,因为它不模拟有意识的深思熟虑,详见第4章)。因为负责逻辑理论机(见第1章)和GPS的先驱们主要对人类推理心理学感兴趣。他们的程序基于被试主体为人的实验,要求被试人进行“有声思维”:一边做逻辑谜题,一边描述自己的思考过程。
现代人工智能规划程序并不那么依赖从有意识的内省中或实验观察中获得的想法。它们的规划比早期程序的规划要复杂得多,但基本思想一致。
一个规划列举出一系列在常规层级上表示的动作—— 一个最终目标、加上很多子目标和次级子目标……这样就不用一次性考虑所有的细节。在某一适当的抽象层级规划上可以修剪搜索空间内的搜索树,因此一些细节根本不需要考虑。有时,最终目标本身就是一个动作规划——可能是调度送向/运出工厂或战场的货物。有时候,它还是一个问题的答案,比如医疗诊断。
针对任何给定目标和预期情况,规划程序需要一个动作列表(即符号运算符),或多种动作类型(通过填写来源于问题的参数,可以将动作实例化),每个动作都能够作出一些相应的变化;针对每个动作,规划程序需要一组必要的前提条件(比较抓住某个东西,前提条件是这个东西必须是在手的可活动范围内);针对所需变化的优先次序和对动作的排序,规划程序需要启发法。如果程序要选定某个特定动作,它可能要设置一个新的子目标以满足前提条件。这个目标制定的过程可以一再重复。
通过规划,程序——或人类用户——可以发现已经做了什么动作,以及为什么这么做。“为什么”指的是目标的层次结构:做这个动作是为了满足那个前提条件,以实现这个子目标。人工智能系统通常采用“正向链接(推理)”和“反向链接(推理)”技术,来解释程序是如何找到解决方案的。这可以帮助用户判断程序的动作或建议是否恰当。
当前,一些规划程序拥有数万行代码,它们在无数层级上定义分层的搜索空间。这些系统通常与早期的规划程序大相径庭。
例如,大多数规划程序假定,并非所有的子目标都可以被独立处理(即问题可完全分解)。毕竟在现实生活中,某一个以目标为导向的行动所产生的结果都可能被另一个行动撤销。今天的系统能处理可部分分解的问题:它们独立处理子目标,但必要的时候,还可以做其他处理,以整合随之产生的各项子规划。
经典系统只能解决那些在完全可观察的、可确定的和有限的静态环境中出现的问题。但是,一些现代规划程序可以处理在部分可观察(即系统的“世界”模型可能不完整或不正确)和不确定的环境中出现的问题。在这些情况下,系统必须监控执行期间的变化情况,以在规划中,或在自己对于“世界”的“信念”中,作出适当改变。一些现代规划程序可以在很长一段时间内一直进行监控:它们可以根据环境变化,不断制定、执行、调整和舍弃目标。
其他许多开发领域已经取得了新进展,并且还在不断进步。所以,在20世纪80年代,一些机器人专家完全否决规划并转而青睐于“情境”机器人学(见第5章)的情况,着实让人惊讶,例如,目标和可能动作的内部表示等概念也被否决了。然而,在很大程度上,这种批评是不对的。批评者们自己的系统可能没有表示目标,但可能表示了其他东西,例如视网膜刺激和奖励。此外,即使是最先遭受此类批评的机器人技术,也常常需要规划以及纯粹的被动回应,例如,制造会踢足球的机器人。