多智能体强化学习-MAAC

引入注意力机制的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:OiP(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,sT[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(πθ(atst))t=tγttrt(st,at)

actor- critic

γ t ′ − t r t ′ ( s t ′ , a t ′ ) \gamma^{t'-t}rt'(s_{t'},a_{t'}) γttrt(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(πθ)=EsD,aπ[θlog(πθ(as))(αlog(πθ(as))+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(πθ (as))]

MAAC

主要思想:利用attention机制从其他智能体的观测-动作对中选取重要的信息来构造每个智能体的critic的输入,解决扩展性问题,帮助智能体有选择性的筛选出重要的环境信息,忽略不重要的信息。
多智能体强化学习-MAAC_第1张图片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) αijexp(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=1NE(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(aioi))]
每个智能体策略(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(πθ)=EsD,aπ[θilog(πθi(aioi))(αlog(πθi(aioi))+Qiϕ(o,a)b(o,ai))]
b ( o , a i ) b(o,a_i) b(o,ai)用反事实基线计算优势函数,和COMA类似。
在MADDPG中,其他智能体的动作是直接从经验池回放中采样,这样可能会导致过采样,在MAAC中,所有智能体的动作都从当前策略中采样,保证智能体体能够在当前策略上进行协同。

实验部分

实验环境

多智能体强化学习-MAAC_第2张图片

多智能体强化学习-MAAC_第3张图片

1.测试算法的可扩展性,合作环境
2.测试算法处理与奖励相关信息的能力,例如足球比赛(信用分配)
多智能体强化学习-MAAC_第4张图片

你可能感兴趣的:(多智能体强化学习,人工智能,强化学习)