本文主要是介绍理性Agent、任务环境,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
——参考文献《人工智能:一种现代的方法》(第3版)
一个agent与环境的互动(接受刺激,反馈行动):
所以人,机器等,都可以看作是一个agent:
注:softbots 维基百科解释为: In computer science, a software agent is a computer program that acts for a user or other program in a relationship of agency, which derives from the Latin agere (to do): an agreement to act on one's behalf. Such "action on behalf of" implies the authority to decide which, if any, action is appropriate. 意思是softbots是另一个人或者软件的代理。例如:Siri(它从别的地方收集信息并推给你)
如何判定一个agent是“优秀的”、“好的”?
显而易见的是,从它的行为判断。
以扫地机器人为例。有A、B两个方块,它需要做的是把方块清扫干净。我们假定环境地形已知(作为先验知识)、命令不会使它移出环境、它能正确感知灰尘的是否存在、灰尘的位置。我们给定奖惩机制(例如一定周期内某方块保持干净给1分等)。
这时它有几个选择:向左、向右、吸尘
(功能描述)
实际上,我们会发现情况比较复杂。
如果单从行为结果上考虑,可能会发现不同的扫地机器人在某时间段内行为结果是一样的,这意味着它们一样优秀吗?显然不一定。
所以这个时候用性能度量会更加客观。例如计算八小时内清理灰尘总量、或者每小时清理灰尘总量。
这时我们又会发现,可能一个机器人会不停的把灰尘清扫了再倒出来,以提高它清扫灰尘的总量,或者另一个在前几分钟之内清理完所有灰尘然后无所事事。
so,我们会希望一个agent 是理性的。
什么是理性的?A rational agent chooses whichever action maximizes the expected value of the performance measure given the percept sequence to date.
在现有环境序列下,一个理性的agent会做在规定的性能度量下利益最大化的事情。
理性,即探索,学习,自主性,
理性agent执行的结果不是完美的,但是当下环境最佳的。
what is 性能度量?
在构建一个理性agent时,首先考虑它所处的环境。(扫地机器人和自动驾驶仪当然需要不同的衡量标准)
任务环境的描述,称为PEAS描述:Performance(性能)、 Environment(环境)、 Actuators(执行器)、 Sensors(感知器)
来定义几个维度吧!
完全可观察与部分可观察
单Agent与多Agent(竞争、合作、部分竞争部分合作。例如国际象棋【竞争性的多Agent】和无人驾驶【部分竞争,比如停车位;部分合作,比如避免发生冲撞】)
确定与随机(确定:环境的下一个状态完全取决于此时的状态和Agent的动作。注意!:”不确定“和“随机”是两个概念。不确定:环境中行动有多种可能,但与概率无关【走在路上被花盆砸中】。随机:后果是不确定的但是可以用概率量化【抛一个硬币你不知道它落下来朝哪面】)
片段与延续(片段的环境中当前决策不会影响下一个片段的决策)
静态与动态(静态、动态、半动态。半动态:环境本身不随时间变化而变化,但是Agent的性能评价随时间变化【国际象棋,就算它不动但是时间在变化,它的性能评价也随之变化】)
离散与连续(环境的状态、时间的处理方式、Agent的感知信息与行动【国际象棋的环境、感知信息与行动是离散的;自动驾驶的时间和状态连续;】)
已知与未知(Agent的知识状态。注意 “已知/未知” 和“可观察/不可观察” 也是两个概念)
这篇关于理性Agent、任务环境的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!