论文地址:Multi-Agent Actor-Critic for Mixed Cooperative-Competitive Environments.
代码地址:Multi-Agent Deep Deterministic Policy Gradient (MADDPG)
本文以DDPG(单智能体)算法为基础,提出一种CTDE集中式训练分布式执行的MADRL算法,提供了一个既可以适应于通信信道的协作场景,也可以应用于智能体之间只存在物理交互的竞争性场景。
摘要
传统算法用于多智能体环境下的困难:
- Q-learning受到环境不稳定性的挑战
- 策略梯度的方法随着智能体数量增加,方差变大。
本文的贡献: - 提出了一种actor-critic方法的变种:在考虑其他智能体action-policy的同时,能够学习到需要多智能体的协同policy;
- 引入了一种训练方式,集成了各智能体的policy,来形成一个更加鲁棒的多智能体policy。
- 在既合作又竞争的场景下进行测试,验证在这种场景下,智能体集群能够学习到物理和信息层面的合作策略。
引言
很多重要场景中会涉及到多个智能体之间的交互,在这种共同的交互演化过程中,会有新的行为出现,问题会变得更加复杂。
传统的强化学习方法,例如Q-learning,policy gradient不适用于多智能体环境。主要问题有以下几个方面:
- 维度爆炸:多智能体系统中动作空间,状态空间和参数数量大幅度增加,迫使计算机量呈指数递增,导致维度爆炸。
- 环境非平稳:在训练过程中,每个智能体都在变化,而且从每个智能体的角度来看,环境都会变得不稳定,严重阻碍了直接利用先前的经验重放。
- 信度分配:
针对以上,本文提出了一个通用的多智能体学习算法: - 智能体在执行时只使用自己的观测的学习策略
- 不假设环境模型和智能体之间的通信方法
- 适用于合作交互场景,竞争场景,合作竞争混合场景
本文采用集中训练,分散执行框架,训练时允许policy适用额外的信息,这些信息在测试时不会被用到。本文提出了一种actor-critic policy gradient方法的扩展(Q-learning无法胜任,因为一般来说Q函数在训练和测试时不能包含不同的信息),critic网络包含了其他智能体策略的额外信息,而actor网络只用到智能体自身的观测信息。训练完成后,分散执行,智能体仅使用自身的信息,该方法适用于合作和竞争的环境。
研究背景
策略梯度方法会有高方差梯度估计。在多智能体中,这个问题尤为凸显,因为一个智能体的奖励受到了其他智能体行为的影响。当智能体策略优化过程中不考虑其他智能体的行为时,仅以智能体自己的行为为条件的奖励表现出更多的可变性。在本文中,有一个简单的设定,在此设定下,梯度更新往正确方向上前进的概率随着智能体数量呈指数下降。
假设一:具有二元行为的N个智能体(通信动作,物理动作):
P
(
a
i
=
1
)
=
θ
i
P(a_i=1)=\theta_i
P(ai=1)=θi,其中
R
(
a
1
,
.
.
.
,
a
N
)
=
1
a
1
=
.
.
.
=
a
N
R(a_1,...,a_N)=1_{a_1}=...=a_N
R(a1,...,aN)=1a1=...=aN。假设在一个不知情的情景,其中智能体被初始化为
θ
i
=
0.5
,
∀
i
\theta_i=0.5,\forall i
θi=0.5,∀i。用策略梯度估计成本
J
J
J的梯度,有:
P
(
<
∇
^
J
,
∇
J
>
>
0
)
∝
(
0.5
)
N
P(<\hat \nabla J,\nabla J> >0)\varpropto(0.5)^N
P(<∇^J,∇J>>0)∝(0.5)N
∇
^
J
\hat \nabla J
∇^J是单样本的策略梯度估计,而
∇
J
\nabla J
∇J是真实的梯度。
常用的用于缓解值函数高方差的方法,在多智能体环境下是有问题的。
确定性策略梯度(DPG)算法:可以将策略梯度框架扩展到确定性策略
μ
θ
:
S
−
>
A
\mu_\theta : S->A
μθ:S−>A。特别是在一定条件下,可以把目标函数
J
(
θ
)
=
E
s
∼
p
μ
[
R
(
s
,
a
)
]
J(\theta)=E_{s\sim p^\mu}[R(s,a)]
J(θ)=Es∼pμ[R(s,a)]重写为:
∇
J
(
θ
)
=
E
s
∼
D
[
∇
θ
μ
θ
(
a
∣
s
)
∇
a
Q
μ
(
s
,
a
)
∣
a
=
μ
θ
(
s
)
]
.
(
3
)
\nabla J(\theta)=E_{s\sim D}[\nabla_\theta \mu_\theta(a|s)\nabla_aQ^\mu(s,a)|_{a=\mu_\theta(s)}]. (3)
∇J(θ)=Es∼D[∇θμθ(a∣s)∇aQμ(s,a)∣a=μθ(s)].(3)
由于这个定理依赖于
∇
a
Q
μ
(
s
,
a
)
\nabla_aQ^\mu(s,a)
∇aQμ(s,a),需要动作空间
A
A
A(策略
μ
\mu
μ)连续。
方法
多智能体actor-critic
算法约束条件:
- 学习的策略在执行时只能使用智能体自己的观察信息
- 不去假定环境动力学模型
- 不去假定任何智能体之间的通信假设
满足上述要求,将产生一个通用的多智能体学习算法,不仅可以应用具有明确通信方式的合作场景,还可以应用于竞争场景以及只涉及智能体之间的物理交互场景。
分散执行,集中训练框架:在训练时,允许使用额外的信息进行(包括其他智能体的策略),在测试执行时,这些信息不会被用到。(在Q-learning中训练和测试信息必须一致,因此Q-learning在这不能使用)。本文提出的actor-critic策略梯度方法的简单扩展,critic增加了关于其他智能体策略的额外信息。
具体方法:policy由 θ = θ 1 , θ 2 , . . . . . . , θ N \theta={\theta_1,\theta_2,......,\theta_N} θ=θ1,θ2,......,θN参数化的具有N个智能体的博弈场景,所有智能体的策略集合为 π = p i 1 , . . . . . . , π N \pi={pi_1,......,\pi_N} π=pi1,......,πN,智能体 i i i的期望收益梯度: J ( θ i ) = E [ R i ] J(\theta_i)=E[R_i] J(θi)=E[Ri]:
∇ θ i J ( θ i ) = E s ∼ p u , a i ∼ π i [ ∇ θ i l o g π i ( a i ∣ o i ) Q i π ( x , a 1 , . . . . . . , a N ) ] \nabla_{\theta_i}J(\theta_i)=E_{s\sim p^u,a_i \sim \pi_i}[\nabla\theta_ilog\pi_i(a_i|o_i)Q_i^\pi(x,a_1,......,a_N)] ∇θiJ(θi)=Es∼pu,ai∼πi[∇θilogπi(ai∣oi)Qiπ(x,a1,......,aN)]
其中, Q i π ( x , a 1 , . . . . . . , a N ) Q_i^\pi(x,a_1,......,a_N) Qiπ(x,a1,......,aN)是一个集中的动作值函数,它将所有智能体的动作 a 1 , . . . . . . , a N a_1,......,a_N a1,......,aN加上一些状态信息 x x x作为输入,输出智能体 i i i的 Q Q Q值。最简单的情况下, x x x包含所有智能体的观测值, x = ( o 1 , . . . , o N ) x=(o_1,...,o_N) x=(o1,...,oN),但是如果允许的话,我们也会加入一些附加的状态信息。因为每一个动作值函数 Q i π ( x , a 1 , . . . . . . , a N ) Q_i^\pi(x,a_1,......,a_N) Qiπ(x,a1,......,aN)是分开学习的,智能体可以有任意的奖励形式,包括竞争过程中的冲突奖励。
将上述想法扩展到确定性策略,考虑 N N N个连续的策略 μ θ i \mu_{\theta_i} μθi,参数为 θ i \theta_i θi,缩写为 μ i \mu_i μi,那么梯度写成:
∇ θ i J ( μ i ) = E x , a ∼ D [ ∇ θ i μ i ( a i ∣ o i ) ∇ a i Q i μ ( x , a 1 , . . . . . . , a N ) ∣ a i = μ i ( o i ) ] ( 5 ) \nabla_{\theta_i}J(\mu_i)=E_{x,a\sim D}[\nabla\theta_i\mu_i(a_i|o_i)\nabla_{a_i}Q_i^\mu(x,a_1,......,a_N)|a_i=\mu_i(o_i)] (5) ∇θiJ(μi)=Ex,a∼D[∇θiμi(ai∣oi)∇aiQiμ(x,a1,......,aN)∣ai=μi(oi)](5)
这里,经验重放池(replay buffer D D D)包含元组( x , x ′ , a 1 , . . . . . . , a N , r 1 , . . . . . , r N x,x',a_1,......,a_N,r_1,.....,r_N x,x′,a1,......,aN,r1,.....,rN),记录了所有智能体的经验(动作,状态,奖励)。集中的动作值函数 Q i μ Q_i^\mu Qiμ更新如下:
L ( θ i ) = E x , a , r , x ′ [ ( Q i μ ( x , a 1 , . . . , a N ) − y ) 2 ] , y = r i + γ Q i μ ′ ( x ′ , a ′ , . . . , a N ′ ) a j ′ = μ j ′ ( o j ) ( 6 ) \mathcal{L}(\theta_i)=E_{x,a,r,x'}[(Q_i ^\mu(x,a_1,...,a_N)-y)^2], y=r_i+\gamma Q_i^{\mu'}(x',a',...,a'_N)_{a_j'=\mu_j'(o_j)} (6) L(θi)=Ex,a,r,x′[(Qiμ(x,a1,...,aN)−y)2],y=ri+γQiμ′(x′,a′,...,aN′)aj′=μj′(oj)(6)
这里, μ ′ = μ θ 1 ′ , . . . , θ N ′ \mu'={\mu_{\theta_1',...,\theta_N'}} μ′=μθ1′,...,θN′是有延迟参数 θ i ′ \theta_i' θi′的目标策略集合。
MADDPG背后的主要动机是,如果我们知道所有智能体采取的动作,即使策略改变,环境也是稳定的。因为对任意的策略 π i ≠ π i ′ \pi_i\neq\pi_i' πi=πi′,有 P ( s ′ ∣ s , a 1 , . . . , a N ) = P ( s ′ ∣ s , a 1 , . . . , a N , π 1 ′ , . . . , π N ′ ) P(s'|s,a_1,...,a_N)=P(s'|s,a_1,...,a_N,\pi_1',...,\pi_N') P(s′∣s,a1,...,aN)=P(s′∣s,a1,...,aN,π1′,...,πN′)。
在方程6中需要用到其他智能体的策略进行更新。获得其他智能体的观测和策略不是一个特别严苛的假设;如果我们的目的是训练智能体在模拟中表现出复杂的交流通信行为,则这个信息通常是能被所有智能体使用的。但是,如果有必要的话,我们可以放松这个假设,通过从观测中获得其他智能体的策略。
模型扩展
MADDPG的两种扩展模式
推理其他智能体的策略
为了去掉上述假设(需要获得其他智能体的观测和策略来更新公式6),每个智能体
i
i
i可以有一个与智能体
j
j
j真实策略
μ
j
\mu_j
μj近似的
μ
^
ϕ
j
\hat{\mu}_\phi^j
μ^ϕj(其中
ϕ
\phi
ϕ是近似值的参数,简写为
μ
^
i
j
\hat\mu_i^j
μ^ij)。这个近似策略通过最大化智能体
j
j
j的动作对数概率加上一个熵正则化来进行学习
L
(
ϕ
i
j
)
=
−
E
o
j
,
a
j
[
l
o
g
μ
^
i
j
(
a
j
∣
o
j
)
+
λ
H
(
l
o
g
μ
^
i
j
)
]
.
(
7
)
\mathcal{L}(\phi_i^j)=-E_{o_j,a_j}[log\hat\mu_i^j(a_j|o_j)+\lambda H(log\hat\mu_i^j)]. (7)
L(ϕij)=−Eoj,aj[logμ^ij(aj∣oj)+λH(logμ^ij)].(7)
H
H
H是策略分布的熵,在近似策略中,公式6中的
y
y
y可以用
y
^
\hat y
y^代替
y
^
=
r
i
+
γ
Q
i
μ
′
(
x
′
,
μ
^
i
′
1
(
o
1
)
,
.
.
.
,
μ
^
i
′
N
(
o
N
)
)
.
(
8
)
\hat y=r_i+\gamma Q_i^{\mu'}(x',\hat\mu_i'^1(o_1),...,\hat\mu_i'^N(o_N)). (8)
y^=ri+γQiμ′(x′,μ^i′1(o1),...,μ^i′N(oN)).(8)
其中,
μ
^
i
′
j
\hat\mu_i'^j
μ^i′j表示近似策略
μ
^
i
j
\hat\mu_i^j
μ^ij的目标网络。公式7可以完全以在线更新方式进行优化:在更新
Q
i
μ
Q_i^\mu
Qiμ之前,集中
Q
Q
Q函数,从replay buffer取出每个智能体
j
j
j最新的样本来更新
ϕ
i
j
\phi_i^j
ϕij。在上边的等式中,我们直接将每个智能体的行为对数概率输入到
Q
Q
Q中,而不是采样的数据。
智能体的策略集合:
多智能体强化学习的一个主要问题是:智能体不断变化的策略而导致的环境非平稳性。这种情况在竞争环境下尤为明显,因为智能体可以通过过度适应竞争对手的行为而获得很强的策略。
为了获得对竞争对手的策略变化更稳健的多智能体策略,我们提出对
K
K
K个子策略进行汇总。在每一局游戏,我们为每个智能体随机选择一个子策略执行。假设策略
μ
i
\mu_i
μi是由
K
K
K个不同的子策略的集合,每个子策略
K
K
K由
μ
θ
i
(
K
)
\mu_{\theta_i}^{(K)}
μθi(K)表示(简写为
μ
i
(
K
)
\mu_i^{(K)}
μi(K))。对于智能体
i
i
i,我们最大化集成的目标:
J
e
(
μ
i
)
=
E
k
∼
u
n
i
f
(
1
,
K
)
,
s
∼
p
μ
,
a
∼
μ
i
(
k
)
[
R
i
(
s
,
a
)
]
J_e(\mu_i)=E_{k\sim unif(1,K),s\sim p^\mu,a\sim \mu_i^{(k)}}[R_i(s,a)]
Je(μi)=Ek∼unif(1,K),s∼pμ,a∼μi(k)[Ri(s,a)]
由于不同的子策略会在不同回合的游戏中被执行,因此为每个智能体
i
i
i的子策略
μ
i
(
K
)
\mu_i^{(K)}
μi(K))维护一个replay buffer
D
i
k
D_i^k
Dik。推导出集成的目标值关于
θ
i
k
\theta_i^{k}
θik的梯度:
∇
θ
i
(
k
)
J
e
(
μ
i
)
=
1
K
E
x
,
a
∼
D
i
(
k
)
[
∇
θ
i
(
k
)
μ
i
(
k
)
(
a
i
∣
o
i
)
∇
a
i
Q
μ
i
(
x
,
a
1
,
.
.
.
,
a
N
)
∣
a
i
=
μ
i
(
k
)
(
o
i
)
]
\nabla \theta_i^{(k)}J_e(\mu_i)=\frac1{K}E_{x,a\sim D_i^{(k)}}[\nabla_{\theta_i^{(k)}}\mu_i^{(k)}(a_i|o_i)\nabla _{a_i}Q^{\mu_i}(x,a_1,...,a_N)|_{a_i=\mu_i^{(k)}(o_i)}]
∇θi(k)Je(μi)=K1Ex,a∼Di(k)[∇θi(k)μi(k)(ai∣oi)∇aiQμi(x,a1,...,aN)∣ai=μi(k)(oi)]
实验
实验环境
场景:部分可观测,完全协作(智能体共享一套奖励)/竞争(目标相互冲突)
由N个智能体和L个地标组成,存在于一个具有连续空间和离散时间的二维世界中。智能体可以在环境中采取物理动作,并将通信动作传播给其他智能体。在本文中,并没有假设所有的智能体都有相同的动作和观察空间,或者依赖相同的策略
π
\pi
π。文中也考虑了双方既合作(所有智能体必需最大化共享的回报)又竞争(智能体有相互冲突的目标)的混合场景。在一些环境中智能体之间必须显示地通信才能获得好的回报,而在其他的环境中,智能体只是执行物理动作(不管通信动作)。
合作交流:
环境中包含两个智能体,一个说话者,一个听众,有三个不同颜色的地标。在每个回合,听众必须导航到目标地标,并根据距离目标地标的距离获得奖励。但是,听众只能观察到地标的相对位置和颜色,并不知道它要去到哪个地标。相反的,说话者能观察到正确地标的颜色,并且可以在每个时间步长产生一个由听众观察到的通信输出。因此,说话者必须根据听众的动作输出正确地标的颜色。(这对传统的强化学习算法提出了很大跳着站)
合作导航
在这个环境中,智能体必需通过物理动作相互合作到达目标地标集合
L
L
L。智能体能够观察到其他智能体和地标的相对位置,并根据任意智能体与每个地标的距离获得集体奖励。也就是说,智能体必需“覆盖”所有地标。并且,智能体占据着物理空间当他们之间碰撞时获得惩罚。智能体要学会推断他们必需覆盖的地标,并且避免与其他智能体碰撞。
远离
这个场景由
L
L
L个地标组成,包括一个目标地标,
N
N
N个知道目标地标的智能体,并根据他们与智能体的距离进行奖励。
M
M
M个反方智能体必需阻止合作智能体到达目的地。反方智能体通过将智能体从地标上推开,暂时占据地标来实现这一点。反方智能体也是根据他们与目标地标的距离获得奖励,但是他们不知道正确的目标,这需要从其他智能体的行动中推断出来。
物理欺骗
N个智能体合作到达N个地标。他们根据任何智能体到目标的最短距离得到奖励(因此只有一个智能体需要到达目标地标)。但是,一个单一的反方智能体也希望到达目标地标;问题在于反方智能体不知道哪个地标是正确的。因此,以反方智能体距离为目标而受到惩罚的合作智能体,学着分散并占据目标地标,以欺骗对手。
捕食
在一个随机产生的环境中,N个速度较慢的智能体合作围捕一个速度更快的猎物,而L个障碍物阻碍道路。每次合作智能体和猎物发生碰撞,智能体受到奖励而猎物受到惩罚。智能体观察到猎物的相对位置和速度,以及障碍物的位置。
隐蔽通信
这是一个敌方通信环境,在这个环境中,讲话的智能体(Alice)必传递一条信息给听话的智能体(Bob),Bob必需能够在另一端重构这个信息。然而,反方智能体(Eve)也在观察这个信道,想获得这条信息并且重构。Alice和Bob根据Eve重构的信息收到惩罚,因此,Alice必需使用随机生成的钥匙来编码她的信息,这个要是只有Alice和Bob知道。
算法比较
本文的策略在一个每层64个神经元的双层的RELU MLP中进行。为了支持离散的通信信息,使用Dumbel-Softmax估计器。将MADDPG和DDPG在竞争环境中学到的策略进行比较,并比较智能体和对手获得的成功。进行1000次迭代进行各种度量的评估。
在所有实验中,使用Adam优化器,学习率0.01,目标网络更新
τ
=
0.01
,
γ
=
0.95
\tau=0.01,\gamma=0.95
τ=0.01,γ=0.95。replay buffer设置为
1
0
6
10^6
106,每100次采样样本放在replay buffer后更新网络参数,batch size=1024,TPRO的batch size=50。为明显有成功或失败条件的环境(合作交流,物理欺骗,隐蔽通信)使用10个随机种子进行训练,其他环境使用3个随机种子。
合作交流场景:
25000回合以上的学习曲线结果
合作导航
捕食
物理欺骗
隐蔽通信
学习其他智能体策略的影响
我们评估了学习其他智能体在通信合作环境中的策略的有效性,遵从和之前实验相同的超参数,并设置
λ
=
0.01
\lambda=0.01
λ=0.01。结果如图所示。
尽管没有完全拟合其他智能体的策略,但通过近似策略能够到达与使用真实策略相同的成功率,且不会导致手来呢显著放慢。
训练集成策略的效果
专注于集成策略在竞争环境中的有效性,包括远离,合作导航和捕猎。K=3的子策略用于远离和合作导航的环境,K=2用于捕猎环境。为了加速收敛,我们要求合作智能体和敌方智能体在每一回合应该有相同的策略。
未来展望
Q的输入空间随着智能体个数N线性增长,无法扩展到大规模智能体系统中。
可重复性
(拙见)论文给出的代码可复现,提供的MPE多粒子环境易修改。文中说明该算法可解决离散和连续空间的任务,但是大部分都是离散任务,猜测可能是因为连续任务太难收敛了(最近出了一个M3DDPG,还不知道效果,可以试一下)。我进一步尝试将智能体的数量增加,但是无法收敛,智能体没有学到策略。