MADDPG(2017):多智能体确定性策略梯度方法

MADDPG(2017):多智能体确定性策略梯度方法

导出时间:2025/12/19 13:30:33




1、研究背景和动机

一、研究背景:为什么“多智能体”这么难?

1️⃣ 从“一个人玩游戏”到“一群人一起玩”

单智能体强化学习里,你可以把问题想成:

一个人玩游戏,对手是“固定规则的世界”

比如:
  • 打 Atari
  • 控制一个机器人走路
👉 世界不变,你学得越久越稳

但在**多智能体强化学习(Multi-Agent RL)**中,情况变成:

你在玩游戏,而“世界里其他角色也在学习、也在变”

比如:
  • 多个机器人一起搬东西
  • 多个自动驾驶车在路口博弈
  • 多人对抗/合作游戏
👉 环境 = 其他智能体 + 它们的策略
而这些策略:
  • 一直在更新
  • 不可预测
  • 会反过来影响你

2️⃣ 核心困难一:环境“不稳定”(非平稳)

在传统强化学习中,有一个隐含前提

环境的规律是稳定的

但在多智能体中:

你刚学会“队友 A 会往左走”,下一轮他升级了策略,改成“往右走”。

从你的视角看:

环境规则在不断变化

📌 这叫:Non-stationarity(非平稳性)
论文明确指出:
  • Q-learning / DQN 在多智能体下理论假设被破坏
  • 连最常用的**经验回放(Replay Buffer)**都会失效


3️⃣ 核心困难二:策略梯度“噪声爆炸”

另一类方法是策略梯度(Policy Gradient / Actor-Critic)
但在多智能体下会出现一个非常反直觉的问题:

智能体越多,梯度越不靠谱

直观解释:
  • 奖励是大家一起造成的
  • 但你只知道自己干了什么
  • 你不知道:
    • 队友这次帮了你?
    • 还是坑了你?
结果就是:
  • 梯度里混进了大量“别人的随机性”
  • 信噪比急剧下降
论文给出了一个数学结论:

当智能体数量增加时,梯度“方向是对的”的概率会指数级下降

可以理解为:

人一多,锅也多,你根本不知道该不该背锅


二、已有方法为什么不够?

在 MADDPG 之前,常见思路大致有三种:

❌ 1. 把每个智能体当“单独的 RL”

即:

“各学各的,互不关心别人”

问题:
  • 完全忽略“别人也在学习”
  • 非平稳性最严重
  • 实验效果很差

❌ 2. 完全中心化(一个超级大脑)

把所有智能体当成一个整体

问题:
  • 动作空间爆炸
  • 不可扩展
  • 执行时不现实(机器人没法共享全部信息)

❌ 3. 强假设通信结构 / 可微模型

假设:

  • 有可微通信信道
  • 有已知环境模型
问题:
  • 假设太强
  • 不适用于真实复杂场景

三、MADDPG 的核心动机(一句话版)

“训练时可以‘作弊’,执行时必须‘守规矩’”

展开来说就是:

训练时:

  • 允许你看到“所有人的动作和信息”
  • 让学习变简单、稳定

执行时:

  • 每个智能体只能用自己的局部观察
  • 仍然是完全分布式的
这就是 MADDPG 最核心的设计哲学。

四、关键思想:集中式训练,分布式执行

image.png

🎯 一个形象类比

想象你在打篮球:
  • 训练时
    • 教练能看到全场
    • 回放录像
    • 告诉你:“你刚才那个跑位是错的,因为队友在这”
  • 比赛时
    • 你只能看到自己附近
    • 没人暂停给你讲解
👉 MADDPG 就是“有教练的训练 + 无教练的比赛”

🧠 技术上怎么做?

MADDPG 基于 Actor–Critic

Actor(演员)

  • 每个智能体一个
  • 只看自己的观察
  • 负责“我现在该怎么动”

Critic(评论家)

  • 每个智能体一个
  • 能看到所有智能体的动作 + 状态
  • 负责判断:
  • “在这种大家都这么干的情况下,你这一步好不好?”
关键点:

Critic 解决非平稳性和高方差问题 Actor 保证执行阶段仍然现实可用

论文中明确说明:
  • 一旦把“其他智能体的动作”作为 Critic 输入
  • 环境在训练中就重新变“稳定”了

五、MADDPG 想解决的“根本问题”

总结为三点动机:

✅ 1. 让多智能体学习变“稳定”

  • 解决非平稳性
  • 可以安全使用经验回放

✅ 2. 降低策略梯度的噪声

  • 不再“替别人背锅”
  • 梯度方向更可靠

✅ 3. 同时适用于

  • 合作
  • 竞争
  • 混合博弈(既合作又对抗)
这是当时很多方法做不到的

六、你可以这样记住 MADDPG

如果你是小白,可以记住一句非常“人话”的总结:

MADDPG =“训练时开上帝视角的 Actor–Critic,多人一起学;上线后各走各的,但已经学会怎么配合/对抗。”



2、模型的核心思想和网络结构

二、模型的核心思想(一句话版)

每个智能体:自己做决定(Actor),但有人站在“上帝视角”帮它打分(Centralized Critic)。

再浓缩一点:

“我只管怎么动;你来告诉我,在大家都这么动的情况下,我这一步好不好。”


三、核心思想拆解(非常重要)

1️⃣ 为什么要“分工”?

在多智能体里,如果一个智能体自己判断好坏,会遇到这个问题:

“我这一步失败了,是我不行,还是队友瞎跑?”

MADDPG 的回答是:
  • 决策(Actor)要简单 → 只看自己
  • 评价(Critic)要聪明 → 看全局

2️⃣ Actor 和 Critic 的“职责边界”

模块
作用
能看到什么
Actor(演员)
决定“我现在怎么动”
只看自己的观测
Critic(评论家)
判断“这一步值不值”
看所有人的状态 + 动作
这是 MADDPG 最核心、最精妙的设计。

四、一个强烈建议你记住的类比(篮球版)

想象 3 个人一起打篮球:

🏀 比赛中(执行阶段)

  • 每个人只能看到:
    • 离自己近的队友/对手
  • 不能“暂停看回放”
👉 这就是 Actor

🎥 训练中(训练阶段)

  • 教练:
    • 看全场录像
    • 知道每个人当时在干嘛
  • 教练说:
  • “你这个跑位不对,不是你慢,是队友已经切进来了”
👉 这就是 Centralized Critic

MADDPG =有教练的训练 + 没教练的实战