Multi-Agent 与 Hierarchical RL
处理多主体相互影响或高层目标—低层技能分解。
学习目标
- 区分多决策者交互与单决策者时间抽象,避免混淆两类扩展。
- 独立复核“持续两步的 option 如何备份”的输入、计算和解释。
- 时间抽象改变决策间隔,多智能体改变决策者数量。
为什么重要
区分多决策者交互与单决策者时间抽象,避免混淆两类扩展。
学习前需要掌握
背景与问题
两辆仓库机器人同时选路线,会相互改变碰撞和拥堵;一辆机器人先选“去充电”再执行多步控制,则是在不同时间尺度上决策。多智能体与分层可以同时存在,但它们带来的建模困难不同。
概念定义
多智能体强化学习研究多个策略共同影响环境与收益的情形,可协作、竞争或混合。分层强化学习用技能、子目标或 option 表达时间延展动作。option 通常包含启动条件、内部策略与终止规则,不能仅当作一个动作别名。
直观理解
多智能体像多人配合搬家,需要考虑队友会怎样行动;分层像先决定“打包厨房”,再执行一串细动作,重点是把长任务分成有持续时间的技能。
核心原理
其他学习者不断改策略,会使单个智能体看到的转移与回报分布变化。独立 replay 的旧经验可能对应旧队友;集中训练分散执行可在训练期用更多信息,但执行策略不能偷偷依赖不可获得的全局状态。
联合动作空间随智能体数量乘法增长,团队奖励还会带来个体信用分配。集中 critic、值分解或通信协议各有结构假设,不能因为协作就声称所有贡献可自动辨别。
技能持续 k 步时,高层备份需要累计这 k 步奖励并用 γ 的 k 次幂折扣后继价值。忽略持续时间会错误比较长短技能;技能可中断性与安全终止也需显式定义。
数学表达
持续 k 步的高层备份
option 终止与任务真正终止不同;后者将高层后继项置零。
变量含义
k技能实际持续步数V下一高层决策点的价值
计算步骤
- 1技能内折扣回报为 1+0.9×2=2.8。
- 2高层后继项为 0.9²×4=3.24。
- 3option 目标为 6.04;不能误写为 2.8+0.9×4。
代码对应位置
示例 1持续两步的 option 如何备份:两步 option 目标为 6.040,持续时间决定后继折扣。
变量解释
| 变量 | 含义 |
|---|---|
k | 技能实际持续步数 |
V | 下一高层决策点的价值 |
完整数值示例
持续两步的 option 如何备份
已知条件
- 技能产生奖励 1、2,持续 2 步,之后高层价值为 4。
- 折扣 0.9,技能结束不是任务终止。
计算步骤
- 技能内折扣回报为 1+0.9×2=2.8。
- 高层后继项为 0.9²×4=3.24。
- option 目标为 6.04;不能误写为 2.8+0.9×4。
计算结果
两步 option 目标为 6.040,持续时间决定后继折扣。
处理前后对比
- 时间抽象改变决策间隔,多智能体改变决策者数量。
- 本例只核对高层折扣,未实现多个学习者的交互。
计算与实现步骤
- 定义角色/层级
- 设计共享信息
- 训练与独立评测
代码实现
示例 1
持续两步的 option 如何备份
example_01.py用途:两步 option 目标为 6.040,持续时间决定后继折扣。
rewards, gamma, next_high_value = [1.0, 2.0], 0.9, 4.0
duration = len(rewards)
within_option = sum(gamma ** i * r for i, r in enumerate(rewards))
target = within_option + gamma ** duration * next_high_value
print(f"duration={duration}, option_target={target:.3f}")代码解析
解析始终位于完整代码下方,并按实际代码段逐项对应。
输入数据与任务
两步 option 目标为 6.040,持续时间决定后继折扣。
Step 1 · 1–5 行
输出中间参数、形状或最终指标,用于核对代码是否符合预期。
rewards, gamma, next_high_value = [1.0, 2.0], 0.9, 4.0
duration = len(rewards)
within_option = sum(gamma ** i * r for i, r in enumerate(rewards))
target = within_option + gamma ** duration * next_high_value
print(f"duration={duration}, option_target={target:.3f}")预期输出或运行结果
duration=2, option_target=6.040
常见错误 · 3 条
- 把多智能体与分层当作同一算法类别。
- 训练 critic 的全局信息泄露给部署 actor。
- 高层技能持续多步却只用一次 γ 折扣后继。
实际应用
- 序贯决策
- 控制与资源分配
常见错误
- 把多智能体与分层当作同一算法类别。
- 训练 critic 的全局信息泄露给部署 actor。
- 高层技能持续多步却只用一次 γ 折扣后继。
扩展内容说明
本页数值均为解释机制的构造案例,不能解读为真实训练或基准性能。定义和适用条件参见 Sutton 等:Between MDPs and Semi-MDPs: A Framework for Temporal Abstraction in Reinforcement Learning。
算法属性与数据边界
失败模式、风险与性能
失败模式
- 把多智能体与分层当作同一算法类别。
- 训练 critic 的全局信息泄露给部署 actor。
- 高层技能持续多步却只用一次 γ 折扣后继。
风险
- 奖励函数与真实目标不一致会诱发奖励黑客。
- 部署策略的行动权限必须由环境和应用层约束。
性能考虑
- 样本效率、墙钟时间和显存占用需要分别报告。
- 应使用多个随机种子、置信区间和固定评测策略。
常见问题
集中训练是否允许执行时读取所有状态?
只有部署确实能获得这些信息才可以。集中训练分散执行的核心正是让部署 actor 仅依赖本地可用信息。
网页是否会训练模型?
不会。所有图表使用固定种子或解析公式在浏览器本地计算,不执行页面中的示例代码。
推荐学习资料
参考库不会生成虚假资源或无效外部链接。