《人工智能:计算Agent基础》——2.2 Agent系统

简介:

本节书摘来自华章计算机《人工智能:计算Agent基础》一书中的第2章,第2.2节,作者:(加)David L.Poole,Alan K.Mackworth 更多章节内容可以访问云栖社区“华章计算机”公众号查看。

2.2 Agent系统


6e439091a20b196f003530339e815f6b1bf82f9e

图2-1展示了Agent与环境的一般交互过程,该图所示整体即是我们所说的Agent系统。44
一个Agent系统是由Agent和其所在环境构成。Agent接收环境中的刺激,然后做出相应动作。
一个Agent由主体(body)和控制器(controller)两部分组成。控制器从主体处接收感知,然后将命令送至主体处。
主体包括传感器和执行器,传感器将外部刺激转化为感知,执行器能将命令转换成动作。
刺激包括光、声音、键盘上输入的单词、鼠标移动或者物理冲击,也包括从网页或者数据库中获取的信息。
常见的传感器包括触摸传感器、相机、红外传感器、声呐、麦克风、键盘、鼠标或者通过网页来抽取信息的XML阅读器。作为原型传感器,相机感知进入它的光束,将其转换成亮度数值的二维数组,称为像素。有时会使用多维像素数组来表示不同的颜色或者满足多镜头相机的需求。这些像素数组可被控制器感知。而更多的时候,感知对象通常有着更高层的特征,如线、边或深层次的信息。通常来说,接收的都是特定信息,如明亮的橙色圆点的位置,学生关注的演出部分或者人们打出的手势信息。
动作一般包括转向、加速、移动关节、讲话、展示信息或者向某一网址发送邮件的命令。命令又包括低级命令(如将发动机的电压设定为某个数值)和高级命令(如令一个机器人进行某些运动,例如“停止”,“以1m/s的速度向正东方向运动”或者“到103房间去”)。执行器同传感器类似,都包含噪声。例如,停止是需要时间的;机器人在物理规则下运动,所以具备动量,且信息传递需要时间。机器人也许最终只是以接近1m/s的速度运动,45接近正东方向,且速度和方向都是不断波动的,甚至运动到某一指定房间的行为可能会由于各种原因而失败。
控制器是Agent的大脑,本章的剩余部分将主要讨论如何构建一个控制器。
Agent的功能
Agent应构建为实时性的:应能即时接收传感器信息,并即时做出反应。特定时刻的Agent动作是其输入的函数。我们首先考虑时间的概念。
设T为时间点集合,假定T有序,且任意两个时间点的时序距离均可测定。大体上,我们设定T可以映射到实线上的一些子集。
若任意两个时间点间仅存在有限个时间点,则称T是离散的,如每一天或1/100秒有一个时间点,或者有趣事件发生的时刻也可以是时间点。但如果T中任意两个时间点间都存在另一个时间点,则认为T是稠密的,这表明T中的任意两个时间点间存在无限多个时间点。离散时间存在如下特征:除了最后时间点,其他任何时间点均存在下一时间点。而稠密时间则无“下一时间点”。我们将时间初始化为离散的,且没有尽头。因此每个时间点都存在下一时间点。我们令t+1为时间点t的下一时间点,但这并不代表时间点之间是等间隔的。
假定T有初始时间点,我们这里称其为0。
假定P为所有可能感知对象的集合。一个感知轨迹或者一个感知流则为一个从T到P的函数,它描述了每一时间点所观察到的事物。
假定C是所有命令的集合。 图2-2 例2-1的感知轨迹 图2-3 例2-1的命令轨迹47一个命令轨迹为从T到C的函数,其代表在每个时间点的命令。
【例2-1】 我们来考虑一个家居交易Agent,它监控着多种家居用品价格(如它监视着某些特定交易,并记录卫生纸的涨价情况)及家中相应存量。它必须决定是否购进某物及在何种价格时购进。感知对象为当前商品价格及家中存量。命令为Agent决定购买的各类商品的数量(若不购进则数目为0)。感知轨迹描述了每个时间点(如每天)的商品价格和库存数量,如图2-2所示。命令轨迹描述每个时间点Agent购进的商品数量,如图2-3所示。
实际购入动作依赖于命令,但有可能有所不同。如Agent发出一条以某一特定价格购入12卷(1打)卫生纸的命令,但并不意味着Agent实际购入了12卷卫生纸,因为可能由于网络通信问题,仓库中的卫生纸已卖完,或者在决定买和实际买之间时价格已经46发生变动。
一个Agent的感知轨迹是控制器在过去、现在和将来接收到的所有感知信息的序列。命令轨迹则是控制器在过去、现在和将来发出的所有命令信息的序列。命令可以是历史感知的函数。这就产生了转换的概念,从感知轨迹映射到命令轨迹的函数。
因为所有的Agent都处于时间流中,所以Agent不能真正地观察到全部感知序列;在任意时刻,它只能观察到截至现在的感知轨迹。在t(t∈T)时刻只能观察到t时刻及其之前的信息流。其命令只能根据其经验来决定。
转换过程是有因果联系的,如果对于所有时刻t,在t时间的命令都仅由t和其之前的感知信息决定。因果限制是必需的,因为Agent处于时间流中,所以t时刻的命令不可能依靠t之后的感知信息。
控制器完成因果转换的具体实现。
Agent在时间t的历史包括其在t时刻和之前的感知流和在t时刻和之前的命令流。
因此,一个因果转换可看做是从Agent在t时刻的历史到其在t时刻发出的命令的函数。这可被认为是Agent的最规范描述。
【例2-2】 继续例2-1的情况,一个因果转换可认为,对于任意时刻,Agent需要购买多少日用品取决于历史价格、历史库存量(包括时下价格和现有库存)及过往购买历史。
因果转换的示例如下:当库存量低于5打且价格低于过去20天的平均价格的90%时则购买4打;若库存量低于1打时购进1打;其他情况下不购进。
尽管因果转换是用户历史的函数,但其不能直接实现,因为Agent不能直接获得它们的全部历史信息,它只能获得当前的感知信息和它仍能记住的信息。
一个Agent在时间t时的信念状态是其所能记住的所有以前时间的信息的总和。Agent只能获取其存在信念状态中的历史。因此信念状态蕴含了其现在和将来命令所能用到的所有历史信息。在任何时间,Agent都能访问其信念状态和感知信息。
信念状态可以包含任何信息,仅受制于其存储器大小和处理能力限制。这是信念的一个非常普通的定义;有时我们会使用信念的一个更特别的定义,如Agent的信念是关于世界上哪些为真,或是关于环境的动态改变,或是关于其在未来会做什么。
一些信念状态的实例如下所示:
  • 有固定顺序指令队列的Agent的信念状态可能是一个程序计数器,记录着该序列的当前位置。48
  • 信念状态可能包含有用的特定事实,例如,传送机器人在何处放下包裹去找钥匙,或者它找钥匙时已经去过的地方,记住任何当前无法立即观察却相对稳定的信息对Agent是有用的。
  • 信念状态可以编码成一个模型或者整个世界状态的部分模型。Agent可以保留其对于当前世界状态的最佳猜测,也可以是可能世界状态的一个概率分布,详情内容见5.6节和第6章。
  • 信念状态可以是世界的动态表示、感知的意义,Agent可以使用其感知来判断世界中什么是正确的。
  • 信念状态可以编码为Agent的愿望、它需实现的目标、它关于世界的信念、它的意图或者为了实现目标而准备实施的步骤。当Agent行动和观察世界时,这些能被维持,例如,移除已经达成的目标或当发现更适合的步骤时改变意图。

