- 标题:Learning to Simulate Self-Driven Particles System with Coordinated Policy Optimization
- 文章链接:Learning to Simulate Self-Driven Particles System with Coordinated Policy Optimization
- slide:Learning to Simulate Self-Driven Particles System with Coordinated Policy Optimization
- presentation: How to learn a population of skilled drivers? Talk on Coordinated Policy Optimization (NeurIPS 2021)
- 发表:NIPS 2021
- 领域:强化学习 —— Multi-agent
- 摘要:自驱动粒子系统(Self-Driven Particles System)是日常生活中常见的一类 multi-agent 系统,例如蜂群、车流等都是此类系统。在 SDP 系统中,每个 agent 都追求自己的目标,并不断改变其与附近 agent 的合作或竞争行为。为这种 SDP 系统手动设计控制器是很耗时的,而且这样得到的行为通常既不真实,也缺乏泛化性。因此,模拟 SDP 系统仍然具有挑战性。强化学习是自动化 SDP 控制器开发的一种吸引人的替代方法。但是,以前的多智能体强化学习(MARL)方法将 agent 间的关系固定为队友或敌人,而 SDP 系统中,即使在同一个 episode 中,各个 agent 的角色也会在合作和竞争之间来回变化。用 MARL 方法模拟SDP 的一个关键的挑战就在协调代理的行为的同时仍然最大化个人目标。在这项工作中,我们用交通模拟作为测试环境,开发了一种称为协调策略优化( Coordinated Policy Optimization, COPO)的新型MARL方法,该方法结合社会心理学原理来学习 SDP 神经网络控制器。实验表明,与 MARL Baseline 相比,我们提出方法在多个指标中表现出卓越的性能。经过训练的车辆明显表现出复杂而多样化的社会行为,群体的交通效率和安全性都得到改善。演示视频和源代码可在以下网址获得: https://decisionforce.github.io/CoPO/
文章目录
- 1. 背景
- 1.1 自驱动粒子系统(SDP)
- 1.2 多智能体强化学习(MARL)
- 1.2.1 中心化训练 去中心化决策(centralized training and decentralized execution framework, CTDE)
- 1.2.2 平均场策略优化(mean field policy optimization, MFPO)
- 2. 本文方法
- 2.1 思想
- 2.2 符号说明
- 2.3 独立策略优化 (independent policy optimization, IPO)
- 2.4 局部协调(Local Coordination)
- 2.5 全局协调(Global Coordination)
- 2.6 小结
- 3. 伪代码
- 4. 实验
- 4.1 Main Results
- 4.2 Behavioral Analysis
- 5. 总结
1. 背景
1.1 自驱动粒子系统(SDP)
- 自驱动粒子系统(SDP) 是自然界中很常见的一种多智能体系统,这种系统中各个主体都在追求自己的目标,并通过简单的局部交互相互作用,虽然个体的动作很简单,但整个群体却能在宏观上呈现出复杂的整体行为。鱼群、人流车流等都是 SDP 系统,以下是一些例子
- SDP 系统有以下几个特点
- 很多个体组成的群体(多智能体)
- 个体间是相同或高度类似的(
- 策略相似
- 个体只和其周围的个体相互作用(只考虑局部交互)
- 个体间的关系时而是竞争关系,时而是合作关系(交互关系会时变,考虑将其参数化描述)
- 无数个体的简单行为,能使群体在宏观上呈现出复杂的行为(“自下而上” 设计控制器)
1.2 多智能体强化学习(MARL)
- 多智能体强化学习(MARL)是强化学习领域的一个重要分支,本节首先简单介绍 MARL 问题设定和特点,然后针对 CoPO 论文中使用的训练架构和平均场思想进行介绍
- 多智能体系统包含有多个智能体,多个智能体共享环境,智能体之间相互影响。一个智能体的动作会改变环境状态,从而影响其他智能体
- 多个智能体间的竞争关系在博弈论中已经有了很多研究,而 MARL 语境下 agent 间的关系更加复杂,主要有以下四种
- MARL 中 agent 间的四种常见关系
- 完全合作关系:智能体的利益一致,获得的奖励相同,有共同的目标。这时智能体的决策要考虑到
队友的策略,和队友相互配合,而不是个人英雄主义- 完全竞争关系:某个智能体获得收益会导致某些的智能体亏损。这时智能体的决策要考虑到对手的策略,寻找其弱点
- 合作竞争的混合:多个智能体之间分成多组,组内智能体的利益一致,各个组之间处于竞争关系
- 利己主义:一个智能体的动作会改变环境,从而使得别的智能体受益或者受损,也就是说智能体只想最大化自身的累计奖励,而不在乎他人收益或者受损。这时智能体的决策不需要考虑其他智能体
- agent 间关系不同,相应的目标函数形式、学出的策略、网络参数共用情况等也会有所不同
- 对于某个特定 agent 来说,某种程度上可以把其他 agent 看做环境的一部分,任意 agent 的价值函数都会受到其他 agent 策略的影响,因此原先 RL 中关于奖励、价值、状态等概念的定义都要相应变化。因为本文不是对 MARL 的详细入门文章,这里不再具体说明
1.2.1 中心化训练 去中心化决策(centralized training and decentralized execution framework, CTDE)
- 中心化训练 & 去中心化决策(centralized training and decentralized execution framework, CTDE framework)是 MARL 中三种训练架构之一,本论文也使用了这种思想
Note:由于本论文考虑的是连续控制的模拟 SDP 系统,这种系统具有 agent 都相同或高度类似的特点,因此所有 agent 的价值网络和策略网络都是共用参数的(即无论系统中有多少 agent,训练网络的数量都一样)。这种设定对于价值网络的处理和纯合作型 MARL 一致(共用价值网络,不共用策略网络),因此下面说明的三种架构是针对纯合作型 MARL 而言的
- 在 MARL 的常见设定下,每个 agent 通常只能观察到环境的一部分(i.e 部分可观测),但网络训练(训练过程)和决策时(决策过程)又常常需要全局状态,这个全局状态是由所有 agent 的观测组合而成的,一旦需要全局状态,就必须让 agent 间互相通信,这往往成本较高,针对通信问题的不同处理方法归纳出 MARL 的三种架构
- 用 “完全中心化” 作出的决策最好,但是速度最慢,在很多问题中不适用
- “去中心化训练 + 去中心化决策” 方案为了免训练和决策的通信,需要对策略网络和价值网络都做近似,效果较差
- “中心化训练 + 去中心化决策” 方案虽然在训练中需要通信,但是决策的时候不需要通信,可以做到实时决策,是三种架构中最实用的
- 下面给出 “中心化训练 + 去中心化决策” 架构的示意图
1.2.2 平均场策略优化(mean field policy optimization, MFPO)
- CoPO 论文借鉴了来自 2018 年论文 Mean field multi-agent reinforcement learning 的平均场思想,这个 trick 主要是用于解决 agent 数量增加时复杂度指数上升的问题。
- 大多数 MARL 方法通常只适用于 agent 数量较少的情况,当 agent 数量大幅增加时,由于维度的大幅度增加和智能体之间互动的复杂性增大,学习变得难以进行。MFPO 的核心思想是:对于某个 agent,把其他所有 agent 对它造成的影响看做由一个 “虚拟 agent” 造成所的,对于这个特定 agent 而言,该虚拟 agent 等价于其他所有 agent (或其一定邻域内的所有 agent) ,这样就把许多 agent 交互转变为两个 agent 交互
- MFMARL 这篇的原文主要是从 action 角度考虑,原先我们估计的 agent j 的价值函数
- 包含所有 agent 的联合动作
- ,当 agent 变多时,
- 的维度会变得非常大,导致学习效果很差。MFMARL 首先把智能体的
- 函数重新定义为仅受它和相邻 agent 影响,即
- 其中
- 表示 agent j 的 agent,
- 为相邻 agent 个数。这样就把原来全部 agent 的相互影响变化为中心 agent 和邻域内 agent 的一组两两影响。接下来作者进一步假设,在离散动作空间中,相邻 agent 的 one-hot 动作都可以用邻域内 agent 的平均动作
- 加一个小波动
- 的形式表示,即
- ,然后证明了以下近似成立
- 这样就把 agent 间的关系进一步简化为中心 agent 和一个虚拟的平均 agent 的交互了。接下作者类比 DQN 和 AC 框架提出两种估计
- 价值的方法,最后用玻尔兹曼分布从
- 导出策略。关于这篇论文更详细的说明可以参考:多智能体强化学习入门(六)——MFMARL算法(Mean Field Multi-Agent RL)
- 本 CoPO 论文借鉴了这里的平均场思想,但不是用来分解 action,而是用在了平均邻居 reward 上,通过平衡本 agent reward 和邻居的平均 reward 来协调 agent 间的动作,还是很巧妙的一个变化
2. 本文方法
2.1 思想
- 作者想要模拟一个比较复杂的 SDP 系统(比如交通系统,需要在遵守交通规则的同时避免拥堵),他注意到
- 基于手工规则的 rule-based model 和一些流体动力学模型可以很好地模拟简单的无约束 SDP 系统(如鱼群),但是对于交通系统这样更结构化环境,agent 之间的交互是时变的,而且环境是非平稳的,这时设计规则控制器存在耗时、模拟效果差、缺乏泛化性等问题
- MARL 方法也可以模拟多智能体的交互,但是 MARL 方法通常会预先假设并固定 agent 间的关系,而 SDP 系统中 agent 间的关系是一直在变化的,每个 agent 有自己的独立目标,因此不能像合作型 MARL 做 credit decomposition;每个 agent 独立训练会导致合作行为缺失,也不合适
- 作者注意到,以微观交通模拟为例,过去基于 MARL 工作的重点是学习高级控制器间接驱动车辆,或使用独立 learner 在简单场景环境中有限 agent 执行策略,不考虑协调问题。作者发现自上而下设计控制器不够灵活且难以扩展,因此想要自下而上地设计简单的低级控制器来实现 SDP 系统模拟,这种控制器
- 是从独立 agent 角度设计的,每个 agent 都使用相同的控制器,简单的个体行为整合出复杂的整体行为,即 “自下而上”
- 不要试图将整体的复杂行为分解到各个 agent 上,即不要 “自上而下”
- 不要对 agent 的角色(agent 间的交互关系)做任何限制或假设,agent 的交互关系应是可以时变的
- 要能适用于连续动作空间
- 基于上述想法,作者设计的控制器
- 是 agent 级别的控制器,从 agent 个体的视角出发
- 每个 agent 的交互范围都限制在局部(只和邻域范围内 agent 相互影响)
- 基于 PPO 设计 MARL 方法,以适应连续动作空间
- 为了允许交互关系时变,作者将交互关系参数化。引入社会心理学中的
社会价值取向 (social value orientation)
概念 这个概念我百度查了下没找着,我看文章的意思就是反应个体的利益和他人的利益是否一致的一个值。作者在使用时定义了一个
局部协调系数 Local Coordination Factor (LCF)
,取值范围设定在,设这个 agent 自己的奖励为
,邻域内其他 agent 的 reward 为
,则这个 agent 的
协调奖励coordinated reward
为,属于 1.2 节中的第4种关系
,它会牺牲自己来最大化其他 agent 的收益
,这个 agent 是损人不利己的,它的唯一目标就是减少其他 agent 的收益
作者这里用一个角度来表示 agent 和邻居利益的重叠程度,进而影响 agent 的即时 reward,来控制 agent 的局部竞争/合作倾向,这个设计还挺巧妙的
2.2 符号说明
- 作者把 SDP 系统建模为 “分散式部分可观测马尔科夫决策过程 Decentralized Partially Observable Markov Decision Processes (Dec-POMDPs)”,用一个 九元组表示:
- ,其中
- 是 agent 索引的集合,定义
- 时刻系统中活跃的 agent 索引组成集合
- ,其中
- 分别是观测空间和观测函数集合,每个 agent 都由自己的观测函数把状态转换为局部观测,即
- 是动作空间,
- 时刻的联合动作空间为
- 。这一刻每个活跃 agent 执行动作
- ,组成联合动作
- 状态转移矩阵
- 每个 agent 根据其自身的奖励函数获取个体奖励
- environmental episode 记录了所有 agent 的动作和奖励信息,即
- ,环境轨迹中包含了一组 agent episode
- 其中
- 分别代表第
- 设第
- 个 agent 的策略网络由
- 参数化,每个 agent 的个体目标(individual objective)就是最大化个体累计折扣回报(individual return)
- 其中
2.3 独立策略优化 (independent policy optimization, IPO)
- 这是一种最简单的 MARL 方法,每个 agent 都把其他 agent 简单地看做环境的一部分,像普通的 RL 一样独立最大化其累计折扣回报,这里各个 agent 之间没有信息交互,因此不需要 1.2.1 节讨论的那些架构
- 定义
individual value function
和 individual advantage function
为 - 其中
- 是
- 的简写,即 “
- 时刻联合动作中非 agent
- 直接用普通 RL 的 policy gradient 方法优化策略网络,如下计算 individual objective 的梯度
- 作者在这里用了 PPO,引入重要度采样比
- ,得到 PPO 的优化目标
- 使用 1.2.1 节介绍的 CTDE 框架进行训练时,需要把所有 agent 的观测拼接为全局状态,这样才能训练
- 网络;训练后得到的各个 agent 自己的策略网络不再需要全局观测,可以独立决策(
- )
- IPO 方案是 MARL 最底层的方案,完全不做任何尺度的宏观考虑,其实已经退化到了普通强化学习的设定。显然这种方法无法体现出任何 “合作” 关系,无法模拟 SDP 系统,但它是完全 “自下而上” 的,没有对交互关系进行任何限制,这就绕开了 “自上而下” 设计控制器无法回避的要预先指定交互关系而缺乏灵活性的问题,因此作者的方法也是基于这种方案的改进
由于 SDP 系统中 agent 高度相似的特点,这里的
2.4 局部协调(Local Coordination)
- 本节对 2.1 节最后说明的,利用局部协调系数 Local Coordination Factor (LCF) 来协调局部的动作的方案给出进一步说明
- 首先定义
- 时刻
- 号 agent 半径
- 范围内的
邻域奖励neighborhood reward
为 - 其中
- 上述邻域内的 agent 集合,这个集合的组成是会随时间改变的。接下来引入 LCF 系数,得到第
- 个 agent 的 coordinated reward 为
- 这样处理后,作者本质上是巧妙地把复杂的局部协调行为 “编码” 到奖励函数里了,由于奖励信号中考虑了相邻 agents 的利益,即使各个 agent 还是独立地在追求最大化其累计折扣回报,也会自然地表现出局部协调的行为
- 作者在一个环岛环境进行试验来验证 LCF 的有效性,
- ;测试过程中,为所有 agent 设置一个固定的
- 进行多次测试。下图显示了训练时固定
- 和均匀采样
- 对应的成功率
- 这说明
- 作者没有直接用上述方案(我猜想这是因为直接使用会有诸多困难,比如训练阶段需要通信 reward 信号;另外对每个 agent 都那样计算会出现循环依赖),而是使用了一个神经网络来估计邻域内 agent 的平均价值,由于 SDP 系统的特点,这个网络也被所有 agent 共享。具体实现上
随机采样 ,让所有 agent 都共享这个 ,并且将其作为一个附加额度输入策略网络进行 IPO 训练
训练时提高对相邻 agent 利益的意识,可以得到更好的策略,并使整体表现提升;纯 IPO 训练()可能导致次优策略
- 邻居价值网络估计
- 利用价值网络计算相关优势函数
- 得到
协调优势coordinated advantage
- 用协调优势替代 2.3 节 PPO 优化目标中的个体优势函数,得到 PPO 的
协调优化目标coordinated objective
其中 代表了一个高斯分布,LCF 参数从中采样得到,即 ,从而增加多样性
2.5 全局协调(Global Coordination)
- 从 2.4 节的实验折线图可见存在最优的 LCF 系数使得系统整体表现最优,为了实现 LCF 系数
,定义描述群体性能的
全局目标 global objective
- 其中
- 代表轨迹
- 中
- 时刻活跃的 agent 索引集合,由于我们不确定各个 agent 的启动和终止时刻,所以这里去掉了
- 系数。可见,这个全局目标就是所有 agent 能获取的总回报的期望
- 上面这个没法直接用 IPO 框架优化,作者将其分解为
个体全局目标 individual global objective
- 这里中括号中被求和的分式部分定义为
全局奖励global reward
- 它是
- 时刻所有活跃 agent 的平均 reward,
- 这个目标是 agent
- 活跃时段内累计的 global reward。接下来作者证明了一个 Proposition 1
- 这个命题说明只要每个 agent 都最大化自己的 individual global objective,就等价于最大化 global objective
- 使用梯度方法从
- 优化
- ,按链式法则求梯度
- 用
- 分别表示按 2.4 节最后
- 进行一次 IPO 优化前后的策略。其中
- 这一项就是把 policy gradient 转换为了 PPO 的优化形式,其中的
- 是
全局优势 global advantage
,它是先基于 - 用一个神经网络估计
- ,再由
- 计算出来的。接下来考虑第二项,有
- 注意这里我们先把
做了一次泰勒展开,得到
。把两项合起来,并对所有 agent 取期望,就得到优化 LCF
- 的目标函数为
- 用它关于
- 做随机梯度上升即可优化
- 。注意这里的
2.6 小结
- 综上所述,CoPO 中一共训练了4个神经网络,包括
- 策略网络 policy network:用 PPO 优化 2.4 节最后的协调优化目标
- ,优化
- (所有
- 都一样)。测试阶段只使用这个网络
- 个体价值网络 individual value network:估计 2.3 节中的
- ,需要所有 agent 拼接全局观测得到全局状态,仅在训练阶段使用,普通地优化基于 TD error 的损失来训练
- 邻域价值网络 neighborhood value network:估计 2.4 节中的
- ,需要所有 agent 拼接全局观测得到全局状态,仅在训练阶段使用,普通地优化基于 TD error 的损失来训练
- 全局价值网络 global value network:估计 2.5 节中的
- ,需要所有 agent 拼接观测得到全局状态,仅在训练阶段使用,普通地优化基于 TD error 的损失来训练
- 注意 SDP 系统 agent 间高度同质化,这些网络被所有 agent 共享,所有网络的输入都只有局部观测
- 本文方法的训练结构也比较特别,因为我们训练的所有网络都是共享的,某种程度上可以看做只训练了一个 agent,作者设计时也特别避免了大部分需要信息通信的点,从而贴近 IPO 形式;不过我认为最后利用全局价值网络优化
,只是通信的信息从 “局部观测” 变成了 “局部梯度”
Note: 因为还是有信息交互,这里的价值网络训练时也可以像普通 CTDE 那样使用局部观测拼接出全局状态信息,但是作者实验发现这样会导致性能下降
- 本文方法的示意图如下
- 一句话总结就是:
用 协调局部奖励,从而协调局部的交互关系;用全局价值优化 ,找到最优的局部交互关系
3. 伪代码
- CoPO 伪代码如下
4. 实验
- 作者使用以下五个交通模拟环境进行实验
- 对比方法有
- IPO:完全按 2.3 节的 naive 方式,使用 PPO 方法进行 IPO 训练
- MFPO:和本文方法基本一致,只是训练时类似 CTDE 的一般套路,将局部观测拼接后作为状态信息来训练价值网络,这里拼接时还用了平均场思想,详见原文
- CL:课程学习,分四个阶段训练,每阶段参入的 agent 数量增加 25%
4.1 Main Results
- CoPO 在所有环境上取得了最高的成功率
- 值得一提的是,MFPO 在一些环境中的表现比独立的 PPO 更差。这可能是由于群体状态一直在变化。简单地连接或平均邻域 agent 的状态作为值函数的附加输入会使训练不稳定
- 从成功率、安全性、效率三个角度看,CoPO 都是最优
- 作者进一步考虑了各方法对于 agent 数量的鲁棒性
- 其中虚线是训练时的 agent 数量,然后使用不同数量的 agent 进行测试,可见 CoPO 还是最优的
4.2 Behavioral Analysis
- 作者考察了各种方法训练出 agent 的交互行为,发现 CoPO 得到的 agent 确实呈现出复杂的交互行为。群体中的每个 agent 都倾向于社交性驾驶,会对附近的车辆做出反应,这些反应既包括顺从行为,如屈服,排队,甚至倒车给他人留出更多的空间,也包含攻击性行为,如切入和冲刺
- 这些复杂的交互行为,使得导致拥堵的 “关键错误” 显著减少
5. 总结
- 第一次看多智能体强化学习相关的论文,感觉还是挺有意思,我认为本文的几个亮点是
- 引入
社会价值取向
的概念,通过奖励函数编码 agent 的交互倾向(后面半句不知道是不是 MARL 文章的一般做法) - 将交互关系参数化,使其变得可以优化
- 基于 IPO 方案,“自下而上” 地构建群体间复杂的交互关系,灵活性、扩展性都很强
- 使用平均场思想,避免 agent 数量增加时复杂度快速上升的问题
- 不过这里还是有一些问题
- 作者注意到复杂系统中 agent 的关系会随时间改变,成功地将交互关系参数化并使其可以优化,但是最后训练完成后得到
- (虽然用了分布的形式增加多样性)还是一个定值,也就是说训练完成后 agent 间 “合作” 和 “竞争” 的程度还是固定的,这个有待进一步优化
- 本文考虑的是一个非典型 MARL 问题,本文方法也是围绕 1.1 节中分析的几个特点进行设计的,因此难以推广到一般问题上。我觉得主要问题在于 SDP 系统假设各个 agent 高度相似,这个假设太强了,本文方法其实最后就只是训练了一个策略,然后把它用了好多次