目录
1. 简单反射型智能体(Simple Reflex Agent)
2. 基于模型的反射型智能体(Model-Based Reflex Agent)
4. 基于效用的智能体(Utility-Based Agent)
任何通过传感器(sensor) 感知环境(environment) 并通过执行器(actuator) 作用于该环境的事物都可以被视为智能体(agent) 。
我们使用术语感知( percept) 来表示智能体的传感器正在感知的内容。智能体的感知序列( percept sequence) 是智能体所感知的一切的完整历史。一般而言, 一个智能体在任何给定时刻的动作选择可能取决于其内置知识和迄今为止观察到的整个感知序列,而不是它未感知到的任何事物。通过为每个可能的感知序列指定智能体的动作选择,我们或多或少地说明了关于智能体的所有内容。从数学上讲,我们说智能体的行为由智能体函数( agent function) 描述,该函数将任意给定的感知序列映射到一个动作。
可以想象将描述任何给定智能体的智能体函数制成表格。对大多数智能体来说,这将是一个非常大的表,事实上是无限的(除非限制考虑的感知序列长度)。给定一个要进行实验的智能体,原则上,我们可以通过尝试所有可能的感知序列并记录智能体响应的动作来构建此表 a。当然,该表只是该智能体的外部特征。在内部,人工智能体的智能体函数将由智能体程序( agent program) 实现。区别这两种观点很重要,智能体函数是一种抽象的数学描述,而智能体程序是一个具体的实现,可以在某些物理系统中运行。
我们通过描述行为(即在任意给定的感知序列之后执行的动作)讨论了智能体。现在我们必须迎难而上来讨论智能体内部是如何工作的。人工智能的工作是设计一个智能体程序( agent program) 实现智能体函数,即从感知到动作的映射。假设该程序将运行在某种具有物理传感器和执行器的计算设备上,我们称之为智能体架构( agent architecture):
智能体 = 架构 + 程序
显然,我们选择的程序必须是适合相应架构的程序。如果程序打算推荐步行这样的动作,那么对应的架构最好有腿。架构可能只是一台普通 PC,也可能是一辆带有多台车载计算机、摄像头和其他传感器的机器人汽车。通常,架构使程序可以使用来自传感器的感知,然后运行程序,并将程序生成的动作选择反馈给执行器。
我们在设计的智能体程序都遵循相同的框架结构:它们将当前感知作为传感器的输入,并将动作返回给执行器。需要特别注意的是,智能体程序(仅将当前感知作为输入)与智能体函数(可能依赖于整个感知历史)之间存在显著差异。由于环境中没有其他可用信息,智能体程序别无选择,只能将当前感知作为输入。如果智能体的动作需要依赖于整个感知序列,那么智能体必须记住历史感知。
function Table-Driven-Agent(percept) returns 一个动作persistent: percepts,初始为空的序列
table,以感知序列为索引的动作表,初始为完全确定
将percept添加到percepts的末尾
action ← Lookup(percepts, table)
return action
每个新感知都会调用 Table-Driven-Agent 程序,并且每次返回一个动作。该程序在内存中保留了完整的感知序列。
然而,表驱动的智能体构建方法注定会失败,深入思考这一问题会很有启发性。设 P 为可能的感知集,T 为智能体的生存期(对应它将接收的感知总数),查找表将包含 PT 条记录。以自动驾驶出租车为例:来自单个摄像头(通常是 8 个摄像头)的视觉输入速度约为 70 MB/s(每秒 30 帧,每帧 1080 像素 × 720 像素,每个像素包含 24 位颜色信息),驾驶 1 小时后,将会生成一张超过 10600,000,000,000 条记录的表。即使是作为真实世界中微小的、表现良好的片段的国际象棋,其查找表也至少有 10150 条记录。相比之下,可观测宇宙中的原子数量少于 1080 个。这些表的巨大规模意味着:(a)这个宇宙中没有任何物理智能体有空间存储表;(b)设计者没有时间创建表;(c)任何智能体都无法从其经验中学习所有正确的记录。
尽管如此,假设表填充正确,Table-Driven-Agent 确实实现了我们想要的功能:它体现了所需的智能体函数。
人工智能面临的关键挑战是找出编写程序的方法,尽可能从一个小程序而不是从一个大表中产生理性行为。历史上有许多例子表明,在其他领域可以成功地做到这一点:例如,20 世纪 70 年代以前,工程师和学生使用的巨大平方根表格,现在已经被电子计算器上运行的仅有 5 行代码的牛顿方法所取代。现在的问题是,人工智能能像牛顿处理平方根那样处理一般智能行为吗?我们相信答案是肯定的。
在本文剩余部分中,我们将概述 4 种基本的智能体程序,它们体现了几乎所有智能系统的基本原理:
- 简单反射型智能体;
- 基于模型的反射型智能体;
- 基于目标的智能体;
- 基于效用的智能体。
1. 简单反射型智能体(Simple Reflex Agent)
简单反射型智能体是最基础的智能体类型,它仅根据当前感知直接选择动作,而不考虑历史感知或环境状态。其核心思想是通过“条件-动作”规则(即“如果感知到某种情况,则执行某个动作”)来做出决策。
工作原理:
输入:当前感知(传感器数据)。
处理:根据预定义的规则集,将感知映射到动作。
输出:执行动作。
优点:
简单、高效,适用于环境状态完全可观察且规则明确的情况。
计算开销低,适合实时系统。
缺点:
无法处理部分可观察的环境,因为它不记录历史感知。
缺乏灵活性,无法适应复杂或动态变化的环境。
示例:
真空吸尘器智能体:如果感知到当前位置有灰尘,则执行“吸尘”动作。
2. 基于模型的反射型智能体(Model-Based Reflex Agent)
基于模型的反射型智能体在简单反射型智能体的基础上,增加了一个内部模型,用于跟踪环境状态和历史感知。它通过模型推断当前环境状态,并基于此选择动作。
工作原理:
输入:当前感知。
处理:
使用内部模型更新环境状态。
根据当前状态和预定义规则选择动作。
输出:执行动作。
优点:
能够处理部分可观察的环境,因为它通过模型推断环境状态。
比简单反射型智能体更灵活,适用于更复杂的环境。
缺点:
需要维护和更新内部模型,增加了计算复杂度。
仍然依赖于预定义的规则,无法处理未知或动态变化的环境。
示例:
自动驾驶汽车:通过传感器感知周围环境,使用内部模型推断其他车辆的位置和速度,并决定加速、减速或转向。
3. 基于目标的智能体(Goal-Based Agent)
基于目标的智能体不仅考虑当前感知和环境状态,还明确地追求特定目标。它通过评估不同动作对实现目标的影响来选择最优动作。
工作原理:
输入:当前感知。
处理:
使用内部模型更新环境状态。
根据目标和当前状态,规划一系列动作以实现目标。
输出:执行最优动作。
优点:
能够处理复杂任务,因为它明确考虑了目标。
更具灵活性,能够适应动态变化的环境。
缺点:
计算复杂度较高,尤其是在目标复杂或环境状态空间较大的情况下。
需要明确的目标定义,可能无法处理模糊或多目标的情况。
示例:
路径规划机器人:目标是到达某个位置,智能体通过规划路径避开障碍物并选择最短路线。
4. 基于效用的智能体(Utility-Based Agent)
基于效用的智能体在基于目标的智能体的基础上,进一步引入了效用函数(Utility Function),用于评估不同状态或动作的“好坏”。它不仅追求目标,还试图最大化整体效用。
工作原理:
输入:当前感知。
处理:
使用内部模型更新环境状态。
根据效用函数评估不同动作的效用值。
选择效用值最高的动作。
输出:执行最优动作。
优点:
能够处理多目标或冲突目标的情况,因为它通过效用函数权衡不同目标。
更具适应性,能够处理不确定性和风险。
缺点:
设计和优化效用函数可能非常复杂。
计算开销较高,尤其是在状态空间较大的情况下。
示例:
投资机器人:目标是最大化投资收益,同时最小化风险。智能体通过效用函数评估不同投资组合的效用值,并选择最优方案。
总结对比:
智能体类型 | 核心特点 | 适用场景 | 局限性 |
简单反射型智能体 | 基于当前感知直接选择动作,无历史记录。 | 完全可观察、规则明确的环境。 | 无法处理部分可观察或复杂环境。 |
基于模型的反射型智能体 | 使用内部模型跟踪环境状态,基于状态选择动作。 | 部分可观察、动态变化的环境。 | 需要维护模型,计算复杂度较高。 |
基于目标的智能体 | 明确追求特定目标,规划动作以实现目标。 | 复杂任务、目标明确的环境。 | 目标定义需明确,计算复杂度较高。 |
基于效用的智能体 | 引入效用函数,权衡多目标或冲突目标,选择效用值最高的动作。 | 多目标、不确定性或风险较高的环境。 | 效用函数设计复杂,计算开销较大。 |
这四种智能体程序体现了智能系统设计的基本原理,从简单到复杂,逐步增加了对环境、目标和效用的考虑。在实际应用中,设计者需要根据具体任务和环境特点选择合适的智能体类型。
5、学习型智能体(Learning Agent)
学习型智能体是人工智能领域中一种具有重要意义的智能体类型,以下将从定义、组成结构、学习方法、应用场景等方面对其进行详细解析:
定义
学习型智能体是指能够通过与环境进行交互,从所获取的经验中学习知识,并利用这些知识来改进自身行为策略,以更好地实现特定目标的智能体。它具有自适应、自优化的能力,能够在不断变化的环境中逐步提高性能。
组成结构
感知器:负责从环境中获取信息,相当于智能体的 “感官”。例如在机器人智能体中,感知器可以是摄像头、麦克风、距离传感器等,它们收集图像、声音、距离等数据,为智能体提供关于环境状态的原始信息。
学习单元:是智能体的 “大脑” 核心部分,用于处理感知器获取的信息,运用各种学习算法对数据进行分析、归纳和总结,从中提取有价值的知识,并更新智能体的内部模型和行为策略。
执行器:根据学习单元确定的行为策略,执行相应的动作,对环境产生影响,如机器人的机械臂、车轮等,或者软件智能体在虚拟环境中执行的各种操作指令。
评价单元:对智能体的行为效果进行评估,根据设定的目标或奖励机制,判断智能体的行为是否朝着期望的方向发展,为学习单元提供反馈信息,以便调整学习策略。
学习方法
监督学习:智能体在学习过程中,会得到大量带有标签的训练数据,这些标签表示了正确的输出或行为。智能体通过学习输入数据与标签之间的映射关系,来建立模型。例如,在图像识别任务中,给智能体提供大量标注好的图片,让它学习识别不同物体。
无监督学习:与监督学习不同,无监督学习没有给定的标签或目标输出。智能体需要自行发现数据中的模式和规律。比如在客户细分任务中,智能体可以根据客户的各种行为数据,将客户自动划分成不同的群体。
强化学习:智能体通过与环境进行交互,根据环境反馈的奖励信号来学习最优行为策略。智能体在环境中采取行动,环境根据智能体的行动给出奖励或惩罚,智能体的目标是最大化长期累积奖励。例如,机器人学习在复杂环境中行走,每成功避开一个障碍物或到达一个目标点就会得到奖励。
应用场景
机器人领域:学习型智能体可使机器人适应不同的工作环境和任务要求。如工业机器人通过学习可以适应不同的生产流程和产品型号;服务机器人能够学习用户的习惯和偏好,提供更个性化的服务。
智能交通:交通管理系统中的学习型智能体可以根据实时交通流量数据,自动调整交通信号灯时长,优化交通流量;自动驾驶汽车中的智能体通过学习各种路况和驾驶场景,不断提高驾驶安全性和效率。
医疗保健:在医疗诊断中,学习型智能体可以通过分析大量的病历数据和医学影像,学习疾病的特征和诊断规则,辅助医生进行疾病诊断;在医疗康复领域,智能体可以根据患者的康复情况,调整康复训练方案。
金融领域:用于风险评估和投资决策。智能体可以学习历史金融数据中的模式和规律,对市场趋势进行预测,为投资决策提供支持;还可以识别信用卡欺诈等异常行为,保障金融安全。
挑战与发展方向
挑战
数据质量和数量:学习型智能体的性能很大程度上依赖于数据。低质量的数据可能导致智能体学习到错误的模式,而数据量不足则可能使智能体无法充分掌握环境的复杂性。
计算资源需求:一些复杂的学习算法,如深度神经网络,需要大量的计算资源来进行训练和推理,这限制了智能体在一些资源受限设备上的应用。
可解释性问题:许多学习型智能体模型,尤其是深度学习模型,其决策过程往往难以理解,这给在一些对安全性和可靠性要求极高的领域应用带来了困难。
发展方向
与其他技术融合:将学习型智能体与物联网、区块链等技术相结合,拓展其应用范围和功能。例如,在物联网环境中,智能体可以更好地利用各种设备数据进行学习和决策;区块链技术可以为智能体的数据安全和可信交互提供保障。
强化学习的拓展:研究更高效的强化学习算法,提高智能体在复杂环境中的学习效率和适应能力,使其能够处理更具挑战性的任务,如多智能体协作、动态环境中的长期规划等。
可解释性人工智能:致力于开发具有可解释性的学习型智能体模型,使人们能够理解智能体的决策依据和过程,增强对智能体的信任,推动其在更多关键领域的应用。