01 Agent程序

📅 2026/6/30 22:41:11
01 Agent程序
最近复习人工智能原理没好好上课所以开始自己突击复习简直就是一个从0开始学习一边看ppt一边问我的老师好吧就是豆包☺️复习过程呢为了留下痕迹后面二次记忆就整理了笔记不想白整扔网上吧。至于我能坚持更多少呢……随缘吧后面复习不完了就不更或者我考完偶尔不想学习就更哦对谁能教教我有没有办法把思源笔记直接导入CSDN我试了好几次格式都不太对很丑陋得手动一点点搬过来而且感觉也没有思源笔记好看诶严重打击我的写作兴趣4种类型的Agent程序结构通过学习获得Agent程序的能力Agent程序的状态如何表示1 Agent程序的结构Agent architecture硬件框架 program程序输入 当前感知信息输出 动作程序 处理输入信息生成输出动作Simple reflex agents —— 简单反射型智能体Model-based reflex agents —— 基于模型的反射型智能体Goal-based agents —— 基于目标的智能体Utility-based agents —— 基于效用价值的智能体1简单反射Agent基于当前的感知选择行动不关注感知历史。 TipAgent智能体智能体本体Environment环境智能体所处外部世界Sensors传感器Percepts感知信息环境传递给传感器的实时观测数据What the world is like now当前环境此刻的状态 仅瞬时感知无历史记忆Condition-action rules条件 - 动作规则if-then 触发规则库What action I should do now我此刻应当执行什么动作Actuators执行器 Actions动作智能体作用到外部环境的行为Environment → Sensors环境向传感器输出感知信息Sensors → What the world is like now传感器采集数据得到当下环境情况What the world is like now Condition-action rules → What action I should do now结合当前环境状态与固定条件规则判定当下要执行的动作What action I should do now → Actuators动作指令下发给执行器Actuators → Environment执行器输出动作作用于外部环境function REFLEX-VACUUM-AGENTS([location, status]) return an action # 函数反射吸尘器智能体(【当前位置地面状态】)返回一个动作 if status Dirty then return Suck # 如果地面状态脏则返回动作吸尘 else if location A then return Right # 否则如果当前位置在A区域则返回动作向右走 else if location B then return Left # 否则如果当前位置在B区域则返回动作向左走function SIMPLE-RELEX-AGENT(percept) returns an action # 函数简单反射智能体(感知信息)返回一个动作 static: rules, a set of condition-action rules # 静态常量rules规则库一套「条件-动作」匹配规则集合 state - INTERPRET-INPUT(percept); # state当前瞬时状态 ← 解析输入(原始感知数据) rule - RULE-MATCH(state, rules); # rule匹配到的规则 ← 规则匹配(当前状态, 全局规则库) action - rule.ACTION; # action待执行动作 ← 提取匹配规则中对应的动作 return action # 返回最终动作给执行器2基于模型的反射Agent内置state​历史记忆 Model​环境推演规则【世界模型】只有位置传感器时干净区域在 8 小时后会变脏世界是如何独立于 Agent 发展的环境会自己发生变化不受智能体动作影响举例吸尘器只能感知自己在哪看不到地面脏不脏但内置模型记住 “地面放久了会自动积灰变脏”哪怕传感器没检测脏污智能体也能推断远处房间已经变脏只有灰尘传感器时动作 Left 会使得位置为 AAgent 自身的行动如何影响世界记录自身每个动作会怎么改变环境状态举例吸尘器只看得见地面脏不脏、看不到自己在哪依靠模型记住执行 Left左移动作后自身位置就会到达 A 房间执行 Right 就会到 B 房间。结合过去的状态、执行的动作和当前感知(世界如何运转)估计当前状态过去的状态上一轮推理得到的全局环境记录简单反射 Agent 没有这个存储单元这是两类智能体最大区别世界如何运转第一条世界模型环境自主变化的规律地面会自动变脏Agent 做了什么第二条世界模型自身动作带来的环境改变左走会到 A、吸尘会变干净当前感知传感器此刻实时采集到的局部观测比如现在只看见 A 房间是干净的。估计Update-State 状态更新4 份信息融合计算补全传感器看不到的隐藏环境信息算出完整真实的全局环境输出「当前状态」维护内部状态以此应对部分可观测环境 Tipstate内部存储的历史全局状态记忆模块简单反射 Agent 没有Model世界模型How the world evolves环境自主演化规律环境不受智能体动作影响自身会发生变化What my actions do自身动作的影响规律智能体每一个动作会如何改变环境What the world is like now推算出的当前完整全局环境状态环境 → Sensors传感器采集实时感知state Model 两套规则 实时感知→ What the world is like now融合全部信息推算完整当前环境计算完成后新状态会回写更新state虚线循环当前完整环境状态 条件动作规则→ What action I should do now匹配规则确定动作动作 → Actuators → 环境执行动作改变外部世界随时间推移依靠世界知识持续更新内部状态✏️ Note静态全局变量rules一套条件-动作匹配规则集合state内部存储对当前完整全局环境状态的描述记忆模块action记录上一步刚刚执行完的动作model世界模型描述「下一刻环境状态如何由当前状态动作推导得出」state ← UPDATE-STATE(state, action, percept, model)tate ← 状态更新函数(旧状态、上一步动作、当前感知、世界模型)rule ← RULE-MATCH(state, rules)rule ← 规则匹配(更新后的全局状态、静态规则库)action ← rule.ACTIONaction ← 提取匹配规则对应的执行动作3基于目标的AgentAgent 还需要目标信息来描述想要达到的状况例如要到达乘客的目的地。Agent 程序可以把这种信息和模型相结合。​简单反射 Agent​只看当下一瞬间感知无记忆、无环境推演基于模型的反射 Agent增加内部状态 世界模型可以还原完整当前环境但只会被动匹配 if-then 规则它们都缺少一个关键主动要去往的终点只能被动应对眼前情况无法主动规划路线。通常需要搜索和规划 TipWhat it will be like if I do action A如果我执行动作 A未来环境会变成什么样子前瞻性推演是本类 Agent 核心新增模块Goals目标集合智能体想要抵达的理想终止状态环境 → Sensors传感器采集实时感知state 两套世界模型 实时感知→ What the world is like now融合信息算出当前完整环境计算完成后更新 state虚线回环当前完整环境 两套世界模型→ What it will be like if I do action A​模拟推演每一个可选动作带来的未来环境状态向前预判推演的未来状态 Goals 目标→ What action I should do now筛选出最终能抵达目标的动作序列动作 → Actuators → 外部环境执行动作改变世界What it will be like if I do action A向前仿真、预判未来提前模拟“如果我执行某个动作之后世界会变成什么样”这就是图中所说的规划、搜索。目标定义了 “最终想要达成的理想状态”。智能体把所有动作推演出来的未来状态和目标做比对这条动作路径最终能抵达目标保留这条方案这条路径永远到不了目标直接舍弃简单反射 Agent 只能实现固定目标基于目标的 Agent 可以修改目标基于目标的 Agent 的行为在要前往不同的地点时改变起来很容易环境模型地图、动作规则和目标是完全分开的两个模块底层世界模型道路怎么走、左转右转会到哪不用改动只需要修改顶层的Goals​目的地内部规划器会自动重新搜索、生成全新行驶路线。反射 Agent 规则绑定单一目标修改成本极高4基于效用的Agent仅靠目标可能不足以生成高品质的行为基于目标的智能体只有二元判断标准一条路线要么能抵达终点可行要么到不了舍弃它无法区分多条可行路线的好坏更通用的性能度量应该允许不同的世界状态之间根据 Agent 的偏好效用进行比较。 TipHow happy I will be in such a state处在该未来状态下系统收益 / 满意度我对哪个结果更满意评估对每个结果的满意度环境 → Sensors传感器采集实时感知state 两套世界模型 实时感知→ What the world is like now融合信息算出完整当前环境计算后回写更新 state虚线循环当前完整环境 两套世界模型→ What it will be like if I do action A遍历所有可选动作推演每一个动作对应的未来环境结果推演得到的所有未来状态 Goals 基准→ How happy I will be in such a state给每一种未来状态计算效用分数量化满意程度对比优劣全部效用分数对比筛选→ What action I should do now选出效用得分最高的动作作为当前执行指令动作 → Actuators → 外部环境执行动作改变真实世界对比维度简单反射 Agent基于模型的反射 Agent基于目标的 Agent基于效用的 Agent核心定义仅依靠当前瞬时感知通过固定 if-then 条件规则直接输出动作的最简智能体在简单反射基础上新增内部状态记忆与世界模型可还原完整环境状态的反射型智能体在基于模型反射基础上新增独立目标模块可主动前瞻规划、筛选能抵达目标的行动路径的智能体在基于目标 Agent 基础上新增效用函数模块可量化评估所有可行方案的优劣主动选择最优行为的智能体核心新增组件与前一类对比无基础框架内部状态state、世界模型环境演化规则 动作影响规则独立目标Goals模块、前瞻规划与路径搜索模块效用函数Utility模块、方案择优模块核心决策逻辑当前感知 → 匹配固定条件规则 → 输出动作当前感知 历史状态 世界模型 → 还原完整环境 → 匹配条件规则 → 输出动作当前完整环境 世界模型 → 推演所有动作的未来结果 → 筛选能抵达目标的路径 → 输出动作推演所有动作的未来结果 → 给每个结果计算效用分数 → 筛选效用最高的路径 → 输出最优动作对环境的适配能力仅能处理完全可观测的简单环境可处理部分可观测环境可处理部分可观测环境、长序列复杂任务环境可处理部分可观测环境、​不确定随机环境​、多冲突需求的复杂环境记忆与环境模型无历史记忆、无环境模型有历史状态记忆、完整世界模型完整继承内部状态、世界模型完整继承内部状态、世界模型规划与前瞻能力无完全无前瞻推演仅被动反应无仅能还原当前环境无前瞻推演有可前瞻推演多步动作、搜索可行路径有可前瞻推演多步动作、搜索并择优路径目标与偏好处理无独立目标模块规则与单一目标强耦合无独立目标模块规则与单一目标强耦合有独立目标模块目标与环境模型解耦更换目标无需重写底层规则有独立目标模块 效用偏好体系可平衡多冲突目标量化方案优劣适用场景固定规则的简单自动化场景有部分不可观测信息、需要记忆环境状态的自动化场景需要长路径规划、多步任务执行的场景需要多方案择优、多目标权衡、不确定环境决策的复杂场景核心优势结构极简、响应速度极快、硬件成本低拥有记忆与环境推演能力可处理部分可观测环境不会出现简单反射的无限循环问题具备主动规划能力可完成复杂长序列任务目标修改灵活通用性大幅提升泛化能力最强可定量对比所有可行方案主动选择最优行为能平衡多冲突需求适配复杂不确定环境核心局限无记忆、无法处理部分可观测环境、易无限循环、更换目标需重写全部规则依旧是被动反射逻辑无主动规划能力更换目标仍需重写规则仅能区分 “是否能达成目标”无法在多条可行路径中选出最优解无法处理多冲突目标计算开销大效用函数需要人工精细设计复杂场景难以精准定义打分标准典型实例红外感应水龙头、自动感应门基础款扫地机器人带全屋地图记忆基础导航软件仅能规划可到达终点的路线无偏好择优带偏好设置的导航软件优先省时 / 省钱 / 少红绿灯、自动驾驶决策系统2 学习Agent学习Agent-四个部件Performance element执行部件Learning element学习部件Critic评判部件Problem generator问题生成器 TipPerformance standard性能评判标准预先定义好坏的基准Critic评判模块feedback反馈信号评判输出的好坏结果Learning element学习模块changes学习模块对执行部件的知识修改 / 更新knowledge学习得到的知识、策略、模型learning goals学习目标引导探索优化方向Problem generator问题生成器环境 → Sensors传感器采集环境感知感知分两路① 传给执行部件(Performance element)执行部件依靠已有知识生成动作通过 Actuators 作用于环境② 传给Critic 评判模块把本次交互的环境观测送入评判模块Performance standard性能标准自上而下输入 Critic评判的打分基准Critic → Learning element输出feedback本次行为好坏的评价反馈Learning element 两条输出① 标注changes的箭头指向 Performance element用学习到的经验修改执行部件内部知识 / 策略② 向下输出 learning goals至 Problem generator给问题生成器下达学习优化方向Problem generator → Performance element输出探索任务为执行部件提供试探性行为指令Performance element → Actuators → Environment执行部件输出 Actions作用回外部环境完成一轮循环。简单 / 基于模型 / 基于目标 / 基于效用 Agent​固定不变规则、模型、效用函数全部人工写死运行中不会自我优化学习 Agent在任意一类基础 Agent执行部件外层增加Critic、学习模块、问题生成器三大配套组件依靠环境反馈自动迭代更新自身策略具备自主进化能力。1学习Agent-执行部件执行部件 前面四类基础 Agent 中任意一种简单反射 / 基于模型反射 / 基于目标 / 基于效用 Agent接收传感器传来的感知Percepts​内部依靠自身逻辑推理输出要执行的动作Actions​是智能体和环境交互、完成任务的主体环境 → Sensors传感器→ Percepts感知→Performance element 执行部件① 执行部件 ↔ Learning element学习部件箭头changes​Learning element → Performance element学习部件根据反馈优化策略修改执行部件内部的知识、规则、模型、效用函数。箭头knowledge​Performance element → Learning element执行部件把自身存储的环境模型、策略、交互经验传递给学习部件作为学习素材。② Problem generator问题生成器→ Performance element问题生成器接收学习部件下发的learning goals​学习目标生成探索性任务 / 试探动作发送给执行部件驱动智能体主动探索未知场景避免固守旧策略。执行部件本身就是普通无学习能力的基础 Agent只能固定逻辑选动作无法自我优化【Critic、Learning element、Problem generator】专门用来迭代升级执行部件让执行部件在和环境交互中自动变得更优秀2学习Agent-评判部件评判部件根据性能标准Performance standard告知学习部件当前 Agent 的运行好坏性能标准是固定不变的Agent不应该修改性能标准迎合、适配自己的行为​Performance standard​性能标准自上而下输入Critic评判模块外部环境→Sensors 传感器采集感知Percepts​同步送入CriticCritic对比「实时环境感知」和「固定性能标准」输出feedback优劣反馈信号传给Learning element学习部件学习部件拿到反馈后生成changes优化方案去更新执行部件​3学习Agent-学习部件θ执行部件内部存储的​知识 / 参数 / 规则集合​可被学习部件修改f执行部件的决策函数输入感知、依靠参数Θ输出动作执行部件输出的动作完全由感知与内部参数Θ决定学习的本质就是不断调整Θ让决策效果更好。学习部件根据评判部件的反馈评价 Agent 做得如何从而确定如何修改执行部件。Learning element 两条核心输出链路① changes​ 箭头 → Performance element根据反馈生成优化方案修改执行部件内部知识Θ② learning goals​ 箭头 → Problem generator问题生成器下达探索学习的目标反向链路 knowledge​执行部件把自身当前存储的规则、模型、参数传递给学习部件作为优化素材4学习Agent-问题生成器问题生成器提出能够带来全新、有价值学习经验的动作建议如果执行部件自行其是它会一直根据已知的知识采取当前最优行动问题生成器可向执行部件建议​探索性行动​这类探索动作短期看是次优、甚至较差的选择但长期积累经验后能让智能体学到更好的策略长远收益更高。学习部件 Learning element → Problem generator下发 learning goals​当前需要重点学习、优化的方向Problem generator→ Performance element执行部件输出探索性试探动作建议执行部件有两类动作来源自身原有策略基于现有知识选出当下最优动作利用现有经验问题生成器输入主动探索、尝试陌生的次优动作探索未知场景​单纯执行部件只会「利用」​只重复当前已知最优动作永远不去尝试陌生场景容易陷入​局部最优​例导航一直走熟悉的老路从不尝试新路线永远不知道存在更快的备选道路。​问题生成器负责「探索」​主动推荐短期不完美的试探行为强迫智能体接触全新环境收集更多学习素材。3 Agent的状态如何表示Agent 程序内部的各个模块分别用来答三个核心问题世界现在怎样了—— 感知、还原当前完整环境状态我现在应该采取什么行动—— 推理、决策输出动作我的行动结果怎么样—— 学习型 Agent 评判反馈基础四类 Agent 无此模块处理“我的行动后果如何”的部件会描述执行动作后环境会发生哪些变化把环境变化看作该动作带来的后果。【状态表示】处理 “我的行动后果如何” 的模块核心是描述环境会发生怎样的变化把环境变化定义为动作带来的状态转换后果。如何表示状态及其转换沿着复杂度和表达能力的增长有三种表示原子表示、要素化表示、结构化表示搜索、博弈论 →原子表示命题逻辑、机器学习传统强化学习 →要素化表示一阶逻辑、自然语言理解 →结构化表示1原子表示以罗马尼亚寻路问题为例每个城市名称就是一个原子状态状态是​不可拆分的独立符号​黑盒无内部细节只能区分“是哪个状态”不能提取、修改局部信息实现简单计算开销小短板表达能力最弱无法描述状态内部细节。搜索、博弈隐马尔可夫模型 HMM马尔可夫决策过程 MDP2要素化表示把一个完整环境状态拆成一组独立特征 / 变量 / 属性用特征向量描述状态每个要素可以单独读取、修改。示例出租车场景状态 (当前所在城市名、剩余油量、乘车卡余额、当前天气)每个括号内的项都是独立要素可单独提取某一项比如只看剩余油量原子表示做不到这点。约束满足问题 CSP、命题逻辑、智能规划、贝叶斯网络概率推理、各类机器学习优点状态可拆解单独访问、更新某一个属性状态之间大量要素可复用节省存储空间适配概率模型、机器学习机器学习输入基本都是特征向量。缺点只能描述独立属性无法表达对象之间的关系比如 “乘客坐在出租车里” 这种关联无法刻画需要结构化表示。3结构化表示结构化表示的核心世界由多个独立事物对象 / 实体组成不仅能描述每个事物自身的属性还能清晰刻画事物与事物之间的关联关系。原子表示只有整体符号无内部信息要素化表示仅有一组独立特征无法表达实体间关系结构化表示实体 属性 实体间关系三者兼备表达能力最强。举例出租车场景实体有「出租车、乘客、城市、道路」属性出租车油量、乘客目的地关系乘客乘坐出租车、出租车位于城市 A、道路连接城市 A 与城市 B。关系数据库、一阶逻辑、一节概率模型、基于知识的学习、自然语言理解优点表达能力最强适配复杂现实世界推理天然适配逻辑推理、自然语言、知识图谱缺点结构复杂存储、计算开销更大推理算法难度高于原子、要素化表示。类型核心特点能否拆分属性能否描述实体间关系表达能力原子表示状态是不可拆分的黑盒符号不能不能最弱要素化表示状态拆分为一组独立特征变量能不能中等结构化表示包含多个实体、实体属性、实体关系能能最强