MADDPG(Multi-Agent Deep Deterministic Policy Gradient,多智能体深度确定性策略梯度) 是多智能体强化学习(MARL)领域集中式训练分布式执行(CTDE)范式的开山经典算法,由OpenAI与McGill大学于2017年在论文《Multi-Agent Actor-Critic for Mixed Cooperative-Competitive Environments》中提出。它专门解决多智能体环境中最核心的环境非平稳性问题,天然支持合作、竞争、混合三种交互场景,且适配连续动作空间,是目前多智能体连续控制任务的基准算法之一。


一、为什么需要MADDPG?单智能体算法的致命缺陷

在多智能体系统中,多个智能体同时与环境交互并学习策略,此时单智能体强化学习算法(如DQN、DDPG)会遭遇两个无法解决的核心问题:

1. 环境非平稳性(Non-Stationarity)

从单个智能体的视角看,环境的转移概率不仅取决于自身动作,还取决于其他所有智能体的动作。当其他智能体的策略随时间更新时,环境的动态会不断变化,违反了强化学习的马尔可夫平稳性假设。这会导致单智能体的价值函数(Q函数)持续波动,训练极不稳定,甚至完全发散。

2. 策略梯度方差爆炸

对于传统的分布式策略梯度算法,每个智能体仅根据自身的局部奖励更新策略。随着智能体数量的增加,全局奖励的方差会呈指数级增长,导致策略梯度估计极不准确,收敛速度极慢。

MADDPG通过**集中式训练分布式执行(CTDE)**的创新架构,完美解决了上述两个问题。


二、MADDPG核心思想:集中式训练,分布式执行(CTDE)

CTDE是目前多智能体强化学习最主流的训练范式,它平衡了训练的稳定性和执行的可行性:

1. 训练阶段(集中式)

  • 每个智能体都拥有独立的Actor网络Critic网络
  • Actor网络:仅输入自身的局部观测,输出确定的动作(继承DDPG的确定性策略)
  • Critic网络:输入所有智能体的观测和动作(全局信息),输出当前智能体的动作价值Q值
  • 核心优势:Critic利用全局信息评估动作价值,能够准确预测其他智能体的行为对当前智能体的影响,从而消除环境非平稳性带来的价值估计误差

2. 执行阶段(分布式)

  • 训练完成后,仅保留每个智能体的Actor网络
  • 每个智能体仅根据自身的局部观测独立决策,不需要与其他智能体进行任何通信
  • 核心优势:符合实际应用场景的要求(如机器人、自动驾驶等无法实时共享全局信息的系统)

MADDPG与单智能体DDPG的核心区别

维度 单智能体DDPG MADDPG
Critic输入 单个智能体的观测+动作 所有智能体的观测+动作
环境假设 平稳环境 非平稳环境
适用场景 单智能体任务 多智能体合作/竞争/混合任务
执行阶段 仅需自身观测 仅需自身观测

三、MADDPG理论基础与数学推导

1. 多智能体强化学习基本定义

考虑一个包含N个智能体的多智能体系统:

  • 每个智能体i有观测空间OiO_iOi、动作空间AiA_iAi
  • 策略μi:Oi→Ai\mu_i: O_i \to A_iμi:OiAi:确定性策略,输入观测oi∈Oio_i \in O_ioiOi,输出动作ai∈Aia_i \in A_iaiAi
  • 奖励函数ri:O×A→Rr_i: O \times A \to \mathbb{R}ri:O×AR:输入所有智能体的联合观测o=(o1,...,oN)o=(o_1,...,o_N)o=(o1,...,oN)和联合动作a=(a1,...,aN)a=(a_1,...,a_N)a=(a1,...,aN),输出智能体i的即时奖励
  • 联合状态转移概率P(s′∣s,a)P(s' | s, a)P(ss,a):给定联合状态sss和联合动作aaa,转移到下一个联合状态s′s's的概率
  • 智能体i的目标:最大化长期折扣期望回报J(θi)=E[∑t=0∞γtri(st,at)]J(\theta_i) = \mathbb{E}\left[\sum_{t=0}^\infty \gamma^t r_i(s_t, a_t)\right]J(θi)=E[t=0γtri(st,at)],其中θi\theta_iθi是Actor网络的参数,γ∈[0,1]\gamma \in [0,1]γ[0,1]是折扣因子

2. Critic网络更新(价值估计)

每个智能体i的Critic网络Qi(ϕi)Q_i(\phi_i)Qi(ϕi)(参数为ϕi\phi_iϕi)用于估计联合动作价值函数Qiμ(o,a)Q_i^\mu(o, a)Qiμ(o,a),即当所有智能体执行策略μ=(μ1,...,μN)\mu=(\mu_1,...,\mu_N)μ=(μ1,...,μN)时,智能体i在联合观测ooo下执行联合动作aaa的长期期望回报。

Critic网络的更新目标是最小化TD误差,损失函数为:
L(ϕi)=E(o,a,r,o′)∼D[(yi−Qi(o,a;ϕi))2] L(\phi_i) = \mathbb{E}_{(o,a,r,o') \sim D} \left[ \left( y_i - Q_i(o, a; \phi_i) \right)^2 \right] L(ϕi)=E(o,a,r,o)D[(yiQi(o,a;ϕi))2]
其中,目标Q值yiy_iyi由目标Critic网络Qi′(ϕi′)Q_i'(\phi_i')Qi(ϕi)和目标Actor网络μj′(θj′)\mu_j'(\theta_j')μj(θj)计算得到:
yi=ri+γ⋅(1−done)⋅Qi′(o′,μ1′(o1′),...,μN′(oN′);ϕi′) y_i = r_i + \gamma \cdot (1 - done) \cdot Q_i'\left(o', \mu_1'(o_1'), ..., \mu_N'(o_N'); \phi_i'\right) yi=ri+γ(1done)Qi(o,μ1(o1),...,μN(oN);ϕi)

  • DDD是经验回放池,存储所有智能体的联合经验样本
  • donedonedone是终止标志,为1时表示当前回合结束,未来回报为0
  • 目标网络的使用是为了稳定训练,避免Q值估计的自举偏差

