引入注意力机制的actor-critic强化学习
论文链接:https://arxiv.org/pdf/1810.02912.pdf
代码链接:https://github.com/shariqiqbal2810/MAAC
摘要
本文主要思想是学习一个具有注意力机制的集中式critic。(CTDE方法中,训练时拥有上帝视角,提高学习效率,通过从所有智能体那里获得的消息进行集中学习critic,执行时各自独立决策actor),在训练期间的每个时间点动态的选择要关注的智能体,从而在具有复杂交互的多智能体环境中提高性能。(有点像MADDPG和COMA的结合体)(off-policy)
方法
将多智能体任务建模为POMDP框架 G ( S , A , O , P , R , γ ) \mathcal{G}(S,A,O,P,R,\gamma ) G(S,A,O,P,R,γ),智能体部分可观测,每个智能体学习一个策略 π i : O i → P ( A i ) \pi_i: O_i \rightarrow P(A_i) πi:Oi→P(Ai), π i \pi_i πi将每个智能体的观测值映射到其对应的一系列动作的分布。智能体的目标是学习一个使其期望折扣回报最大的策略: J i ( π i ) = E a 1 ∼ π 1 , . . . , a N ∼ π N , s ∼ T [ ∑ t = 0 γ t r i t ( s t , a 1 t , . . . , a N t ) ] J_i(\pi_i)=E_{a_1\sim \pi_1,...,a_N\sim \pi_N,s\sim T}[\sum_{t=0}\gamma^tr_{it}(s_t,a_{1t},...,a_{Nt})] Ji(πi)=Ea1∼π1,...,aN∼πN,s∼T[t=0∑γtrit(st,a1t,...,aNt)]
策略梯度评估:
∇ θ J ( π θ ) = ∇ θ l o g ( π θ ( a t ∣ s t ) ) ∑ t ′ = t γ t ′ − t r t ′ ( s t ′ , a t ′ ) \nabla_{\theta}J(\pi_{\theta})=\nabla_{\theta}log(\pi_{\theta}(a_t|s_t))\sum_{t'=t}\gamma^{t'-t}rt'(s_{t'},a_{t'}) ∇θJ(πθ)=∇θlog(πθ(at∣st))t′=t∑γt′−trt′(st′,at′)
actor- critic
γ
t
′
−
t
r
t
′
(
s
t
′
,
a
t
′
)
\gamma^{t'-t}rt'(s_{t'},a_{t'})
γt′−trt′(st′,at′)会带来高方差,actor-critic的方法旨在利用except-return的函数估计来缓解这个问题,例如学习一个函数来估计给定状态,动作的excepted discounted returns,通过off-policy的TD,最小化回归损失:
L
Q
(
ϕ
)
=
E
(
s
,
a
,
r
,
s
′
)
∼
D
[
(
Q
ϕ
(
s
,
a
)
−
y
)
2
]
y
=
r
(
s
,
a
)
+
γ
E
a
′
∼
π
(
s
′
)
[
(
Q
(
ϕ
⃗
)
(
s
′
,
a
′
)
)
]
L_Q(\phi)=E_{(s,a,r,s')\sim D}[(Q_\phi(s,a)-y)^2] y=r(s,a)+\gamma E{a'\sim \pi(s')[(Q_{(\vec\phi)}(s',a'))]}
LQ(ϕ)=E(s,a,r,s′)∼D[(Qϕ(s,a)−y)2]y=r(s,a)+γEa′∼π(s′)[(Q(ϕ)(s′,a′))]
soft actor-critic
为了鼓励探索,避免收敛到非最优的确定性策略,提出了最大熵强化学习方法- soft value function,在策略梯度中加入熵项:
∇
θ
J
(
π
θ
)
=
E
s
∼
D
,
a
∼
π
[
∇
θ
l
o
g
(
π
θ
(
a
∣
s
)
)
(
−
α
l
o
g
(
π
θ
(
a
∣
s
)
)
+
Q
ϕ
(
s
,
a
)
−
b
(
s
)
)
]
\nabla_{\theta}J(\pi_{\theta})=E_{s\sim D,a\sim \pi}[\nabla_{\theta}log(\pi_{\theta}(a|s))(-\alpha log(\pi _{\theta}(a|s))+Q_\phi(s,a)-b(s))]
∇θJ(πθ)=Es∼D,a∼π[∇θlog(πθ(a∣s))(−αlog(πθ(a∣s))+Qϕ(s,a)−b(s))]
相应的,值函数的时序差分TD的损失函数也修改为一个新的目标:
y
=
r
(
s
,
a
)
+
γ
E
a
′
∼
π
(
s
′
)
[
(
Q
ϕ
⃗
)
(
s
′
,
a
′
)
−
α
l
o
g
(
π
θ
⃗
(
a
′
∣
s
′
)
)
]
y=r(s,a)+\gamma E_{a'\sim\pi(s')}[(Q_{\vec\phi)}(s',a')-\alpha log(\pi_{\vec\theta}(a'|s'))]
y=r(s,a)+γEa′∼π(s′)[(Qϕ)(s′,a′)−αlog(πθ(a′∣s′))]
MAAC
主要思想:利用attention机制从其他智能体的观测-动作对中选取重要的信息来构造每个智能体的critic的输入,解决扩展性问题,帮助智能体有选择性的筛选出重要的环境信息,忽略不重要的信息。
attention:每个智能体向其他智能体查询相关的O和A,并将这些信息合并到值函数的估计中。
Q
i
ϕ
(
o
,
a
)
Q_i^{\phi}(o,a)
Qiϕ(o,a)是由智能体i的O和A,以及其他智能体的信息贡献:
Q
i
ϕ
(
o
,
a
)
=
f
i
(
g
i
(
o
i
,
a
i
)
,
x
i
)
Q_i^{\phi}(o,a)=f_i(g_i(o_i,a_i),x_i)
Qiϕ(o,a)=fi(gi(oi,ai),xi)
o
i
,
a
i
o_i,a_i
oi,ai表示所有智能体的观测集合和动作集合。
f
i
f_i
fi
g
i
g_i
gi是两层的MLP,
g
i
g_i
gi用于对智能体的观测-动作对进行embedding编码.
x
i
x_i
xi是其他智能体贡献的加权和
x
i
=
∑
i
≠
j
α
i
j
v
j
=
∑
i
j
α
j
h
(
V
g
j
(
o
j
,
a
j
)
)
x_i=\sum_{i\ne j}\alpha_{i j} v_j=\sum_{i\ j}\alpha_j h(Vg_j(o_j,a_j))
xi=i=j∑αijvj=i j∑αjh(Vgj(oj,aj))
attention机制:
α
i
j
\alpha_{i j}
αij是智能体i对智能体j的注意力权重,
v
j
v_j
vj是智能体j的观测-动作对的embedding,过程如下:首先用
g
j
g_j
gj进行embedding编码,然后利用共享矩阵V 完成线性转换,最后进行非线性操作 h.(例如ReLU)。
α
i
j
\alpha_{i j}
αij通过比较智能体i和智能体j的embedding向量的相似性(
e
i
,
e
j
e_i,e_j
ei,ej),得到:
α
i
j
∝
e
x
p
(
e
j
T
W
k
T
W
q
e
i
)
\alpha_{i j} \propto exp(e_j^TW_k^TW_qe_i)
αij∝exp(ejTWkTWqei)
其中,
W
q
W_q
Wq将
e
i
e_i
ei映射为query,
W
k
T
W_k^T
WkT将
e
j
e_j
ej映射为key
MAAC中将来自不同attention head的贡献作为单个向量进行串联作为critic的输入,每一个head可以专注于不同智能体的混合权重。
所有的extracting 选择符,键,值(
W
k
,
W
q
,
V
W_k,W_q,V
Wk,Wq,V)的权重在所有的智能体之间共享,形成一个共同的嵌入空间。这种参数共享能够在异构智能体的情况下学到共同的embedding空间。
MAAC的思想就是将其他智能体的观测-动作对先进行embedding操作然后利用注意力权重加权相加然后再与自身智能体的观测-动作对连接起来作为critic的输入,注意力权重度量了两个智能体embedding的相似程度。直观上来看,这样做能够让智能体更多地关注与自己相似的智能体,理论上来说对信息的利用率应该更高,另外通过将所有智能体的观测-动作对合并成一个单维度向量,也解决了扩展性问题。
critic更新:(和COMA类似)
由于参数共享,所有的critic一起更新以最小化联合回归损失函数:
L
Q
(
ψ
)
=
∑
i
=
1
N
E
(
o
,
a
,
r
,
o
′
)
∼
D
[
(
Q
i
ψ
(
o
,
a
)
−
y
i
)
2
]
L_Q(\psi)=\sum_{i=1}^NE_{(o,a,r,o')\sim D}[(Q_i^{\psi}(o,a)-y_i)^2]
LQ(ψ)=i=1∑NE(o,a,r,o′)∼D[(Qiψ(o,a)−yi)2]
y
i
=
r
i
+
γ
E
a
′
∼
π
θ
⃗
(
o
′
)
[
Q
i
ψ
⃗
(
o
′
,
a
′
)
−
α
l
o
g
(
π
θ
⃗
i
(
a
i
′
∣
o
i
′
)
)
]
y_i=r_i+\gamma E_{a'\sim \pi_{\vec{\theta}(o')}}[Q_i^{\vec{\psi}}(o',a')-\alpha log(\pi_{\vec{\theta}_i}(a_i'|o_i'))]
yi=ri+γEa′∼πθ(o′)[Qiψ(o′,a′)−αlog(πθi(ai′∣oi′))]
每个智能体策略(policy)的更新:(和COMA类似)
∇
θ
i
J
(
π
θ
)
=
E
s
∼
D
,
a
∼
π
[
∇
θ
i
l
o
g
(
π
θ
i
(
a
i
∣
o
i
)
)
(
−
α
l
o
g
(
π
θ
i
(
a
i
∣
o
i
)
)
+
Q
i
ϕ
(
o
,
a
)
−
b
(
o
,
a
i
)
)
]
\nabla_{\theta_i}J(\pi_{\theta})=E_{s\sim D,a\sim \pi}[\nabla_{\theta_i}log(\pi_{\theta_i}(a_i|o_i))(-\alpha log(\pi _{\theta_i}(a_i|o_i))+Q_i^\phi(o,a)-b(o,a_i))]
∇θiJ(πθ)=Es∼D,a∼π[∇θilog(πθi(ai∣oi))(−αlog(πθi(ai∣oi))+Qiϕ(o,a)−b(o,ai))]
b
(
o
,
a
i
)
b(o,a_i)
b(o,ai)用反事实基线计算优势函数,和COMA类似。
在MADDPG中,其他智能体的动作是直接从经验池回放中采样,这样可能会导致过采样,在MAAC中,所有智能体的动作都从当前策略中采样,保证智能体体能够在当前策略上进行协同。
实验部分
实验环境
1.测试算法的可扩展性,合作环境
2.测试算法处理与奖励相关信息的能力,例如足球比赛(信用分配)