想象一个热闹的厨房:几位厨师围着一口大锅,锅里正炖着汤。每位厨师都有自己的拿手动作——有人加盐、有人加糖、有人添水、有人扔辣椒。他们都在根据锅里汤的状态做决定,但锅里的汤被所有人同时搅动:你刚看到汤咸了准备加水,旁边厨师却先倒了一勺油;你上一次加糖效果好,这次加糖却因为别人加了醋而变得奇怪。这口汤,就是多智能体强化学习(MARL)研究的核心场景——多个智能体共享同一个环境,环境状态被所有人的动作共同改变,任何一方的学习都会让对方的世界“不稳定”。 一个智能体相当于一位厨师,它通过试错调整自己的“加料策略”;整个任务就是通过不断尝试,让每位厨师学会在别人的存在下做出最佳决定。这种学习不能只盯着自己眼前的勺子,还要考虑同伴的配合或对手的干扰。现实中的多机器人协作、自动驾驶车队、游戏AI对抗,都是这口汤的放大版。
掌握多智能体强化学习,意味着你能让 AI 学会在多主体共存的动态环境中协作博弈、互相适应,这是把强化学习从单机游戏推向真实世界的关键技能,也是机器人、自动驾驶、游戏 AI 等高端岗位的硬通货。
目录
可视化演示
本节配有交互动效(进入视口后自动加载,约 3KB)。
非平稳性挑战 单智能体RL假设环境稳定,MARL中环境因其他智能体学习而变化 每个智能体视角下的环境都在不断变化 博弈场景分类 团队奖励 R_team = Σ rᵢ Q_tot(s,a⃗) = f(Q₁,Q₂,...,Qₙ) 多智能体强化学习MARL可视化:展示...
核心概念:共享环境的“非平稳”
想象你独自炖汤,锅里的咸淡完全由你决定,昨天学到的“汤咸了就加水”今天依然有效。但如果你和其他几位厨师同时围着一口锅操作,情况就变了:你刚准备加水,旁边的厨师先倒了一勺生抽;你注意到汤的颜色变深了,但这个变化是别人造成的。你的经验在新环境里会失效,因为环境的规律不再由你一个人掌控。
这种“多位决策者共享同一环境”的场景,正是多智能体强化学习(MARL)研究的内容。在单智能体强化学习中,环境的状态转移只取决于当前状态和这个智能体的动作;而在多智能体环境中,状态转移还会依赖其他智能体的动作,这使得环境从“静态剧本”变成了“动态博弈”。
MARL 研究 n 个智能体在同一环境中学习。每个智能体观察部分或全部状态,选择动作,获得奖励。关键是环境的状态转移概率 P 现在写成 $P(s' \mid s, a_1, \ldots, a_n)$,也就是说,下一时刻的状态是所有人动作的联合结果。这就是“非平稳性”的数学来源:任何一个智能体的策略更新,都会改变其他智能体眼中的环境。
回到厨房,每位厨师都在不断试错:你发现只要别人也在加料,你就不能把“汤变咸了”归结为自己的错。多智能体学习的起点,就是接受这口汤是“大家共同搅动的汤”。
- 状态 s当前的环境快照,好比汤当前的咸淡、颜色和温度。
- 动作 a_i第 i 位厨师的加料决定,代表智能体 i 在当前状态下的选择。
- 联合动作 (a1,……,an)所有人的动作一起发生,汤的变化是合力作用的结果。
- 转移概率 P(s'|……)给定当前状态和联合动作,下一状态的概率分布。因为包含所有动作,环境规律随他人策略变化而漂移。
问题建模:从单人剧本到随机博弈
厨师们需要一本“规则手册”来明确自己能做什么、锅能变成什么状态、做得好不好。单人炖汤时,手册是固定的菜谱;多人炖汤时,手册必须写清楚每个人的动作空间和奖励。否则大家各凭感觉,汤只能越炖越乱。
单智能体强化学习用马尔可夫决策过程(MDP)建模:状态、动作、转移、奖励。多智能体场景需要扩展,于是有了随机博弈(Stochastic Game,也叫马尔可夫博弈)。它把每个智能体都放进同一个状态转移框架里,但允许每个智能体有自己的动作和奖励。
随机博弈可以写成元组 $\langle S, O, A_1, \ldots, A_n, P, R_1, \ldots, R_n, \gamma \rangle$。S 是全局状态集,O 是观测集合,A_i 是智能体 i 的动作集,P 是联合状态转移函数,R_i 是智能体 i 的奖励函数,γ 是折扣因子。当 n=1 时,它退化为普通的 MDP;当状态只有一个时,它退化为矩阵博弈。这个框架涵盖了合作、竞争和混合场景。
有了这本“手册”,厨师们就知道自己该看什么、能做什么、会得到什么反馈。接下来重要的是搞清楚各位厨师是同心协力还是各怀心思。
- 状态集 S 与观测集 OS 是锅和食材的完整真相,O 是厨师实际能看到的部分(如颜色、气味)。
- 动作集 A_i第 i 位厨师允许的加料动作。
- 转移函数 P描述从当前状态和联合动作到下一状态的规律。
- 奖励函数 R_i每位厨师自己的评判标准,可能相同(合作)也可能相反(竞争)。
- 折扣因子 γ对未来的重视程度,越接近 1 越看重长远。
博弈类型:合作、竞争与混合
同是几位厨师,可能关系完全不同。有的是“汤好喝大家一起分钱”的合作伙伴;有的则是抢同一勺盐的对手;还有的是既合作研发新菜又竞争主厨位置的混合体。这些关系决定了每位厨师的学习目标。
MARL 按博弈类型可分为合作博弈、竞争博弈和混合博弈。合作博弈中所有智能体共享同一个目标,常使用团队奖励;竞争博弈中一方的收益是另一方的损失,如零和博弈;混合博弈则同时包含共同利益和利益冲突。
合作博弈中我们经常把多个智能体的奖励相加或平均,形成一个团队目标。智能体需要学会协调,避免“三个和尚没水喝”的局面。
合作时,厨师们要琢磨怎么配合才能让整锅汤最香;竞争时,他们要思考怎么抢到最关键的调料;混合时,则要在合作与对抗间找平衡。
- 单智能体奖励 R_i每位厨师在自己标准下的即时回馈。
- 团队奖励 R_team把所有人的回馈加起来,代表整体汤的质量。
- 最大化目标在合作任务中,所有智能体一起最大化团队奖励的期望累积和。
核心挑战:非平稳、信用分配与可扩展性
汤越煮越复杂,问题也来了:味道变差了,不知道该怪谁;经验老是不稳定,昨天好用的策略今天失灵;人数一多,每位厨师要面对的可能性爆炸式增长。
MARL 的核心挑战正是这几个:非平稳性、信用分配、探索困境和可扩展性。非平稳性指环境转移概率依赖所有智能体策略;信用分配指团队结果很难归因到每个成员;探索困境指联合动作空间随人数指数增大;可扩展性指算法难以适应大量智能体。
以联合期望回报为目标:
其中 $R_t$ 是所有智能体在 t 步的团队奖励(或每个智能体自己的奖励)。这个目标要求策略之间互相适应,而适应过程中环境对单个智能体不断变化,导致普通 Q-learning 难以收敛。
这些挑战就像一锅汤里的暗流:每个厨师都在按自己的理解调味,但汤的味道是所有人的合力。要真正炖好这锅汤,需要新的学习范式。
- 策略 π_i第 i 位厨师的加料习惯,即从状态到动作的映射。
- 轨迹 τ从开始到结束,整个过程中所有状态和动作的序列。
- 期望 E对随机状态转移和策略采样取平均。
- 联合策略优化所有策略同时调整,目标函数 J 随每个策略变化,形成耦合优化问题。
学习范式:集中式训练与去中心化执行
多厨师协作时,一个常见做法是:排练时导演站在锅边,能看到所有人的动作和锅的完整状态,统一指挥;正式演出时,每位厨师只能看自己眼前的那一块,凭排练时的默契独立操作。这就叫“集中式训练,去中心化执行”(CTDE)。
CTDE 是当前 MARL 算法的主流范式。训练时,中心化模块可以获得全局状态和所有智能体的动作,从而更好地估计价值;执行时,每个智能体只依赖自己的局部观测做出决策,满足现实部署的通信与隐私约束。
中心化 Q 函数的形式为:
这里的 $Q_i$ 是智能体 i 在全局状态下,给定所有智能体动作后的预期回报。由于训练时能看到全局信息,$Q_i$ 可以稳定估计,而执行时智能体只用自己的 actor 网络,输入局部观测。
排练时的全局视野让厨师们知道“我的动作在整体中是什么效果”,演出时每个人又不需要实时沟通,这种分工让多智能体协作变得可行。
- 全局状态 s训练时需要看到的完整锅况。
- 联合动作 (a1,……,an)所有厨师的加料。
- 期望回报从这一刻开始,按当前策略继续执行所获得的折扣累积奖励。
- 集中式训练用全局信息计算 Q,让价值估计避免非平稳干扰。
经典算法:MADDPG、QMIX 与 COMA
基于 CTDE 思想,研究者设计了几种“分工手册”。MADDPG 像一位总导演,给每位厨师配一个只看局部的小助手,但导演自己在排练时看全局来评判;QMIX 则像一份“团队计分表”,把整锅汤的得分分解给每位厨师;COMA 更像一本“功劳簿”,能算出如果这位厨师不放调料汤会怎么样,从而知道他到底贡献了多少。
这三个算法是 MARL 的代表。MADDPG 是演员-评论家(Actor-Critic)框架在多智能体上的扩展,评论家利用全局信息,演员只利用局部信息;QMIX 是值分解方法,用单调网络把联合 Q 值分解为各智能体的 Q 值;COMA 主要解决合作任务中的信用分配,使用反事实基线。
COMA 的反事实优势函数:
其中 $\mathbf{a}$ 表示所有智能体的动作,$a_{-i}$ 表示除 i 之外其他人的动作。这个公式衡量的是:保持其他厨师的动作不变,智能体 i 实际动作相比“按自己策略随机发挥”的额外贡献。
有了功劳簿,厨师们就能准确知道哪一步加对了料,哪一步是画蛇添足,团队协作的学习效率大大提升。
- 实际动作贡献 Q(s,a)在这个联合动作下,团队预期的回报。
- 反事实期望 Q保持别人的动作不变,把自己换成按策略 π_i 随机采样得到的各种动作,计算平均 Q。
- 优势 A_i两者相减,得到“我这次动作带来的边际价值”。
评价指标:纳什均衡、帕累托最优与社会福祉
一锅汤端上桌,怎么评价好不好?有人看“稳定”:是否每个人都没有动力再改自己的配方;有人看“效率”:是否还能通过调整让一部分人更好而没人变差;还有人看“整体幸福”:所有人的满意度总和是否最大。
在 MARL 中,这三个视角分别对应纳什均衡、帕累托最优和社会福祉。纳什均衡是无人愿意单方面改变策略的稳定状态;帕累托最优是任何改进都不可能不损害他人;社会福祉则是所有智能体效用的总和或加权和。
纳什均衡的数学定义如下:对于所有智能体 i 和任意替代策略 π_i',
其中 $V_i$ 是智能体 i 在联合策略下的期望回报,$\pi_{-i}$ 表示其他智能体的策略组合。
如果一口汤最终处于纳什均衡,说明每位厨师都找到了自己的“最优回应”;但均衡不等于最好,可能集体都满意但整体还有改进空间,所以还要结合帕累托和社会福祉评价。
- 联合策略 (π_i*, π_-i*)每个人都在使用当前策略的组合。
- 收益 V_i智能体 i 在该联合策略下的长期期望回报。
- 比较任何替代策略 π_i' 都不能带来更高的收益,因此没有厨师想偷偷改变加料习惯。
应用场景:从厨房到真实世界
把厨房里的汤放大到真实世界,就是多机器人协作搬运、自动驾驶车队在道路上互相让行、游戏 AI 的多人对战。每一个场景里,多个智能体都在同一个“大锅”中互相影响。
MARL 的应用场景非常多。多机器人协作时,几个机器人需要共同搬运一个物体,这类似合作博弈;自动驾驶车队调度时,车辆既要合作避免拥堵,也可能竞争路权,属于混合博弈;游戏 AI 中,玩家队伍内部合作,敌我之间对抗,是典型的合作+竞争。
以一个多机器人协作任务为例,团队目标可以写成平均奖励:
这个目标让每个机器人不只是追求自己的局部利益,而是共同完成搬运任务。部署时通常采用 CTDE:训练时用全局状态,运行时每个机器人只用自己的传感器观测。
无论是厨房里的厨师,还是仓库里的机器人,本质上都在学着与“别人”共处。多智能体强化学习,就是把“一起炖汤”的智慧交给 AI 的方法论。
- 单步奖励 R_i^t第 i 个机器人第 t 步获得的即时奖励。
- 团队平均对所有机器人的奖励取平均,避免某个个体“躺赢”。
- 期望累积对整个回合的折扣累积求和再取期望。
AI 应用场景
多机器人仓库协作搬运
阶段:模型训练与部署
解决的问题:传统固定路径搬运无法应对动态障碍,AI 通过 CTDE 让多个机器人学习协同避让和任务分配。传统方法写死路径,遇到其他机器人或障碍就得停下等待,效率极低;MARL 让每个机器人学会与同伴互动,动态调整行进路线。
具体案例:某仓库用 10 台 AGV 同时搬运货架,每台 AGV 只能看到局部传感器数据。采用 MADDPG 集中式训练,训练时共享全局地图,部署时各自决策,搬运效率提升 30%,碰撞率下降一半。
自动驾驶车队协调通行
阶段:策略学习与评估
解决的问题:多车交汇时车辆各自为政会导致拥堵或事故,MARL 让车辆学习博弈式驾驶策略。传统规则方法难以覆盖所有交互场景,而 MARL 能从“互相试探”中学会谁先走、谁让行。
具体案例:在模拟高速公路匝道场景中,多辆自动驾驶车用 MARL 学习汇入博弈。结果显示车辆能自动形成交替通行的默契,系统整体通行时间下降 15%,追尾风险显著降低。
游戏 AI 团队对抗
阶段:环境建模与智能体训练
解决的问题:传统单智能体 AI 无法应对多人对抗中的队友配合和对手策略变化,MARL 训练合作与竞争并存的策略。游戏 AI 需要同时处理“队友协作”和“敌方对抗”,这正是混合博弈的典型。
具体案例:在《Dota 2》类多人对战环境中,OpenAI Five 使用 MARL 让五个英雄智能体通过团队配合学习推进、团战和防守,最终击败职业战队。
Python 演示
import random class Agent: def __init__(self, eid, actions=[-1, 0, 1], alpha=0.5, gamma=0.9, epsilon=0.2): self.eid = eid self.actions = actions self.alpha = alpha self.gamma = gamma self.epsilon = epsilon self.q = {} def get_q(self, state, action): return self.q.get((state, action), 0.0) def choose(self, state): if random.random() < self.epsilon: return random.choice(self.actions) vals = [self.get_q(state, a) for a in self.actions] best = max(vals) return self.actions[vals.index(best)] def update(self, state, action, reward, next_state): td = reward + self.gamma * max(self.get_q(next_state, a) for a in self.actions) - self.get_q(state, action) self.q[(state, action)] = self.get_q(state, action) + self.alpha * td def main(): agents = [Agent(1), Agent(2)] for _ in range(1000): temp = 0 for _ in range(20): actions = [a.choose(temp) for a in agents] noise = random.uniform(-0.1, 0.1) next_temp = temp + sum(actions) + noise before = abs(temp) after = abs(next_temp) reward = 1.0 if after < before else -1.0 for a, act in zip(agents, actions): a.update(temp, act, reward, next_temp) temp = next_temp for a in agents: print("Agent", a.eid, "Q:", {k: round(v, 2) for k, v in list(a.q.items())[:10]}) if __name__ == "__main__": main()
class Agent:定义一个智能体,每位“厨师”有自己的 Q 表和策略。self.q = {}用字典存储 Q 值,相当于厨师的“经验笔记”,记录不同状态下各个动作的价值。def choose(self, state):用 ε-贪婪策略选择动作,偶尔随机探索,平时选当前 Q 最大的动作。td = reward + self.gamma * max(...) - self.get_q(state, action)计算时序差分误差,这是 Q-learning 的核心更新量。actions = [a.choose(temp) for a in agents]两个智能体同时出招,构成联合动作。next_temp = temp + sum(actions) + noise环境温度由两人的动作共同决定,任何一方的变化都会影响另一方。reward = 1.0 if after < before else -1.0团队奖励:只要让温度更接近目标,大家都得正分。for a, act in zip(agents, actions):每个智能体都用同一个团队奖励更新自己的 Q 表,但并不知道对方做了什么,导致 Q 值随对方策略漂移而波动。
常见误区
误区“我把同样的 RL 算法复制 n 份,每个智能体各学各的,不就是多智能体强化学习了吗?”
正解不行。单智能体 RL 假设环境模型固定,而多智能体环境会因其他智能体策略更新而改变。独立并行学习时,每个智能体面对的“环境”不停漂移,就像厨师们各按自己的菜谱炖汤,却忘了汤是共享的,结果往往发散。MARL 需要显式处理其他智能体的影响,比如用集中式评价器或建模对手策略。
为何常见:因为初学者最先接触单智能体 RL,很自然把“多个独立 RL 进程”当成“多智能体”,忽略了状态转移对联合动作的依赖。
误区“既然要让团队表现好,给所有智能体同一个奖励不就行了?”
正解团队奖励确实用于合作任务,但如果所有人只看同一个总分,单个智能体很难知道自己该为哪个动作负责,这就是信用分配问题。汤好喝了,不知道是谁的功劳,厨师们就学不好。需要额外机制(如 COMA 的反事实基线、QMIX 的值分解)把团队奖励分解到每个个体。
为何常见:合作场景中团队目标直观,容易忽略“共同目标”不等于“个体可学习信号”这一关键差异。
误区“算法收敛到纳什均衡,说明已经达到最好的结果了。”
正解纳什均衡只保证“没有人愿意单方面改变”,但可能所有人都困在一个普通策略组合上,存在另一个让大家都更好的帕累托改进。就像几位厨师都习惯用酱油调味,没人单独改,但其实换用高汤整体会更棒。评价一个多智能体系统,需要同时看稳定性、效率和福祉。
为何常见:博弈论教材强调均衡是“解”,容易让人把它和“最优”画等号。
误区“智能体之间多说话、多传信息,协作效果就会更好。”
正解通信可以促进协调,但也会带来延迟、带宽占用和过拟合。如果智能体过度依赖通信,一旦通信中断,系统就瘫痪。MARL 中常用“通信代价”约束,甚至学习该不该说话。就像厨师之间频繁喊“我加盐了”虽然清楚,但真正常用的默契是眼神交流。CTDE 范式就允许执行阶段完全不通信。
为何常见:直觉上“信息越多越好”,但忽略了信息不对称时的策略脆弱性和训练复杂度的增加。
面试题
Q1. 在多智能体强化学习(MARL)中,环境对某个智能体而言是“非平稳”的主要原因是什么?
- A.环境规则随机发生突变
- B.其他智能体的策略在不断变化← 正确答案
- C.奖励函数每次都随机改变
- D.状态空间会随着时间膨胀
答案:B。多智能体环境的状态转移依赖所有智能体的动作,其他智能体策略更新会让单个智能体观测到的状态转移规律漂移。A 不是 MARL 特有;C 描述错误,奖励函数通常固定;D 是状态空间问题,不是非平稳原因。就好比汤的味道变化,主要因为其他厨师也在不停加料。
Q2. 随机博弈(马尔可夫博弈)与单智能体 MDP 的关键区别是什么?
- A.状态空间维度显著增大
- B.状态转移被多个动作共同影响← 正确答案
- C.奖励函数一定是连续数值
- D.状态总是部分可观测的
答案:B。MDP 中状态转移只取决于一个动作,随机博弈的转移概率由联合动作决定。A 不是本质区别;C 与建模无关;D 是 POMDP 的特点,不是随机博弈的关键。就像一锅汤的变化由所有厨师的动作共同决定,而不只是你一个人的动作。
Q3. 以下哪些属于合作博弈中的典型设置?
- A.所有智能体共享一份团队奖励← 正确答案
- B.智能体之间拥有一致共同目标← 正确答案
- C.一个智能体胜利意味另一个失败
- D.需要学习相互协同的动作组合← 正确答案
答案:ABD。合作博弈强调共享目标和团队奖励,需要学协同动作。C 是竞争博弈的零和特征。合作博弈就像是几位厨师共同把汤炖好,大家都按同一份满意度打分。
Q4. 合作任务中的“信用分配”问题指的是什么?
- A.如何给每个智能体分配内存容量
- B.无法确定团队成功应归功于谁← 正确答案
- C.如何分配计算资源给多个智能体
- D.如何分配探索概率给各个智能体
答案:B。信用分配指团队结果(如汤好喝)难以归因到某个具体动作/智能体,导致个体无法得到精确的学习信号。A、C 是工程资源问题,D 是探索策略问题,都与信用分配无关。
Q5. 关于集中式训练与去中心化执行(CTDE),下列说法正确的是?
- A.训练阶段可以获取全局状态信息← 正确答案
- B.执行阶段只能使用局部观测← 正确答案
- C.训练时各智能体互相完全独立
- D.执行时各智能体必须共享动作
答案:AB。CTDE 的核心是训练时用全局信息、执行时只用局部观测。C 描述的是完全独立学习,不是 CTDE;D 错误,执行时智能体独立决策,不需要共享动作。就像排练时导演看全局,演出时每个厨师只看自己眼前的锅。
Q6. COMA 算法中,反事实基线的目的是什么?
- A.降低方差并解决信用分配← 正确答案
- B.加速神经网络的参数收敛
- C.增加环境中的随机噪声强度
- D.消除探索动作带来的波动
答案:A。COMA 通过“保持他人动作不变,把自己替换成按策略随机采样”的基线,估算个体动作的边际贡献,解决信用分配并降低策略梯度方差。B 不是其主要目的,C、D 与反事实基线无关。
Q7. 以下哪些是多智能体强化学习的典型应用?
- A.多机器人协作搬运货物← 正确答案
- B.自动驾驶车队协调通行← 正确答案
- C.单张图片分类识别
- D.游戏AI团队对抗作战← 正确答案
答案:ABD。多机器人、自动驾驶车队、游戏 AI 都存在多决策者交互,是 MARL 的适用场景。图片分类是单智能体监督学习,不涉及多智能体博弈。
Q8. 纳什均衡的定义是?
- A.所有智能体总收益最大的组合
- B.任何智能体单方面改变策略都无法提高自己收益的策略组合← 正确答案
- C.所有智能体必须使用相同策略的组合
- D.环境状态保持不变时的策略组合
答案:B。纳什均衡强调“无人愿意单方面偏离”。A 是全局最优;C 不是必要条件;D 与环境状态无关。它描述的是“稳定”,而不是“最好”。
Q9. MADDPG 的特点包括?
- A.使用集中式的评论家网络← 正确答案
- B.演员网络只接收局部观测← 正确答案
- C.只适用于连续动作空间
- D.适用合作与竞争混合场景← 正确答案
答案:ABD。MADDPG 是 Actor-Critic 的多智能体扩展:评论家输入全局状态和联合动作,演员只输入局部观测,可处理合作、竞争、混合场景。它也能处理离散动作,C 错误。
Q10. 为什么多智能体环境的探索比单智能体更困难?
- A.联合动作空间随智能体数量指数增长← 正确答案
- B.单智能体的动作空间相对更大
- C.环境中完全没有任何奖励信息
- D.探索过程不需要任何策略参与
答案:A。多智能体下联合动作空间随人数指数爆炸,要遍历“每个人的加料组合”几乎不可能。B 说法相反;C 不成立;D 明显错误。探索困境是 MARL 的核心挑战之一。