3. Actor网络更新(策略优化)

每个智能体i的Actor网络μi(θi)\mu_i(\theta_i)μi(θi)的目标是最大化Critic网络输出的Q值,即最大化Qi(o,a1,...,μi(oi),...,aN)Q_i(o, a_1, ..., \mu_i(o_i), ..., a_N)Qi(o,a1,...,μi(oi),...,aN)

根据确定性策略梯度定理,Actor的策略梯度为:
∇θiJ(θi)=Eo∼D[∇aiQi(o,a;ϕi)∣ai=μi(oi;θi)⋅∇θiμi(oi;θi)] \nabla_{\theta_i} J(\theta_i) = \mathbb{E}_{o \sim D} \left[ \nabla_{a_i} Q_i(o, a; \phi_i) \bigg|_{a_i=\mu_i(o_i; \theta_i)} \cdot \nabla_{\theta_i} \mu_i(o_i; \theta_i) \right] θiJ(θi)=EoD[aiQi(o,a;ϕi) ai=μi(oi;θi)θiμi(oi;θi)]

  • 第一项是Critic网络对当前智能体动作aia_iai的梯度,表示动作变化对价值的影响
  • 第二项是Actor网络对自身参数θi\theta_iθi的梯度,表示参数变化对动作的影响
  • 两者相乘即为策略梯度,通过梯度上升更新Actor参数,最大化期望回报

4. 目标网络软更新

为了进一步稳定训练,MADDPG采用与DDPG相同的软更新机制,而不是DQN的硬更新(每隔固定步数复制参数)。每次主网络更新后,目标网络的参数会缓慢向主网络靠近:
θi′←τ⋅θi+(1−τ)⋅θi′ϕi′←τ⋅ϕi+(1−τ)⋅ϕi′ \begin{align*} \theta_i' &\leftarrow \tau \cdot \theta_i + (1 - \tau) \cdot \theta_i' \\ \phi_i' &\leftarrow \tau \cdot \phi_i + (1 - \tau) \cdot \phi_i' \end{align*} θiϕiτθi+(1τ)θiτϕi+(1τ)ϕi
其中τ≪1\tau \ll 1τ1是软更新系数(通常取0.01),确保目标网络的参数变化缓慢,避免训练震荡。


四、MADDPG伪代码

在这里插入图片描述

五、MADDPG关键实现细节与超参数

1. 探索策略

  • 原始论文:使用Ornstein-Uhlenbeck(OU)噪声,模拟惯性系统的随机过程,适合连续控制任务
  • 现代实现:更常用高斯噪声N(0,σ)N(0, \sigma)N(0,σ)),实现简单且效果相当,通常会随着训练步数逐渐减小噪声标准差σ\sigmaσ,降低探索强度