控制器必须保存Agent的信念状态并决定每个时刻发出何种命令。当它做这些时,它应该获得的信息需包括自身信念状态和当前感知。
离散时间下的信念状态转换函数可表示为
remember:S×P→S
其中,S是信念状态集,P是可能认知的集合;st+1=remember(st,pt)表示状态st+1是在信念状态st之后观察到pt得出的信念状态。
指令函数可表示为
do:S×P→C
其中,S是信念状态集,P是可能认知的集合,C是可能指令的集合;ct=do(st,pt)表示当前的信念状态为st,观察到pt时控制器需要发出的指令ct。
信念状态转换函数和指令函数一起描述了Agent的因果转换过程。可以发现,因果转换是Agent历史的函数,Agent不必访问历史,但指令函数是Agent信念状态和认知的函数,这两个是Agent必须要访问的。
【例2-3】 为了实现例2-2中的因果转换,控制器必须跟踪过去20天内的价格。通过使用均值(ave)的跟踪数值,可以更新均值
ave∶=ave+(new-old)/20
其中,new是最新时刻的价格,old指记住的最早时刻的价格,它在使用后立即会被丢弃。其中最初20天的数据将会做一些特殊处理。49
为了使控制器更加简单,其不需记忆过去20天的历史来获取平均值,而改为仅存储平均值,并使用平均值来替代最早价格。信念状态便仅包含一个数据(ave)。更新平均值的状态转换函数为
ave∶=ave+(new-ave)/20
这个控制器很容易实现,对于在过去20个时间单位之前发生的变化不敏感。这种保留平均估计值的方法是强化学习中的时间差分法的基础。
如果仅存在有限的可能信念状态,控制器可被称为有限状态控制器或者有限状态机。因素化表达是指信念状态、感知和命令均由特征来定义。如果存在有限特征,且每个特征仅存在有限种可能的取值,那控制器就是一个因素化有限状态机。更全面的控制器可以采用无限数量的特征或特征取值来构建。一个有可数状态的控制器可以计算任何图灵机可计算的问题。

