在多个智能体的情况下进行强化学习,MDP和policy gradiant都不能很好胜任,因此Trust Region Policy Optimisation in Multi-Agent Reinforcement Learning | PDF提出HATRPO/HAPPO训练方式。同时参考了Numerical Optimization
状态价值函数
定义:
含义:
在初始状态为 的条件下,遵循策略 时,期望获得的 累计折扣回报。用来衡量某个状态本身的“好坏”。
状态-动作价值函数
定义:
含义:
在状态 下先执行动作 ,之后遵循策略 ,期望获得的 累计折扣回报。用来衡量某个动作在某个状态下的“好坏”。
策略目标函数
定义:
含义:
策略 在 整个初始状态分布 下的期望累计回报,是强化学习中需要最大化的最终目标。
因此,我们的目标是最大化这个函数:(假定所有智能体共享同样的奖励函数)
A_{\pi}(s,a) = Q_{\pi}(s,a)-V_{\pi}(s)
A_{\pi}^{i1:m}\left(s, \mathbf{a}^{j1:k}, \mathbf{a}^{i1:m}\right) \triangleq Q_{\pi}^{j1:k,i1:m}\left(s, \mathbf{a}^{j1:k}, \mathbf{a}^{i1:m}\right) - Q_{\pi}^{j1:k}\left(s, \mathbf{a}^{j1:k}\right).$$
信赖域算法
信赖域方法是一类用于数值优化的迭代算法。它的核心思想是:
- 在每一步迭代时,不是直接在全局搜索下降方向,而是在当前点附近建立一个局部近似模型(通常是二次模型),然后只在一个“可信”的区域(trust region)内对这个近似模型进行优化。 定理: 设 是当前策略, 是下一个候选策略。我们定义 , 。是用上一步的策略来构造近似下一步的奖励函数; 指 KL 散度(常写 ),用来度量新旧策略的分布差,在信赖域法里作为约束/惩罚控制更新“别走太远”。 那么以下不等式成立: 其中 所以当当前策略和下一步策略距离很近的时候,只根据上一步推断出来的会和非常接近。所以agent可以通过信赖域来迭代其策略:
但是这种方法并不实用,计算困难,论文提出TRPO算法,即: 每一次迭代,TRPO在策略构建一个KL球,使得和真实奖励函数相近。为了减轻计算散度的期望的计算负担,论文提出了PPO算法:
-
:策略比(新/旧策略在同一 上的相对概率)。
-
:优势函数(常用 GAE 估计)。
-
:把 限制在 。
-
外层 :在“未裁剪值”和“裁剪后值”之间取更保守的那个,避免过度乐观。
-
(动作优于平均):希望 增大 其概率()。若 r>1+ϵr>1+\epsilon,被截断为 ,通过 限制上涨幅度。
-
(动作劣于平均):希望 降低 其概率()。若 ,被截断为 ,通过 限制下跌幅度。
信赖域算法在MARL中的应用
一种原始的应用方法是直接共享参数,用聚合轨迹进行策略训练,这个方法由MAPPO提出: 但是MAPPO有致命的缺陷:参数共享决定了智能体只能有相同的action space,可能导致并不能找到最优策略。因此论文提出可以使用HAPPO和HATRPO算法。
多智能体的优势函数 在任何一个合作马可夫游戏中,给定一个联合策略,对于任何状态,以及任何智能体子集,定义如下方程:
- 求和符号右侧式子表示一组代理 同时把动作从“旧策略的基线动作”换成给定的新动作 时产生的联合优势(对旧策略 而言)。
- 等式右侧表示前 个代理已用新动作 ,再让第 个代理把动作改为 所带来的边际优势;把这些边际优势从 到 加起来,恰好等于“所有人一起改”的联合优势。 设 π 是一个联合策略, 是其他代理 的某个其他联合策略,而 是代理 的某个其他策略。那么 请注意,对于任何 ,我们有
- 含义:在旧策略的状态分布 下,让前 个代理按 出动作,第 个代理按 出动作,计算“第 个代理的边际优势”的期望。它是一个局部/代理目标,衡量“把第 个体从旧策略换成 的收益”,条件是其他体用 。即用每个智能体的更新策略的优势函数加和表示代理函数(在常见实践中)。

HATRPO/HAPPO
算法1使用的是散度,难估计且不光滑。同TRPO中的方法,将这个约束转为
\mathbb{E}_{s \sim \rho_{π_{θ_k}}} \left[ D_{KL}(\pi_{θ_k}^{i_m}(·|s) \| π_{θ}^{i_m}(·|s)) \right] ≤ δ.$$ 最后的目标变成了求以下这个目标的最大值:\begin{aligned} θ_{k+1}^{i_m} &= \arg \max_{θ^{i_m}} \mathbb{E}{s \sim ρ{π_{θ_k}}, \mathbf{a}^{i1:m-1} \sim π^{i1:m-1}, a^{im} \sim π_{θ^{i_m}}^{im}} \left[ A_{π_{θ_k}}^{im}(s, \mathbf{a}^{i1:m-1}, a^{im}) \right], \&subject,, to,, \mathbb{E}{s \sim ρ{π_{θ_k}}} \left[ D_{KL}(π_{θ_k}^{im}(·|s) | π_{θ^{i_m}}^{im}(·|s)) \right] ≤ δ. \end{aligned}
然后同TRPO一样: - 把目标在$\theta=\theta_k^{\,i_m}$ 处做**一阶近似**,梯度记为 $\mathbf g_k^{\,i_m}$; - 把期望 $KL$ 在该点做**二阶近似**,Hessian 即 Fisher 信息矩阵 $\mathbf H_k^{\,i_m}$。$H_{k}^{i_m} = \nabla_{\theta^{i_m}}^2 \mathbb{E}_{s \sim \rho_{\pi_{\theta_k}}} \left[ D_{KL}(\pi_{\theta^{i_m}_k}^{i_m}(\cdot|s), \pi_{\theta^{i_m}}^{i_m}(\cdot|s)) \right] \bigg|_{\theta^{i_m}=\theta_k^{i_m}}$θ_{k+1}^{i_m} = θ_k^{i_m} + α^j \sqrt{\frac{2δ}{g_k^{i_m} (H_k^{i_m})^{-1} g_k^{i_m}}} .
最后一步是求$\mathbb{E}_{\mathbf{a}^{i1:m-1} \sim \pi_{\theta_k^{i1:m-1}}, a^{im} \sim \pi_{\theta^{im}}^{im}} \left[ A_{\pi_{\theta_k}}^{im}(s, \mathbf{a}^{i1:m-1}, a^{im}) \right],$之后没看懂总之 HAPPO的目标是最大化 $$\mathbb{E}_{s \sim \rho_{\pi_{\theta_k}}, \mathbf{a} \sim \pi_{\theta_k}} \left[ \min \left( \frac{\pi_{\theta^{i_m}}^{i_m}(a^{i_m}|s)}{\pi_{\theta_k^{i_m}}^{i_m}(a^{i_m}|s)} M^{i1:m}(s, \mathbf{a}), \text{clip}\left(\frac{\pi_{\theta^{i_m}}^{i_m}(a^{i_m}|s)}{\pi_{\theta_k^{i_m}}^{i_m}(a^{i_m}|s)}, 1 \pm \epsilon \right) M^{i1:m}(s, \mathbf{a}) \right) \right].$$