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

HATRPO/HAPPO
算法1使用的是散度DKLmax,难估计且不光滑。同TRPO中的方法,将这个约束转为
Es∼ρπθk[DKL(πθkim(⋅∣s)∥πθim(⋅∣s))]≤δ.
最后的目标变成了求以下这个目标的最大值:
θk+1im=argθimmaxEs∼ρπθk,ai1:m−1∼πi1:m−1,aim∼πθimim[Aπθkim(s,ai1:m−1,aim)],subjecttoEs∼ρπθk[DKL(πθkim(⋅∣s)∥πθimim(⋅∣s))]≤δ.
然后同TRPO一样:
- 把目标在θ=θkim 处做一阶近似,梯度记为 gkim;
- 把期望 KL 在该点做二阶近似,Hessian 即 Fisher 信息矩阵 Hkim。Hkim=∇θim2Es∼ρπθk[DKL(πθkimim(⋅∣s),πθimim(⋅∣s))]θim=θkim
θk+1im=θkim+αjgkim(Hkim)−1gkim2δ.
最后一步是求Eai1:m−1∼πθki1:m−1,aim∼πθimim[Aπθkim(s,ai1:m−1,aim)],之后没看懂总之
HAPPO的目标是最大化
Es∼ρπθk,a∼πθkminπθkimim(aim∣s)πθimim(aim∣s)Mi1:m(s,a),clipπθkimim(aim∣s)πθimim(aim∣s),1±ϵMi1:m(s,a).