相关文章
|
26天前
|
存储 人工智能 自然语言处理
AI经营|多Agent择优生成商品标题
商品标题中关键词的好坏是商品能否被主搜检索到的关键因素,使用大模型自动优化标题成为【AI经营】中的核心能力之一,本文讲述大模型如何帮助商家优化商品素材,提升商品竞争力。
AI经营|多Agent择优生成商品标题
|
24天前
|
人工智能 监控 物联网
深度探索人工智能与物联网的融合:构建未来智能生态系统###
在当今这个数据驱动的时代,人工智能(AI)与物联网(IoT)的深度融合正引领着一场前所未有的技术革命。本文旨在深入剖析这一融合背后的技术原理、探讨其在不同领域的应用实例及面临的挑战与机遇,为读者描绘一幅关于未来智能生态系统的宏伟蓝图。通过技术创新的视角,我们不仅揭示了AI与IoT结合的强大潜力,也展望了它们如何共同塑造一个更加高效、可持续且互联的世界。 ###
|
27天前
|
数据采集 人工智能 自然语言处理
万字干货|复杂表格多Agent方案:从LLM洞察、系统性 思考到实践经验总结
笔者结合实践经验以近期在负责的复杂表格智能问答为切入点,结合大模型的哲学三问(“是谁、从哪里来、到哪里去”),穿插阐述自己对大模型的一些理解与判断,以及面向公共云LLM的建设模式思考,并分享软件设计+模型算法结合的一些研发实践经验。
|
24天前
|
机器学习/深度学习 人工智能 算法
基于Python深度学习的【垃圾识别系统】实现~TensorFlow+人工智能+算法网络
垃圾识别分类系统。本系统采用Python作为主要编程语言,通过收集了5种常见的垃圾数据集('塑料', '玻璃', '纸张', '纸板', '金属'),然后基于TensorFlow搭建卷积神经网络算法模型,通过对图像数据集进行多轮迭代训练,最后得到一个识别精度较高的模型文件。然后使用Django搭建Web网页端可视化操作界面,实现用户在网页端上传一张垃圾图片识别其名称。
71 0
基于Python深度学习的【垃圾识别系统】实现~TensorFlow+人工智能+算法网络
|
24天前
|
机器学习/深度学习 人工智能 算法
基于深度学习的【蔬菜识别】系统实现~Python+人工智能+TensorFlow+算法模型
蔬菜识别系统,本系统使用Python作为主要编程语言,通过收集了8种常见的蔬菜图像数据集('土豆', '大白菜', '大葱', '莲藕', '菠菜', '西红柿', '韭菜', '黄瓜'),然后基于TensorFlow搭建卷积神经网络算法模型,通过多轮迭代训练最后得到一个识别精度较高的模型文件。在使用Django开发web网页端操作界面,实现用户上传一张蔬菜图片识别其名称。
67 0
基于深度学习的【蔬菜识别】系统实现~Python+人工智能+TensorFlow+算法模型
|
2月前
|
Python 机器学习/深度学习 人工智能
手把手教你从零开始构建并训练你的第一个强化学习智能体:深入浅出Agent项目实战,带你体验编程与AI结合的乐趣
【10月更文挑战第1天】本文通过构建一个简单的强化学习环境,演示了如何创建和训练智能体以完成特定任务。我们使用Python、OpenAI Gym和PyTorch搭建了一个基础的智能体,使其学会在CartPole-v1环境中保持杆子不倒。文中详细介绍了环境设置、神经网络构建及训练过程。此实战案例有助于理解智能体的工作原理及基本训练方法,为更复杂应用奠定基础。首先需安装必要库: ```bash pip install gym torch ``` 接着定义环境并与之交互,实现智能体的训练。通过多个回合的试错学习,智能体逐步优化其策略。这一过程虽从基础做起,但为后续研究提供了良好起点。
162 4
手把手教你从零开始构建并训练你的第一个强化学习智能体:深入浅出Agent项目实战,带你体验编程与AI结合的乐趣
|
2月前
|
人工智能 API 决策智能
swarm Agent框架入门指南:构建与编排多智能体系统的利器 | AI应用开发
Swarm是OpenAI在2024年10月12日宣布开源的一个实验性质的多智能体编排框架。其核心目标是让智能体之间的协调和执行变得更轻量级、更容易控制和测试。Swarm框架的主要特性包括轻量化、易于使用和高度可定制性,非常适合处理大量独立的功能和指令。【10月更文挑战第15天】
289 6
|
3月前
|
机器学习/深度学习 人工智能 算法
植物病害识别系统Python+卷积神经网络算法+图像识别+人工智能项目+深度学习项目+计算机课设项目+Django网页界面
植物病害识别系统。本系统使用Python作为主要编程语言,通过收集水稻常见的四种叶片病害图片('细菌性叶枯病', '稻瘟病', '褐斑病', '稻瘟条纹病毒病')作为后面模型训练用到的数据集。然后使用TensorFlow搭建卷积神经网络算法模型,并进行多轮迭代训练,最后得到一个识别精度较高的算法模型,然后将其保存为h5格式的本地模型文件。再使用Django搭建Web网页平台操作界面,实现用户上传一张测试图片识别其名称。
138 22
植物病害识别系统Python+卷积神经网络算法+图像识别+人工智能项目+深度学习项目+计算机课设项目+Django网页界面
|
3月前
|
机器学习/深度学习 人工智能 算法
鸟类识别系统Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+ResNet50算法模型+图像识别
鸟类识别系统。本系统采用Python作为主要开发语言,通过使用加利福利亚大学开源的200种鸟类图像作为数据集。使用TensorFlow搭建ResNet50卷积神经网络算法模型,然后进行模型的迭代训练,得到一个识别精度较高的模型,然后在保存为本地的H5格式文件。在使用Django开发Web网页端操作界面,实现用户上传一张鸟类图像,识别其名称。
114 12
鸟类识别系统Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+ResNet50算法模型+图像识别
|
2月前
|
机器学习/深度学习 人工智能 算法
打造你的超级Agent智能体——在虚拟迷宫中智斗未知,解锁AI进化之谜的惊心动魄之旅!
【10月更文挑战第5天】本文介绍了一个基于强化学习的Agent智能体项目实战,通过控制Agent在迷宫环境中找到出口来完成特定任务。文章详细描述了环境定义、Agent行为及Q-learning算法的实现。使用Python和OpenAI Gym框架搭建迷宫环境,并通过训练得到的Q-table测试Agent表现。此项目展示了构建智能体的基本要素,适合初学者理解Agent概念及其实现方法。
103 9