- ARM嵌入式系统开发完全入门与主流实践
- 封景刚 吴宝江编著
- 3508字
- 2020-08-28 10:44:58
2.9 智能化用户界面
智能化用户界面是将人工智能技术融入到用户界面中去的产物。现在比较成熟的智能化用户界面技术有语音输入、手写识别,而正在蓬勃兴起的是利用Agent技术对用户界面的改造和提升。
人工智能的最新发展动向是分布式Agent,并且开始出现利用Agent理论对传统人工智能技术进行统一和改造的尝试,例如,利用Agent概念将人工智能的主要分支如问题求解、推理和学习等的描述统一起来,从而改变了传统人工智能技术各分支老死不相往来的局面。因此,本章只讲述Agent技术,以及它与用户界面的结合,看看它是怎么使得用户界面更智能化、人性化,从而为用户使用计算机带来极大的便利的?
2.9.1 Agent技术
Agent的概念首次出现在Minsky1986年出版的“思维的社会(The Society of Mind)”中,Minsky认为社会中的某些个体经过协商可求得问题的解,这些个体就是Agent,可根据一定的规则组成一个多Agent系统(MAS)。他还认为Agent是具有技能的个体(1994),Agent应当具有社会交互性和智能性。
此后,人们对Agent的理解真是见仁见智,比如,Hewitt认为定义Agent与定义智能一样困难,Wooldridge和Jennings认为Agent应具有自主性、社会交互性、反应能力。从Agent模型角度来看,有思考型Agent(如BDI表示推理)、反应型Agent(不会推理,感知-动作)和两者混合型。
Agent理论的研究方法主要有逻辑方法和经济学方法,此外还有混沌学方法。自Hintikka关于Knowledge和Belief做出的先驱性工作以来,在描述Agent推理方面已经做了许多工作。在刻画组成Agent思维状态的各元素间的关系方面的代表是Cohen和Levesque的Intention理论,尽管他们在这方面取得了很大进展,但仍有一些基本的问题存在。
首先,与可能世界语义有关的问题还不能被认为已经得到了解决,如逻辑全知问题。可能世界语义被许多研究者采用,但它一般来说不能表示现实世界有限资源的Agent模型。一个解决方法是Rosenschein和Kaelbling的情景自动机方法,然而,还不知道怎样用这种方法去描述Desire和Intention,尽管人们做过一些努力。
在那些描述了不同意识属性的逻辑中,也许最重要的问题与Intention有关,即对于Intention和Action之间的关系没有很满意的解释。关于用那些意识属性来刻画Agent也是有争论的,目前一种流行的方法是使用Beliefs、Desires和Intentions的组合(即BDI结构)。
一般来说,Agent理论中使用的逻辑包含了多个相互间有复杂关系的模态词,所以难以在这样的逻辑上展开Agent理论的研究。关于Agent理论的地位还有一些争议,一些研究者认为Agent理论是用来描述Agent的Specification,有的认为Agent理论是用于知识表示方面的,还有的认为是对认知科学和哲学中的一些概念进行形式化。
对于Agent理性的研究有基于逻辑和基于对策论的两种基本方法。在哲学上,认为合乎逻辑的是理性的,为此提出了各种逻辑体系,定义了公理系统和推理规则,以此来证明一些特定的命题是否成立。认为一个合理的行为可从当前的信念合乎逻辑地推导出来,这就是逻辑理性,对于思维状态模型的研究大都属于这一流派。另一种方法是采用对策理论和决策理论,其信念模型是描述如果采用一个行动将会发生什么,并为每个后果都赋予概率。愿望模型是用实数表示那些可能状态的效用,一个合理的行动是使得期望效用最优化的行动,这需要依据信念和愿望通过概率计算得到,这就是效用理性。从概念角度来看,逻辑方法实现了理性的推理,决策理论方法通过最优化主观效用实现了理性的决策。从技术角度看,使用符号推理的逻辑理性无法使效用最优化,而使用数值分析的决策论理性也忽略了推理环节。对于一个处于动态环境中资源有限的Agent来说,既需要对世界进行推理也需要做出获得最大收益的合理决策。
此外,随着复杂系统理论的研究和发展,人们开始逐渐考虑借助复杂系统理论来研究如何实现Agent的智能。这其中比较典型的就是Agent的混沌学研究方法。从本质上讲,Agent应该是非线性的,因为从复杂系统论的观点看,只有非线性才能表现出相当的智能行为。Agent的混沌学研究方法通过研究Agent的行为轨迹来研究其智能本质,使用这种方法可以比较容易地对Agent本质达到全局性的把握,并且它可能成为Agent理论模型向实际应用转化的一个中介。
就Agent理论整体来说,需要融合这3个流派的研究成果。
1.Agent的逻辑学方法
Agent的逻辑学方法的首要任务是要确定Agent的思维状态模型,也就是说,Agent的逻辑学方法首先认定Agent是一个思维机器。
现在在Agent的逻辑学方法研究中,Agent思维的BDI模型影响比较大。所谓BDI模型是指Agent的思维模型,包括3 个基本要素,即信念(Belief)、愿望(Desire)和意图(Intention),并以这个为基础,展开了对这3个要素的语义和相互关系的研究。
虽然针对BDI思维模型的研究已经初见成效,但是仍然存在理论与实践相脱节的问题,主要表现在以下两个方面。
● 所使用的逻辑描述和实际系统结构之间缺乏清晰的关系,特别是,可能世界模型对于实现系统过于抽象。
● 这些逻辑描述对Agent的推理能力都做了不现实的设定,所以,BDI思维模型还很难对技术实践起到真正的指导作用,它仍然还是人工智能专家实验室里的玩具。
2.Agent的经济学方法
20世纪80年代中期开始出现的Agent经济学研究方法以Agent的自利性和效用理性为前提,采用对策论等方法对Agent展开了广泛而深入的研究。
经济学研究的核心对象之一是市场,市场的基本组成包括物品、交易者、消费者、生产者和市场规则等因素。市场的最优状态是竞争平衡,这也是所有Agent都满意的状态。这些对阐述多Agent系统(MAS)的宏观理论提供了简洁的方式,也颇有说服力。但经济学成果的许多理论前提过于理想化,比如经济学的许多研究往往对个体内部结构的阐述较为简单化,追求设计的机制具有“激励相容性”,即个体不必经过深思熟虑只要坦诚相待,那么个体和群体的性能就都会达到最优化。信息完备的理论前提意味着每个个体都有“完美理性”,而在实际中是不可能达到的。MAS研究的重要前提之一就是Agent的“有限理性”,Agent的计算能力、掌握的信息等各不相同,这是符合现实的,也体现出MAS宏观理论与经济学/社会学的深刻差别。但经济学的许多成果仍值得MAS研究者借鉴并有必要在不同的理论前提下进行重新考察。
3.Agent的混沌学方法
随着Agent理论的发展,人们逐渐认识到Agent本身的非线性本质,结合非线性理论的研究和发展,开始出现Agent理论的混沌学研究方法。
Agent理论的一个关键之处就是试图把握一个目的性,即Agent所做的一切都是为了实现某个或某些既定目标。再对这个理论进行细化,就会发现其中所隐含的优化问题。理性Agent总是被描述为采取各种行动来最大限度地实现其既定目标。要实现这个目的和最优化,就需要赋予Agent某种适宜的结构,包括思维和意图等方面。在这方面的一个典型的例子就是将Agent看成是意愿(Wishing)、信念(Knowing)、喜好(Liking)和意图(Intention)的统一体。
一般来讲,信念刻画的是Agent对世界的认识;喜好则是表现Agent自身希望世界是什么样子的;意愿描述的是Agent对实现某个目标的承诺;意图所表述的是Agent对某个行为或动作的承诺。从混沌动力学观点来看,Agent的思维状态有了新的解释(表2-7)。Agent的动力学研究方法的一大优点就是能够很容易地实现Agent理论和具体实现之间的平滑过渡,唯一不足的地方就是复杂系统动力学理论仍然还处于起步阶段,需要有充分成熟的成果之后才能真正对Agent技术的实现起到指导作用。
表2-7 Agent思维状态的动力学解释
2.9.2 Agent技术与用户界面的结合
尽管说Agent理论的研究仍然处于众说纷纭、莫衷一是的局面,但IT界在Agent技术的实践方面已经走了很长时间,充分体现了计算机行业的一个显著特征,就是“干了再说”。Agent技术与软件技术的结合成就了软件Agent的出现。软件Agent作为Agent技术的软件实现,能够按照某个用户或者其他软件模块的意愿实现一定的功能。软件Agent技术正逐渐渗透到计算机日常使用的方方面面,对软件Agent从功用角度分类可以分为桌面Agent(Desktop Agent)、互联网Agent(Internet Agent)、企业网Agent(Intranet Agent)等。每一种Agent都不可避免地会提高用户界面的智能化程度。而我们在这里主要介绍Agent技术与用户界面结合的典型范例,即桌面Agent。
桌面Agent主要是用户界面Agent,可分为3类,一类是操作系统Agent;第二类是应用程序Agent;第三类是应用程序组Agent。这3类Agent分别在用户使用操作系统、某个特定的应用程序或某组应用程序时起到一些辅助性作用,从而提高用户界面的智能化和人性化,提高用户的工作效率。
1.操作系统Agent
操作系统Agent(图2-15)有两种,一种是操作系统智能化工具,它用于监视操作系统及事件的发生并按照用户的调度安排执行一系列涉及到系统服务的任务;另一种是操作系统用户界面Agent,它将Agent技术引入到操作系统用户界面主要是图形用户界面中并与之相结合,为用户开始和完成某个任务操作提供了友好的用户界面。表2-8 给出了操作系统Agent的属性模型。
表2-8 操作系统Agent的属性模型
图2-15 操作系统Agent
2.应用程序Agent
应用程序Agent可以作为某个特定应用程序的一部分,也可以独立于该应用程序。它主要执行一些需要用户与应用程序交互的任务,以推动任务进程的自动化。表2-9 给出了应用程序Agent的属性模型。
表2-9 应用程序Agent的属性模型
3.应用程序组Agent
应用程序组Agent和应用程序Agent比较类似,只是这里与Agent发生关系的对象不再是应用程序而是一组应用程序。