STRUCTURE OF AGENTS

翻译 2017年03月08日 10:36:23

AI 的任务是设计一个实现了 “agent 功能”的 “agent 程序”,它的目的是做“感知”到“行动”的映射关系。假设这个程序运行在某些具有物理感应器和行动器的计算设备上,我们称之为 architecture
agent = architecture + program

显然,我们选择的 program 要适合这个 architecture ,如果 program 的行动是行走,那么 architecture 得有腿。architecture 可以是普通PC,或者一个有计算功能、感应器,摄像头的机器车。一般来说,architecture 让感应器的感知对 program 可用,然后运行 program,然后取出 program 的 action 到 actuators。

agent programs 的骨架基本相同:从sensor取得当前感知作为输入,返回 action 到 actuator。
还有coroutines的agent program,在环境中异步运行,每个coroutine都有一个输入和输出端口和一个循环,这个循环从输入端口读取感知然后向输出端口写入action。

“agent program”与“agent function”的不同是“agent program”只取当前的感知,而“agent function”取得整个感知历史。“agent program”只取当前的感知作为输入的原因是当前环境中也没有更多了。如果”agent function”需要依赖于整个感知序列,则需要记录感知。

这里有4种基本的agent program种类,体现了几乎所有智能系统的底层原理:

  • 简单的反射agent
  • 基于模型的 反射agent
  • 基于目标的agent
  • 基于实用性的质量的agent

简单的反射agent
这里写图片描述
基于当前的感知选择action,而无所谓其余的感知历史。比如前面的车停了,我也停车,这种叫做 condition–action rule或者说 if–then rules,写作 if car-in-front-is-braking then initiate-braking。
这种agent只有在环境是完全可见的情况下才能成功。
在部分可见的环境中,无限循环通常是不可避免的,如果可以随机化agent的action,则可以跳出无限循环。

基于模型的 反射agent
这里写图片描述
可以用model-based reflex agent处理部分可见的环境。
agent应该维护一些内部模型,这些内部模型依赖于感知历史,以及当前状态的不可见方面的一些反映。感知历史与action在环境上的影响可以由内部模型决定,而后像简单反射agent那样选择一个action。

把问题打碎,内部状态并不需要是多方面的,只需要摄像头的上一帧画面,让agent可以探测什么时候车边上的两个红灯持续亮或同时熄灭。对于其他的驾驶任务,比如改变航道,agent需要持续关注其他车辆在哪。还有,agent需要持续关注车钥匙在哪,以便能把车启动。

随着时间变化更新内部状态的信息需要在agent program中有两种知识:1,需要有关环境如何独立于agent变化的信息。2,需要agent自己的行动如何影响环境的信息。

这种关于“世界如何运转”的信息叫做“这个世界的model”。使用这个model的agent叫做model-based agent

基于目标的agent
这里写图片描述
goal-based agent扩展了model-based agent的功能,goal信息描述了可取的情形,让agent在多个可能性中做出选择,选出那个能够到达目标状态的。涉及到AI的子领域:搜索规划,以找到一个达到目标的action序列。

这种agent更灵活,因为支持其决定的知识是显式表示的,而且是可以修改的。

有时候知道当前的环境的状态也不能够决定要做什么,比如堵车时,车可以左转或右转,或直行,正确的决策取决于车要去哪里。换句话说,像当前的状态描述一样,agent需要一些goal信息,用于描述可取的情况,比如到乘客的终点。agent program 可以把它与model-based 反射agent组合起来选择action以完成目标。

基于实用性的质量的agent(utility based agent) utility == quality of useful
这里写图片描述
goal-based agent 只区分了 目标状态 和 非目标状态,其实可以定义某个特殊状态有多么可取的程度。这个程度可以通过utility function获取,而这个utility function将一个状态映射到状态的utility的程度上。

在大多数环境中,goal不能够生成高质量的行为。比如,很多个action序列可以到达目的地,但是有些更快,更安全,更便宜。goal只是单纯地划分“happy”或“unhappy”,而“happy”是不科学的,经济学家和计算机科学家使用utility代替。utility的意思是“实用性的质量”。

