将深度强化学习技术与多智能体协作相结合,可以帮助解决现代军事决策、虚拟游戏等多个领域中的复杂任务场景。而 值分解 是平衡智能体可拓展性和环境平稳性的重要思想。
作为该思想的经典算法,QMIX将联合动作值函数近似为局部动作值函数的单调非线性组合,在StarCraftII游戏中取得了较好的表现。
一、背景介绍
因为任务场景更为复杂,还存在任务耦合情况,所以涌现了分层强化学习、多智能体强化学习 方向的研究。
多智能体强化学习不是单个智能体的简单堆叠。可以引入 博弈论 的理念,探寻问题的均衡解而不是最优解,最终得到让智能体都满意的策略组合。由单智能体过渡到多智能体会出现维度爆炸、环境非平稳性、信度分配问题。针对这些问题,有一些研究方向,如对手建模、通信学习、模仿学习、信用分配等。
多智能体间关系包括 合作、竞争、混合。这里只涉及到合作型的多智能体强化学习。这个方向一个比较重要的问题是如何给多个智能体分配奖励(信用分配),一个直观的说法就是如何把团队整体取得的奖励分配给每一个智能体,以督促智能体相互合作使得全局利益最大化。
在多智能体强化学习中一个关键的问题就是,如何 学习联合动作值函数,因为该函数的参数会随着智能体数量的增多而成指数增长,如果动作值函数的输入空间过大,则很难拟合出一个合适函数来表示真实的联合动作值函数。另一个问题就是学得了联合动作值函数后,如何通过联合值函数提取出一个优秀的 分布式的策略。这其实是单智能体强化学习拓展到MARL的核心问题。
二、相关知识
Dec-POMDP
将部分可观察马尔可夫决策过程扩展到多智能体领域。在实际环境中,智能体很少能获得完整的状态信息。因此也就失去了马尔科夫性。部分可观马尔可夫决策过程(POMDP)就能很好的表达这种状态无法完全获取的动态特性。
合作关系的多智能体场景可以被建模为分布式部分可观察马尔可夫决策过程(Dec-POMDP),由元组 < N , S , U , P , R , O , Z , n , γ > <N,S,U,P,R,O,Z,n,\gamma> <N,S,U,P,R,O,Z,n,γ>来定义。其中,𝑁 ={1, 2, … , 𝑛} 表示有限数量的智能体集合;S 表示环境状态的集合,s∈S 表示环境的真实状态;U 表示联合动作空间,每一个时间步 t 每个智能体 i∈N 选择一个动作 u i ∈ U i u^i\in U^i ui∈Ui 组成联合动作 u∈U;将联合动作作用于环境,进而得到下一步状态,对应的转移方程为 P ( s ′ ∣ s , u ) : S × U × S → [ 0 , 1 ] P(s^{\prime}|s,u){:}S\times U\times S\to[0,1] P(s′∣s,u):S×U×S→[0,1];O 表示联合观察的集合;Z 表示观察概率函数; R ( s , u ) : S × U → R R(s,u){:}S\times U\to R R(s,u):S×U→R 表示奖励函数; γ ∈ [ 0 , 1 ] \gamma\in[0,1] γ∈[0,1] 表示折扣因子。
在多智能体协作场景中,单智能体常处于部分可观察环境。每个智能体由观察概率函数 Z ( s , u ) : S × U → 0 Z(s,u){:}S\times U\to0 Z(s,u):S×U→0 得到局部观察信息 o i ∈ O {\boldsymbol{o}}^{i}\in O oi∈O;每个智能体的动作-观察历史表示为 τ i ∈ T ≡ ( 0 × U i ) ∗ \tau^{i}\in T\equiv(0\times U^{i})^{*} τi∈T≡(0×Ui)∗,即从初始状态开始的时序动作-观察历史;对应的所有智能体的时序动作-观察历史可以表示为 τ = ( τ 1 , τ 2 , … , τ n ) \tau=(\tau^{1},\tau^{2},\ldots,\tau^{n}) τ=(τ1,τ2,…,τn);基于此构建每个智能体的随机策略函数,表示为 π i ( u i ∣ τ i ) : T × U → [ 0 , 1 ] \pi^i(u^i|\tau^i){:}T\times U\to[0,1] πi(ui∣τi):T×U→[0,1];联合策略对应的联合动作值函数表示为 Q t o t π ( τ , u ) = E τ ∈ T N , u ∈ U [ ∑ t = 0 ∞ γ t R ( s , u ) ] Q_{tot}^{\pi}(\tau,u)=E_{\tau\in T^{N},u\in U}[\sum_{t=0}^{\infty}\gamma^{t}R(s,u)] Qtotπ(τ,u)=Eτ∈TN,u∈U[∑t=0∞γtR(s,u)],其中 τ ∈ T N \tau\in T^{N} τ∈TN 指联合动作-观察历史,此时值函数与动作-观察历史有关,而不是与状态有关。
DRQN
DQN算法首先将深度学习的方法引入到强化学习,在Q-learning的基础上增加卷积神经网络、经验回放机制和目标网络,与原有的列表方法相比,能处理高维的状态-动作空间。它是基于值函数的方法,先学习动作值函数,后根据估计的动作值函数选择动作。
为了使其适用于部分可观察马尔可夫决策过程,将DQN进一步改进为深度循环Q网络(DRQN)算法。它将DQN卷积层后的全连接层替换为LSTM网络,能够记忆历史状态,在信息缺失的情况下更具鲁棒性,以此缓解观察与状态不等同的问题,使其能更好地逼近Q函数。
CTDE
集中训练-分布执行框架。在训练时,利用、共享一些信息,帮助更有效地分布式执行。这种模式下,学习联合动作值函数会更具表达性,可以更加精确地捕捉各个智能体采取动作的效果;但联合动作值函数输入空间较大,相对更难学习,即便可以学习,也无法从中显式地提取分布式策略。
将深度强化学习从单智能体拓展到多智能体有 分布式、集中式、混合式 三种思路。采取智能体独立更新的方式,便于进行数量上的扩展,但由于多个智能体都不考虑其他智能体的状态和动作,不断更新自身策略,会导致环境的不断变化。而同时考虑所有智能体的状态信息,在智能体数量较多时,计算复杂度会呈指数级增长,从而产生维度灾难等问题。为平衡智能体可拓展性和环境平稳性,可以综合分布式和集中式的框架,采用集中训练-分布执行(CTDE)机制。
Q
t
o
t
Q_{tot}
Qtot:中心式的;联合动作值函数
Q
a
Q_{a}
Qa:针对每个智能体;局部动作值函数
CTDE问题的几种解决方案
一种实现方式 基于Actor-Critic框架 。将CTDE机制与AC框架相结合,集中式训练值函数,并以此指导策略网络的优化,进而实现分布式执行。
Lowe R等人基于此思路,将DDPG算法扩展到多智能体领域,提出了多智能体深度确定性策略梯度(MADDPG)算法,使每个智能体有独立的Actor和Critic网络,并用Critic网络综合考虑多个智能体的信息;Foerster J等人提出反事实多智能体策略梯度(COMA)算法,使用联合Critic网络,并引入了反事实基线;Mao H等人在MADDPG基础上引入注意力机制,对其他智能体的策略进行建模,进一步提出基于注意力机制的MADDPG;Iqbal S等人根据SAC算法,在多智能体领域提出了对应的MAAC算法,通过共享参数的注意力机制来实现集中训练;Zhou M等人提出的LICA算法,使用超网络保留状态信息,并提出在探索时采用自适应熵正则化进行改进;Yu, C.等人基于PPO算法提出适用于多智能体的MAPPO算法,融合PPO的实战技巧并另外提出一些建议,使其作为on policy算法,与之前的off policy算法相比仍有较好的表现。
另一种思路是 值分解。针对动作值函数的表示和使用,通常涉及到联合动作值函数和局部动作值函数两部分。仅考虑局部动作值函数,将其他智能体作为环境变量,如IQL算法,会导致环境不稳定,进而无法收敛;仅考虑联合动作值函数,如值函数是集中式的COMA算法,在智能体数量较多时,会存在值函数难以训练和收敛的问题。而综合考虑两者,如VDN算法、QMIX算法,结合了CTDE机制的思路,先分布式学习局部动作值函数,后集中所有局部动作值函数构建联合动作值函数,能够使计算复杂度呈线性增长。
值分解思路在多智能体协作问题中得到了广泛应用,可以用于处理信用分配问题,即设计将智能体整体的联合奖励分配到每个智能体的方案,督促多个智能体的相互合作以取得最大化的全局利益。前面概述的COMA算法、LICA算法、QMIX算法等,一定程度上解决了信用分配的问题,都涉及到了值分解的思路。
IQL(independent Q-learning)
放弃中心式的 Q_tot,将其他智能体作为环境变量,对所有智能体进行分散学习独立的局部动作值函数。在部分应用中较好的效果。
如IQL,每个智能体执行一个Q-learning算法,对每个智能体来说,智能体间没有交互,各自学习和探索,会导致环境的不稳定,进而无法收敛。
COMA(Counterfactual Multi-Agent Policy Gradient)
学习中心式的 Q_tot,如COMA。在Actor-Critic框架中使用联合动作值函数进行集中训练,通过策略网络实现分布执行,在智能体数量较多的情况下,动作值函数很难训练和收敛。
VDN(value decomposition networks)
学习中心式但可分解的 Q t o t Q_{tot} Qtot,如VDN算法、QMIX算法等。
在处理多智能体协作问题时,涉及到值分解思路的算法需要考虑两方面问题:一是如何学习联合动作值函数,二是怎样从联合值函数中分解出合理的分布式的策略。针对这两个问题,VDN算法将每个智能体的局部动作值函数 Q i Q^{i} Qi 的 相加求和,以此作为联合动作值函数的逼近,用公式1表示为: Q t o t ( τ , u ) = ∑ i = 1 n Q i ( τ i , u i ; θ i ) , ∀ i ∈ N ( 1 ) Q_{tot}(\tau,u)=\sum_{i=1}^{n}Q^{i}(\tau^{i},u^{i};\theta^{i})\:,\forall i\in N\quad(1) Qtot(τ,u)=i=1∑nQi(τi,ui;θi),∀i∈N(1)
联合动作值函数可分解为单个智能体的局部动作值函数的线性和,每个智能体再由各自的局部值函数选择累计期望奖励最大的动作。由此,每个智能体能够根据局部观察信息独立地执行动作,复杂的多智能体学习问题被分解为多个局部的更易学习的子问题。
三、QMIX算法
QMIX: Monotonic Value Function Factorisation for Deep Multi-Agent Reinforcement Learning
QMIX算法:用于深度多智能体强化学习的单调值函数分解
在VDN上进行拓展:求和相加 -> 非线性性函数(混合网络) + 全局状态信息辅助
单调性相同:对联合动作值函数取argmax <=> 对每个局部动作值函数取argmax
argmax
u
Q
tot
(
τ
,
u
)
=
(
argmax
u
1
Q
1
(
τ
1
,
u
1
)
⋮
argmax
u
n
Q
n
(
τ
n
,
u
n
)
)
(
3
)
\underset{\mathrm{u}}{\operatorname{argmax}} Q_{\text {tot }}(\boldsymbol{\tau}, \mathbf{u})=\left(\begin{array}{c} \operatorname{argmax}_{u^1} Q_1\left(\tau^1, u^1\right) \\ \vdots \\ \operatorname{argmax}_{u^n} Q_n\left(\tau^n, u^n\right) \end{array}\right)\quad(3)
uargmaxQtot (τ,u)=
argmaxu1Q1(τ1,u1)⋮argmaxunQn(τn,un)
(3)
分布式策略:贪心地通过局部
Q
i
Q^{i}
Qi 获取最优动作
∂
Q
t
o
t
∂
Q
i
≥
0
,
∀
i
∈
{
1
,
2
,
.
.
.
,
n
}
(
2
)
\frac{\partial Q_{tot}}{\partial Q^i}\ge0,\forall i\in\{1,2,...,n\}\quad(2)
∂Qi∂Qtot≥0,∀i∈{1,2,...,n}(2)
最终的代价函数为:
L
(
θ
)
=
∑
i
=
1
b
[
(
y
i
t
o
t
−
Q
t
o
t
(
τ
,
u
,
s
;
θ
)
)
2
]
(
4
)
\begin{aligned}\mathcal{L}(\theta)&=\sum_{i=1}^b\left[\left(y_i^{tot}-Q_{tot}(\tau,\mathbf{u},s;\theta)\right)^2\right]\end{aligned} \quad(4)
L(θ)=i=1∑b[(yitot−Qtot(τ,u,s;θ))2](4)
更新用到了DQN的思想:
y
t
o
t
=
r
+
γ
max
u
′
Q
t
o
t
(
τ
′
,
u
′
,
s
′
;
θ
−
)
y^{t o t}=r+\gamma \max _{\mathbf{u}^{\prime}} Q_{t o t}\left(\boldsymbol{\tau}^{\prime}, \mathbf{u}^{\prime}, s^{\prime} ; \theta^{-}\right)
ytot=r+γmaxu′Qtot(τ′,u′,s′;θ−)
VDN 算法采用的线性分解模式过于简单,只能表示有限的联合动作值函数,严重限制了集中式联合动作值函数的表征能力;在训练过程中也没有利用额外的状态信息,有很大的改进空间。
QMIX 引入混合网络来学习联合动作值函数与局部动作值函数之间的非线性关系,并在训练过程中加入了全局状态信息。相比于VDN的线性求和,QMIX使用神经网络来整合各个局部值函数。该算法认为,只要满足单调性约束(公式2),就能保证使局部动作值函数取最大值的动作就是使联合动作值函数取最大值的动作,即最优联合动作和最优动作联合相同(由公式3表示)
具体实现模型如图所示,中间为模型的主体,右边为每个智能体的结构,左边为混合网络。
每个智能体网络采取背景知识中提到的DQRN结构,以当前的观测和上一时间步的动作作为输入,得到局部值函数 Q i Q^{i} Qi。这里使用的门控RNN网络GRU,与LSTM网络一样,它可以利用动作-观察历史以应对部分可观察场景,同时计算更为简便。之后由混合网络将每个智能体网络输出的局部 Q i Q^{i} Qi,以单调的形式混合组成联合的 Q t o t Q^{tot} Qtot。该部分采用超网络,将全局状态信息 s t s_{t} st 作为输入,输出混合网络中每一层的权重和偏移量。为了保证单调性,需要保证权重大于0,因此对权重采用了绝对值激活函数,而对偏移量仅需采用普通的Relu激活函数。这种方式没有将全局状态信息直接作为混合网络的输入,可以避免额外的全局信息被加入单调性约束。QMIX的训练方式为端到端训练(使用的损失函数见公式4),其中b为从经验池中采样的样本数量, θ − \theta^{-} θ−表示目标网络的参数。
实验验证
实验及分析方法:与baseline算法的对比;消融实验
采用环境:星际争霸2模拟实验环境(SC2LE)
分布式地控制我方智能体,对战敌方;智能体的行为空间离散
动作:移动到某个方向、攻击某个智能体、停止、空行为
衡量指标:平均胜率(算法在一定时间内击败所有敌方单位的机率)
实验结果:对比IQL和VDN,收敛速度和最终收敛的胜率上都存在优势。
消融实验:引入非线性和全局状态信息,对模型有帮助。
四、基于QMIX的改进
QTRAN -> QTRAN++:满足IGM;不引入其他的假设限制,适用于更加广泛的问题
QATTEN:QMIX和VDN等算法对联合Q值的分解没有理论支撑;增加注意力机制
加权QMIX:设计权重函数,对QMIX的loss函数中每个联合动作的重要性进行加权
QPLEX:根据IGM提出advantage IGM的概念,将对联合值函数的限制转换为对优势函数的限制,从而简化值函数的学习文章来源:https://www.toymoban.com/news/detail-842879.html
虽然实验证明这些算法已经能够在很多对战场景中取得大概率胜利,但仍存在一些未能解决的问题(如不适用于SMAC超复杂场景)。未来可以从以下角度对值分解算法进行扩展:一是可以引入内在奖励机制,使值分解算法可以应对奖励稀疏问题;二是将其扩展到AC框架中,使之能解决连续动作空间中的多智能体协作问题;三是与其他机制(如通信、协作图、任务/角色分配等)相结合,解决更大规模协作中,受距离或分工等因素的影响,智能体间紧密度不同的问题。文章来源地址https://www.toymoban.com/news/detail-842879.html
到了这里,关于【多智能体强化学习】协作 + 值分解 + QMIX算法及其改进的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!