多智能体强化学习-MADDPG

论文地址: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(θ)=Espμ[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(θ)=EsD[θμθ(as)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)=Espu,aiπi[θilogπi(aioi)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,aD[θiμi(aioi)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(ss,a1,...,aN)=P(ss,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(ajoj)+λ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),...,μ^iN(oN)).(8)
其中, μ ^ i ′ j \hat\mu_i'^j μ^ij表示近似策略 μ ^ 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)=Ekunif(1,K),spμ,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,aDi(k)[θi(k)μi(k)(aioi)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,还不知道效果,可以试一下)。我进一步尝试将智能体的数量增加,但是无法收敛,智能体没有学到策略。

  • 4
    点赞
  • 42
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值