当goal有冲突时,只有部分可以达到(比如速度和安全),agent 的 utility function 会做权衡。
当所有goal都达不到时,agent 的 utility function 提供一种方式衡量goal成功的可能性,而不是goal的重要性。

一个 rational utility based agent 会选择能够最大化所期待的好的结果的action,也就是说,agent会根据每个结果的概率和utility权衡选择。utility based agent需要model并跟踪其环境,要做的足够好,涉及到perception, representation, reasoning, 和 learning。

learning agent

这里写图片描述

learning agent 可以让agent在未知环境中运行,而且可以变得更有能力。

learning agent 可以分成4块:learning element,负责改进。performance element,负责选择外部的action。learning element 从 critic 获取action的反馈以便决定如何改进。problem generator 负责建议能够带来新的且有信息量的经验的action。

zabbix搭建总结

系统介绍:Server端和agent端都是使用的是zabbix2.4版本的监控,debian7 linux系统 Server端部署步骤介绍: 1.下载及安装 # wget http:...
  • gongdaxuesheng
  • gongdaxuesheng
  • 2015年07月27日 10:16
  • 458

Dialogue and Conversational Agents

人类会话的属性交替会话的规则: 如果现在的说话者指定 A 为下一个说话者,那么 A 会成为下一个说话者 如果现在的说话者没有指定下一个说话者,任何一个人都可能成为下一个说话者 如果没人接话茬,现在的说...
  • riverflowrand
  • riverflowrand
  • 2016年10月23日 15:55
  • 277

FCC----------- Binary Agents

传入二进制字符串,翻译成英语句子并返回。二进制字符串是以空格分隔的。首先把二进制数进行分割存放到数组当中,然后再把二进制数字转化为十进制数字,再根据字符对应的十进制编码,把相应的十进制数转化为字符。...
  • tian_123456789
  • tian_123456789
  • 2017年08月24日 15:42
  • 166

Agents

Agents An agent is an animate entity that is capable of doing something on purpose. That definiti...
  • pauldlx
  • pauldlx
  • 2012年03月05日 11:13
  • 90

nutch1.4中“Nutch Fetcher: No agents listed in ‘http.agent.name’ property”错误解决方法

网络上大多解释是:在{nutch}/conf下找到nutch-default.xml 如果一开始的属性设置为: >      > http.agent.name>      > >  ...
  • chaishen10000
  • chaishen10000
  • 2012年01月07日 13:06
  • 2832

RID Agents

https://github.com/RSAIntelShare/RID-Server https://github.com/MITRE-RID-Agent/MITRE_RID_Agent
  • cnbird2008
  • cnbird2008
  • 2015年11月08日 01:12
  • 917

FreeSWITCH - mod_fifo Off-hook Agent模式配置示例

在FreeSWITCH或者fs_cli的控制台下可使用此指令为队列增加或者删除一个座席。
  • Neohan
  • Neohan
  • 2014年09月27日 13:16
  • 864

Structure 和Class的比较

平时不注意,今天在网上看到这个标题,感觉自己也是搞不清楚,索性拿来学习了,不过他说的是C#中的区别,自己又找了找其他语言的区别,感觉面向对象语言中,两者的区别大同小异~下面要是有说的不对的地方,请多多...
  • yu444
  • yu444
  • 2010年11月13日 17:42
  • 2355

Data Structure: 图 (Graph)

图的定义: 图的组成元素是:顶点和边。对于有向图而言,还有方向。然而,图的最基本的要求是,顶点的结合一定是非空。不同于空链表和空树。并没有空图的说法。但边集可以是空。 一些定义: 1、简单...
  • Firehotest
  • Firehotest
  • 2016年12月07日 13:58
  • 478

Binary Agents

传入二进制字符串,翻译成英语句子并返回。二进制字符串是以空格分隔的。function binaryAgent(str) { //将二进制串str用空格分割成数组code var code=str...
  • kimihiro_41
  • kimihiro_41
  • 2017年06月26日 15:22
  • 56
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:STRUCTURE OF AGENTS
举报原因:
原因补充:

(最多只允许输入30个字)