协同智能体强化学习:MADDPG方法详解
最编程
2024-07-29 15:47:32
...
多智能体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中需要用到其他智能体的策略进行更新。获得其他智能体的观测和策略不是一个特别严苛的假设;如果我们的目的是训练智能体在模拟中表现出复杂的交流通信行为,则这个信息通常是能被所有智能体使用的。但是,如果有必要的话,我们可以放松这个假设,通过从观测中获得其他智能体的策略。
推荐阅读
-
实操解析:常用多智能体强化学习模拟环境详解(收藏版,超实用)
-
详解多智能体强化学习算法系列(三期):QMIX、MADDPG与MAPPO的深度解析
-
实用讲解:多智能体强化学习算法进阶(下)—— MADDPG、QMIX、MAPPO详解
-
深入理解强化学习论文:MADDPG方法详解
-
实用讲解:多智能体强化学习算法进阶(下)—— MADDPG、QMIX、MAPPO详解
-
【一】最新多智能体强化学习方法【总结】本人:多智能体强化学习算法【一】【MAPPO、MADDPG、QMIX】
-
详解多智能体强化学习算法系列(三期):QMIX、MADDPG与MAPPO的深度解析
-
协同智能体强化学习中的MADDPG方法详解
-
理解协同竞争环境的多智能体Actor-Critic方法:基于NeurlPS 2017的MADDPG论文解析
-
协同智能体强化学习中的MADDPG方法详解