论文原文:On the Use and Misuse of Absorbing States in Multi-agent Reinforcement Learning
预备知识参考:
强化学习纲要(周博磊课程)
强化学习实践教学
多智能体强化学习入门
MA-POCA是Unity官方2021年11月推出的多智能体强化学习算法,其首次应用在Unity强化学习插件ML-Agents中,取得了让人满意的效果,ML-Agents让我们能够非常便捷地创建自己的强化学习训练环境,我写过对应的文章:Unity强化学习之ML-Agents的使用。
MA-POCA是Unity强化学习插件ML-Agents所使用的官方的多智能体算法,它的实现参考于MADDPG
在介绍MA-POCA之前,需要了解多智能体深度强化学习的代表算法MADDPG。它是经典的的中心化训练和非中心化执行的算法,即在训练的时候,Critic不仅需要知道该智能体的动作信息,还需要知道其他智能体的动作信息,才能做出评判。而在智能体执行的时候,不需要Critic网络参与,因此只需要Actor利用观测到具局部信息采取行动即可。以两个智能体为例:
r
(
s
,
a
1
)
=
E
a
2
∈
A
,
s
′
∈
S
[
r
1
(
s
′
)
p
(
s
′
∣
s
,
a
1
,
a
2
)
π
2
(
a
2
∣
s
)
]
p
1
(
s
′
∣
s
,
a
1
)
=
∑
a
2
∈
A
p
(
s
′
∣
s
,
a
1
,
a
2
)
π
2
(
a
2
∣
s
)
r(s,a_1) = E_{a_2 \in A,s' \in S}[r_1(s')p(s'|s,a_1,a_2)\pi_2(a_2|s)] \\ p_1(s'|s,a_1) = \sum_{a_2\in A} p(s'|s,a_1,a_2)\pi_2(a_2|s)
r(s,a1)=Ea2∈A,s′∈S[r1(s′)p(s′∣s,a1,a2)π2(a2∣s)]p1(s′∣s,a1)=a2∈A∑p(s′∣s,a1,a2)π2(a2∣s)
算法在以下约束下运行:
1.算法学习到的策略只能使用本地的信息。
2.算法无需知道实际的可微分动力学模型。
3.对智能体之间的通讯方式不做任何假设。
除了中心化训练和非中心化执行之外,该算法改进了经验回放记录的数据,每一条数据由所构成,其中代表每个智能体的局部观测。另外,该算法还利用了策略集合效果优化,对每个智能体学习多个策略,利用所有策略的整体效果进行优化,提高了算法的稳定性。
MA-POCA是基于COMA的改进算法,它的改进针对游戏中复杂多变的环境,更好地适应了智能体数量和种类无法确定的场合。它在集中式训练,分布式执行的AC框架上提出了两个改进点:一是针对数量不确定的智能体组合,使用了注意力机制的特殊神经网络结构,可以处理不定量输入,并且代替了现有的COMA算法全耦合的吸收状态。二是针对智能体死后信用分配问题提供了良好的解决方法,使得智能体能够做出利他性决定,牺牲自身实现团队利益最大化,并且可以在任何时候加入或退出多智能体小组,这对应游戏角色在团战中的复活与死亡。另外MA-POCA在论文中提出,它使用了和PPO一致的信赖域切割方式,并且把GAE的参数使用在了TD更新上,因此,MA-POCA和PPO实际上可以共用一套超参数。
在一个有共享奖励的合作环境中,智能体的行为方式会使整个群体的未来奖励最大化。但是,当单个代理的当前行为导致智能体本身的行为终止(例如自我牺牲)时,它已被排除在环境之外,它不能再观察到队伍获得奖励时的环境状态,也不再能够获得小组后来可能获得的奖励。因此,智能体必须学会最大化这些无法实际得到的奖励。这被称为死后信用分配问题。虽然通过引入吸收状态可以表达已经灭亡的智能体状态,但在实际使用中会让吸收状态的数量不恒定,从而使基于神经网络的函数近似器的训练变得复杂,计算资源也必须应用于不影响环境的智能体。MA-POCA在Critic网络的输入部分加入了自注意力网络后,解决了这些问题,因此网络可以在任意时候添加和删除智能体。
可参考的译文:MA-POCA
相关案例:
ML-Agents案例之地牢逃脱
ML-Agents案例之推箱子游戏
ML-Agents案例之双人足球