摘要 :
在多智能体强化学习(MARL)中,如果每个 Agent 只能看到局部视野(Partial Observability),这就好比一群蒙着眼睛的人在搬桌子------效率极低且容易撞车。为了打破信息孤岛,通信(Communication) 机制应运而生。与传统的预定义通信协议(如"收到请回复 1")不同,MARL 中的通信学习是指让智能体自己发明语言 。本文将详解 DIAL、CommNet 以及基于 Attention 的现代通信机制,带你领略 AI 之间如何通过梯度反向传播实现"心电感应"。
目录 (Table of Contents)
- 为什么智能体需要"说话"?
- 打破部分可观测性 (Dec-POMDP)
- 显式通信 vs 隐式通信
- 通信的数学模型
- 消息 (Message) 也是一种动作
- 通信通道 (Channel) 的定义
- 流派一:广播与平均 (CommNet)
- 简单的"大锅饭"模型
- 解决"鸡尾酒会问题"的局限性
- 流派二:可微通信与梯度传导 (DIAL)
- Training 时的"心电感应"
- Execution 时的"离散化"
- RIAL vs DIAL
- 流派三:注意力机制与定向通信 (Attention & Gating)
- BiCNet, ATOC, TarMAC
- "我只跟有用的人说话"
- 有趣的现象:语言涌现 (Emergent Language)
- AI 发明的语言我们能听懂吗?
- 总结
1. 为什么智能体需要"说话"?
1.1 打破部分可观测性
在 Dec-POMDP(去中心化部分可观测马尔可夫决策过程)中,每个智能体 i i i 只能看到 o i o_i oi。
- 无通信:Agent A 看到前面有坑,但 Agent B 没看到。Agent A 只能干着急,眼睁睁看着 B 掉下去。
- 有通信 :Agent A 发送消息 m A = "Danger" m_A = \text{"Danger"} mA="Danger",Agent B 接收后,其决策依据变成了 π ( u B ∣ o B , m A ) \pi(u_B | o_B, m_A) π(uB∣oB,mA)。此时 o B + m A o_B + m_A oB+mA 近似等于全局状态 S S S,盲区被消除了。
1.2 显式通信 vs 隐式通信
- 隐式通信 (Implicit) :通过动作来传递信息。比如在自动驾驶中,前车突然刹车(动作),后车就知道前面有状况。这不需要专门的通信信道。
- 显式通信 (Explicit) :通过专门的信道 (Channel) 发送连续向量或离散符号。这是本文讨论的重点。
2. 通信的数学模型
在 Comm-MARL 中,智能体的策略函数发生了变化:
u i , m i = π ( o i , m i n ) u_i, m_i = \pi(o_i, m_{in}) ui,mi=π(oi,min)
- 输入 :自己的观测 o i o_i oi + 队友发来的消息 m i n m_{in} min。
- 输出 :环境动作 u i u_i ui (移动/攻击) + 通信动作 m i m_i mi (说的话)。
这里的关键在于:m i m_i mi 是什么?
它可以是一个离散的词(Token),也可以是一个连续的向量(Embedding)。在深度强化学习中,通常通过神经网络直接输出一个连续向量作为消息。
3. 流派一:广播与平均 (CommNet)
CommNet (2016) 是最早尝试用深度学习解决多智能体通信的模型之一。
3.1 核心思想:大一统网络
CommNet 假设所有智能体由一个巨大的共享网络控制(但在物理上可以是分布式的模块)。
通信的方式非常简单粗暴:平均化 (Averaging)。
对于智能体 i i i,它收到的消息是所有其他智能体发出消息的平均值:
h i t = f ( h i t − 1 , o i , 1 N − 1 ∑ j ≠ i m j ) h_i^t = f(h_i^{t-1}, o_i, \frac{1}{N-1} \sum_{j \neq i} m_j) hit=f(hit−1,oi,N−11j=i∑mj)
3.2 局限性:鸡尾酒会问题
- 优点 :结构简单,处理任意数量的 Agent ( N N N 可变)。
- 缺点 :信息丢失 。
- 想象你在一个 100 人的房间里,所有人同时说话。CommNet 的做法是把这 100 个人的声音叠加取平均。结果就是一团白噪声,你根本听不清谁在说什么重要信息。
- 这使得 CommNet 难以处理复杂的异构任务(比如 Agent A 需要听 Agent B 的,但必须忽略 Agent C 的)。
4. 流派二:可微通信与梯度传导 (DIAL)
DIAL (Differentiable Inter-Agent Learning) [Foerster et al., 2016] 提出了一个革命性的观点:通信不应该只是离散的符号,在训练时,它应该是流动的梯度。
4.1 核心机制:CTDE 的极致利用
- RIAL (Reinforced IAL) :传统的做法。把发消息 m m m 当作一个动作,用 DQN 去学习。如果说对了,Reward 变高,Q 值更新。这叫"强化学习"。
- DIAL (Differentiable IAL) :
- 训练时 (Training) :允许消息 m m m 为连续实数值。消息直接作为数值输入给接收者。
- 梯度通路 :梯度 ∇ \nabla ∇ 可以从接收者 (Receiver) 的 Loss 函数,顺着通信信道 (Channel),直接反向传播给发送者 (Sender)。
- 物理含义 :接收者通过梯度告诉发送者:"你刚才发的那个数值 0.8 0.8 0.8 不太好,导致我判断错了,下次请发 0.2 0.2 0.2。" 这就像心电感应 (Telepathy),直接调整对方的大脑参数。
4.2 执行时的离散化
虽然训练时是实数,但在执行(Test)时,由于带宽限制或抗噪需求,DIAL 会引入离散化单元 (Discretize Unit),把连续向量量化成二进制(0/1)发送。
DIAL 的伟大之处 :它把"学习说话"这件事,从困难的 RL 试错问题,转化为了高效的 Supervised Learning (梯度下降) 问题。
5. 流派三:注意力机制与定向通信
随着 Transformer 和 Attention 机制的兴起,Comm-MARL 迎来了第三代:我们要解决"跟谁说"和"听谁说"的问题。
5.1 为什么要 Attention?
CommNet 的"大锅饭"太吵了。在星际争霸中,医疗兵只需要听机枪兵的"我没血了",而不需要听 100 公里外侦察兵的废话。
5.2 代表算法
- BiCNet (2017) :利用 双向 RNN (Bi-RNN) 连接所有智能体。通信链是串行的,隐状态在链条上传递。
- ATOC (Attention-based) :引入注意力模块。智能体先决定是否 需要通信(Gating),然后决定跟谁通信。
- TarMAC (Targeted Multi-Agent Communication) :
- Sender 发送的不只是消息 m m m,还有一个 Key(标签)。
- Receiver 根据自己的 Query 和对方的 Key 计算权重(Signature)。
- 只有匹配度高的消息才会被处理。
这就像频道 (Channel) 机制:A 在"频道 1"喊话,只有关注"频道 1"的 B 能听到,其他人自动过滤。
6. 有趣的现象:语言涌现 (Emergent Language)
当我们训练完这些算法后,把它们发送的消息 m m m 打印出来,会发现什么?
6.1 它们在说英语吗?
不,它们说的是 "Vector-ese" 。
比如在一次捕猎游戏中,当猎物出现在左边时,Agent A 可能会发送向量 [0.9, -0.1];当猎物在右边时,发送 [-0.5, 0.8]。
对人类来说这是噪声,但对神经网络来说,这代表了精确的语义 (Semantics)。
6.2 正向信令与反向信令
- 正向:告诉队友"我在这"、"敌人在这"。
- 反向:有时候,Agent 会学会"欺骗"或"沉默"。但在完全合作游戏中,它们通常会进化出极其高效的压缩语言。
7. 总结
通信学习是 MARL 中最接近"强人工智能"形态的方向之一。
| 算法 | 通信拓扑 | 核心机制 | 优缺点 |
|---|---|---|---|
| CommNet | 全连接 | 平均化消息 | 简单,但噪声大,信息丢失 |
| DIAL | 任意 | 梯度反向传播 (Telepathy) | 训练极其高效,但仅限合作任务 |
| BiCNet | 序列化 | 双向 RNN | 适合序列决策,难以并行 |
| TarMAC | 动态图 | Attention (Key-Query) | SOTA 性能,可解释性强,计算重 |
实战建议 :
如果你的环境是高度部分可观测 的(如迷雾中的 RTS 游戏),且智能体数量适中(<10),基于 Attention 的通信(如 TarMAC 或 GNN-based) 是首选。如果智能体数量巨大(>100),可以回退到类似 Mean-Field 的简单平均通信。
到这里,我们已经探讨了 MARL 的合作、竞争、通信。下一篇,我们将进入更复杂的领域:离线多智能体强化学习 (Offline MARL),看看如何在没有模拟器的情况下训练多智能体。 📡🤖