2. 经验回放池设计

  • 存储的样本是联合样本(o,a,r,o′,done)(o, a, r, o', done)(o,a,r,o,done),其中ooo是所有智能体观测的拼接,aaa是所有智能体动作的拼接,rrr是所有智能体奖励的数组
  • 经验回放池的作用:打破样本之间的时间相关性,提高训练稳定性;同时重复利用样本,提升样本效率

3. 网络结构设计

  • Actor网络
    • 输入:单个智能体的观测维度dim(Oi)dim(O_i)dim(Oi)
    • 隐藏层:通常2-3层全连接网络,激活函数用ReLU
    • 输出层:动作维度dim(Ai)dim(A_i)dim(Ai),激活函数用tanh⁡\tanhtanh,将输出限制在[−1,1][-1,1][1,1]范围内,再乘以动作的最大绝对值映射到实际动作空间
  • Critic网络
    • 输入:所有智能体的观测总维度Σdim(Oi)Σ dim(O_i)Σdim(Oi) + 所有智能体的动作总维度Σdim(Ai)Σ dim(A_i)Σdim(Ai)
    • 隐藏层:通常2-3层全连接网络,激活函数用ReLU
    • 输出层:1个神经元,输出Q值,无激活函数

4. 异质智能体支持

MADDPG天然支持异质智能体(不同智能体有不同的观测空间和动作空间):

  • 每个智能体拥有独立的Actor网络,输入和输出维度根据自身的观测和动作空间设计
  • Critic网络的输入维度是所有智能体观测和动作维度的总和,统一处理全局信息

5. 合作场景优化

纯合作场景中,所有智能体的奖励函数完全相同,此时可以让所有智能体共享同一个Critic网络,大幅减少计算量和参数数量,同时提高训练效率。

6. 典型超参数配置

超参数 推荐值 说明
折扣因子γ\gammaγ 0.95~0.99 越接近1,越重视长期回报
软更新系数τ\tauτ 0.001~0.01 越小,目标网络更新越慢,训练越稳定
Actor学习率lractorlr_{actor}lractor 1e-4~1e-3 通常比Critic学习率小
Critic学习率lrcriticlr_{critic}lrcritic 1e-3~1e-4
批次大小batch_sizebatch\_sizebatch_size 64~256 越大,梯度估计越稳定,但计算量越大
经验回放池容量 1e5~1e6 存储足够多的历史样本
高斯噪声标准差σ\sigmaσ 0.1~0.5 初始值,随训练逐渐衰减

六、MADDPG优缺点与适用场景

1. 核心优点

  • 解决非平稳性:通过集中式Critic利用全局信息,完美解决多智能体环境的非平稳性问题
  • 场景通用性:支持合作、竞争、混合三种多智能体交互场景
  • 异质智能体:天然支持不同观测和动作空间的异质智能体
  • 连续动作适配:继承DDPG的确定性策略,特别适合连续动作空间任务
  • 部署简单:执行阶段仅需局部观测,无需智能体间通信

2. 主要缺点

  • 扩展性差:Critic输入维度随智能体数量线性增加,当N>10时,计算量和维度灾难问题严重
  • 全局信息依赖:训练阶段需要获取所有智能体的观测和动作,在某些实际场景中难以实现
  • 泛化能力弱:容易过拟合到训练时其他智能体的策略,当对手策略变化时性能急剧下降
  • 样本效率一般:虽然比策略梯度方法好,但仍需要大量的环境交互样本

3. 适用场景

  • 小规模多智能体系统(一般N≤10)
  • 连续动作空间的多智能体任务
  • 合作、竞争或混合交互场景
  • 执行阶段无法进行实时通信的场景

4. 典型应用

  • 多机器人协作:多无人机编队飞行、多机械臂协同装配
  • 自动驾驶:车队协同行驶、交叉路口协同通行
  • 游戏AI:星际争霸2、DOTA2、王者荣耀的多智能体对抗
  • 智能电网:分布式能源调度、需求响应管理
  • 智能交通:交通信号协同控制

七、MADDPG经典改进与变种

针对MADDPG的扩展性和泛化性问题,学术界提出了大量改进算法:

  1. 值分解方法:如VDN、QMIX,将全局Q值分解为每个智能体的局部Q值,大幅降低Critic复杂度,支持更大规模的多智能体系统
  2. 注意力机制:如MAAC,让Critic只关注重要的智能体,减少输入维度,提高泛化能力
  3. 通信机制:如CommNet、MAGNet,让智能体之间在训练和执行阶段进行通信,共享信息,提升协作能力
  4. 最大熵扩展:如MASAC,将SAC的最大熵思想引入MADDPG,提高探索能力和鲁棒性
  5. 离线多智能体RL:如BCQ-MARL、CQL-MARL,利用历史数据进行训练,避免在线交互的高昂成本

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