想象你是一名足球教练,面对一支刚组建的球队:门将守门、前锋进攻、中场组织,11 名球员各司其职,但每个人在场上只能看到自己周围十几米的画面。你要让这支队伍学会配合——什么时候传球、什么时候跑位、什么时候射门。更棘手的是,对手也在不断变阵,你练好的战术可能转眼就失效。这就是多智能体强化学习(Multi-Agent Reinforcement Learning,简称 MARL)要面对的世界:多个智能体在同一个共享环境里,通过不断试错,学会协作或竞争。 从一个人踢球到一支球队比赛,难度发生了质变:环境不再稳定(别人也在学)、功劳不好分(进球是全队的)、计算量暴涨(人越多状态空间越大)。为了应对这些挑战,研究者提出了“集中训练、分散执行”的思路,并发展出 MADDPG、MAPPO 两大代表性算法。它们就像“训练时教练看全局,比赛时球员自己决断”。这篇文章会用一支球队的故事,带你从零认识 MARL:它要解决什么、有哪些经典算法、如何评估、应用在哪、以及新手最容易踩的坑。
掌握 MARL 的核心挑战与主流算法,你就能在多智能体系统的实际项目中正确选型、设计奖励与评估方案,这是走向自动驾驶、无人机集群、游戏 AI 等前沿岗位的关键一步。
可视化演示
本节配有交互动效(进入视口后自动加载,约 3KB)。
MARL基本概念
一个人练射门,球门不会跑,皮球怎么弹有规律可循,你只需不断调整自己的脚法。可一旦上了 11 人制的球场,情况完全不同:队友在跑位、对手在抢断、守门员会预判你的假动作。每个球员都只能看到眼前几米的画面,却要做出影响全场的决策。这就是单智能体强化学习与多智能体强化学习(MARL)最直观的区别——从“一个人修炼”变成“一支球队作战”。
学术上,单智能体强化学习的世界叫“马尔可夫决策过程”(MDP),多智能体的世界叫“马尔可夫博弈”(Markov Game)。MDP 里只有一个决策者,世界的变化只由它自己的动作决定;而在马尔可夫博弈里,N 个智能体同时做决策,世界下一秒变成什么样,取决于所有人的动作合在一起的效果。
每个智能体的完整处境,可以用一个七元组来描述:
把这张“比赛说明书”装进脑子,你就明白 MARL 在研究什么:如何在每个人只看到局部、只控制自己的情况下,让整支队伍在共享的绿茵场上取得最好的长期结果。接下来的每一章,都是在解决这张说明书里某个刁钻的环节。
- 状态集合 S整个球场上所有值得关注的信息,包括足球和所有球员的位置。
- 观测集合 O_i第 i 个球员实际能看到的局部画面,通常只占全局信息的一小部分。
- 动作集合 A_i第 i 个球员可以选择的技术动作,如传球、跑位、射门。
- 奖励集合 R_i每个球员得到的反馈分数,可以相同也可以不同,取决于我们怎么定义“好坏”。
- 转移函数 T世界演化的规则,描述所有人做出动作后状态如何变化,它是概率性的而非确定的。
- 折扣因子 γ教练的目光远近,越接近 1 越看重长期收益,越小越看重眼前利益。
核心挑战
为什么带一支球队比带一个球员难十倍?想象这个场景:你辛辛苦苦练了一周的边路传中战术,结果对手这周改打三中卫,你的战术瞬间失灵。更崩溃的是,队友也在进步——他改变了跑位习惯,你原本的传球路线就废了。在 MARL 里,这种“身边的一切都在变”的处境有个专门的名字:非平稳性。
站在任意一个智能体 i 的视角,它感知到的世界规律是这样计算的:
除了非平稳,还有三个头疼的问题。其一是信用分配:一次成功的团队进球,到底是传球的人、跑位的人还是射门的人功劳大?团队奖励是一锅粥,没人知道每粒米是谁煮熟的。其二是部分可观测:每个球员只有局部视野,但决策又依赖全局信息。其三是扩展性:智能体数量一多,联合状态和联合动作空间指数爆炸,计算量像滚雪球一样失控。
非平稳让“活在昨天”的经验作废,信用分配让“论功行赏”无法进行,部分可观测让“闭眼踢球”成为日常,扩展性让“人多力量大”变成一句空话。这四座大山正是 MARL 算法设计的出发点。理解了敌人长什么样,下一章的算法我们就能看懂它如何见招拆招。
- 左边 P(s' | s, a_i)智能体 i 眼中,从状态 s 出发做完动作 a_i 后到达 s' 的概率。
- a_{-i} 的含义除 i 之外所有其他智能体的动作组合。
- 世界固有规律 P(s' | s, a_i, a_{-i})给定所有人的动作后,环境本身的演化规则。
- 他人策略 π_{-i}(a_{-i} | o_{-i})其他球员当前采用的战术,它决定别人会做什么动作。
- 求和消元把别人的动作按概率“平均”掉。问题来了——别人也在训练,π_{-i} 每时每刻都在变,所以哪怕环境规则没变,智能体 i 眼中的规律也在不断漂移。
设计蓝图
面对这四座大山,聪明的教练们想到一个巧妙的折中方案。平时训练时,教练站在场边高台上,拿着战术板,能看到全场每个球员的位置、体力、对手的阵型——这是“集中”的优势。但真正比赛时,教练不能在场边喊出每一个动作,球员必须靠自己眼睛看到的画面临场决断——这是“分散”的现实。
这个思路在 MARL 里被称为“集中训练、分散执行”(Centralized Training with Decentralized Execution,简称 CTDE)。训练阶段,算法可以用的信息不受限制,所有智能体的观测、动作、奖励都可以喂给一个“中央大脑”;执行阶段,每个智能体只能用自己的局部观测做决策。MADDPG 和 MAPPO 都是这个框架的代表,区别在于它们各自用了什么样的“中央大脑”。
每个智能体的目标可以用一个统一的式子表达:
在 CTDE 蓝图下,算法设计者还要做两个决定:奖励怎么分配——全员共享一个团队奖励,还是每人奖罚分明?通信怎么进行——允许智能体之间显式对话,还是只能默默观察?不同任务有不同答案:足球里前锋和后腰的“分工奖励”当然不同,但打麻将时四家共享同一桌的输赢。把握住“集中训练、分散执行”这个总纲,后面的算法细节就不会迷路。
- π_i 与 J_iJ_i 是智能体 i 的“长期收益预期”,π_i 是它的策略——“看到什么情况做什么动作”的决策规则。
- 轨迹 τ从比赛开始到结束的一条完整过程,包括每个时刻的状态和动作。
- 概率 P_π这条轨迹出现的概率,由所有智能体的策略共同决定,这正是多智能体和单智能体的本质区别。
- 折扣累计回报把每一时刻的奖励按 γ 指数衰减后加总,既看重眼前也看长远。
MADDPG算法
2017 年,研究者提出 MADDPG(Multi-Agent Deep Deterministic Policy Gradient),把“集中训练、分散执行”真正落地。可以这样理解:每个球员上场时只靠自己眼睛做动作,但训练时每个球员身边都配了一位拿着全场监控画面的助理教练(Critic)。这位助理教练能看到所有人的动作,然后告诉这个球员:“刚才那个传球,如果你早半秒,得分期望会更高。”
MADDPG 采用 Actor-Critic 结构。每个智能体 i 有自己的策略网络 μ_i(Actor),负责根据局部观测输出动作;还有一个评估网络 Q_i(Critic),负责给“所有人当前状态下的联合动作”打分。关键就在这个 Critic 上——它不再是单智能体里“只看自己动作”的打分器,而是能看到所有智能体动作的“全局分析师”。
MADDPG 的更新公式长这样:
MADDPG 还有两个细节值得记住:一是经验回放池,所有智能体共享一份“比赛录像集”,随机抽样本打破时间相关性;二是对手建模,Critic 不需要知道其他智能体的真实策略,而是用目标网络近似它们的动作,就像教练根据对手最近的比赛录像预判对方打法。这套“全局评估 + 局部决策”的组合拳,让 MADDPG 在连续动作的协作与竞争任务中大放异彩。
- θ_i 与 J(μ_i)θ_i 是第 i 个球员策略网络的参数,J(μ_i) 是它的长期收益预期。
- 经验池 x ~ D从所有历史比赛记录里随机抽一批样本,每条样本包含所有智能体的观测和动作。
- 全局 Critic Q_i^μ第 i 个球员的助理教练,输入全队动作,输出对第 i 个球员的评价。
- 动作梯度 ∇_{a_i} Q如果第 i 个球员的动作稍微变化一点,助理教练的打分会怎么变?它告诉球员“该往哪个方向调整动作”。
- 策略梯度 ∇_{θ_i} μ_i球员如何更新自己的技能,让他的动作更倾向于落在“高分区”。
MAPPO算法
MADDPG 虽然好,但它继承了 DDPG 的脾气——对超参数敏感,训练不稳定,像一个状态起伏的天才球员。2022 年,一篇论文《The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games》让一个“老实人”逆袭:把单智能体里以稳定著称的 PPO 算法稍加改造用到多智能体场景,效果竟然出奇地好。这个方案就是 MAPPO。
回忆单智能体 PPO 的核心思想:它不追求每一步都迈得很大,而是让新旧策略的差异始终控制在一个安全范围内,宁肯慢一点,也不许“一步走错,满盘皆输”。MAPPO 让所有智能体共享一套策略网络参数,相当于全队读同一本战术手册,只是每个人输入的观测不同。这一点和 MADDPG 每个智能体各有各的网络很不一样。
MAPPO 的目标函数:
为什么 MAPPO 在协作场景里这么能打?首先,参数共享让数据利用率翻倍——每个球员的经验都成了全队共同的养料。其次,它同样可以引入集中式 Critic,在训练时用全局信息估计优势函数。还有一个常被忽视的细节:MAPPO 论文特别强调要开大量并行环境收集样本,就像同时约 100 场训练赛,用海量经验对冲非平稳性。所以如果解决的是纯协作问题,MAPPO 往往是更省心的首选。
- 概率比 r_t(θ)新旧两套战术书在同一个动作上的概率之比,接近 1 说明新战术书没有激进改动。
- 优势函数 Â_t这个动作比平均水平的“好多少”,正数说明该做,负数说明该避免。
- clip 限幅把概率比强制夹在 [1-ε, 1+ε] 之间,超出窗口的更新直接砍掉,防止步子太大。
- min 取小对被裁剪和未被裁剪的两个目标取最小值,保证任何情况下都不追求激进的一步。
评估方法
球队训练了一个赛季,怎么判断它到底强不强?只看训练赛里的进球数?不够——因为对手可能是陪练的老年队。真正靠谱的方法是拉出去打正式友谊赛,换不同风格的对手,多打几场,再看综合胜率。MARL 的评估也是同一个道理。
最常见也最直观的指标是胜率:让训练好的多智能体系统与固定对手(或多种对手)对局 M 次,统计获胜比例。另一个常用指标是平均折扣回报,它能反映系统在测试中积累的长期收益:
光看平均回报还不够,好的评估还要做三件事:一是换对手——分别和弱队、强队、风格迥异的队伍过招,看系统面对陌生策略时是否还站得住,这叫鲁棒性测试;二是换场景——改变环境地图、初始位置、障碍物,防止智能体“背答案”;三是曲线分析——不只看最终数字,还要看训练过程中回报曲线是否平稳上升、有没有突然崩溃,这能暴露算法稳定性问题。
一句话总结评估的哲学:训练报告写得再漂亮,都不如和不同对手的实战检验来得硬核。就像足球教练说的,“数据会撒谎,但比分不会”。在设计 MARL 项目时,提前定义好“对手池”和“场景池”,评估才不会变成自嗨。
- k 与 M一共测试 M 局,用 k 遍历每一局,消除单局运气的成分。
- 一局累计回报第 k 局从中场踢到终场,把每个时刻的奖励按折扣加总。
- 求平均把 M 局结果取平均,得到系统的稳定水平。
应用蓝图
球场上的配合智慧,一旦掌握了,就能走出球场来到真实世界。想想看:无人机群在山谷里搜救,十几架飞机要在没有地面指挥的情况下自动划分搜索区域、避开彼此;十字路口没有红绿灯,自动驾驶汽车要互相礼让、交替通行;游戏里五个英雄要推塔,需要有人抗伤、有人输出、有人控制。这些场景的共同点是:多个决策者共享一个环境,必须学会协作或竞争。
以无人机集群协同搜救为例,我们可以把任务建模成“覆盖最大化”问题:每架无人机负责一块区域,整体目标是最小化搜索盲区,同时保持安全距离避免相撞:
这类问题如果写死规则,环境一变就崩溃;如果让每架无人机独立训练,它们又会互相干扰。用 MARL 来解:每架无人机是一个智能体,机载传感器看到的是局部观测,奖励函数把“覆盖率提升”和“碰撞惩罚”揉在一起,训练出来的策略天然具有协作性。同样的配方也适用于自动驾驶路口博弈——车辆之间不需要交流,只要观察彼此的轨迹,就能学会交替通行;游戏 AI 里,MAPPO 让多个英雄共享策略参数,打出团队配合。
从足球场到无人机群,再到自动驾驶和游戏世界,MARL 的底层逻辑都是同一套:在共享环境里,用局部视野做决策,用全局信息做训练,让个体与整体的目标在奖励设计上达成一致。这套“协作共赢”的智慧,正是群体智能在现代 AI 中最迷人的体现。
- p_i 与 C_i第 i 架无人机的位置,以及它机载传感器能覆盖的圆形范围。
- 并集中的竖线所有覆盖区域的并集大小,即整个机群的实际有效覆盖率。
- s.t. 约束条件任意两架无人机之间的距离必须不小于最低安全距离 d_min。
避坑指南
见过太多新手教练,满怀信心带队,结果赛季一结束就下课。他们的错误非常相似,几乎是 MARL 项目里固定的“翻车四件套”。对照检查,能帮你省下几个月的调参时间。
第一个大坑是忽视非平稳性,直接把多个单智能体 Q-learning 拼在一起训练。前面讲过,其他智能体的策略在变,你的 Q 表等于在追逐一个移动的靶子,永远追不上。第二个大坑是奖励失衡:如果只给团队共享奖励,队伍里会出现“搭便车”的懒汉——反正赢了大家都有分,谁出力谁傻;反过来,如果只给个人奖励,又无法促成合作。常见的补救办法是把两种奖励按系数混合:
第三个大坑是训练崩溃:在竞争场景里,如果一方智能体进步太快,另一方会因“永远输”而学不到有效信号,最终双方都停滞。解决办法是引入“课程学习”——从简单对手练起,或让多个历史版本的对手轮流上场。第四个大坑是超参数敏感:MARL 对学习率、批大小、网络结构比单智能体更挑剔,在小规模调好的参数,换一个智能体数量就失效,需要系统做消融实验,而不是拍脑袋一把梭。
这四个坑看着简单,背后却各是一整类失败项目。记住一句话:多智能体系统里,“别人也在变”是常态,“功劳说不清”是常态,“参数难调”也是常态。接受这些常态,用 CTDE、混合奖励、课程训练去对冲它们,你就能稳稳地把项目带到终点线。
- R_team 团队奖励所有人共享,鼓励协作达成全局目标。
- R_personal 个人奖励只与自己的动作和状态有关,鼓励做好本职工作。
- 平衡系数 β协作与个人表现的旋钮,β 越大队伍越“讲集体”,越小越“讲个人”,需要按任务调试。
AI 应用场景
无人机集群协同搜索
阶段:训练与规划阶段
解决的问题:单架无人机覆盖范围有限,多机协同需要避免重复覆盖和碰撞。传统人工编队规则在复杂地形下僵硬易失效,而 MARL 让每架无人机学会自主协商式分区搜索。
具体案例:灾后山区搜救中,20 架无人机组成编队。用 MADDPG 训练时,每架无人机只接收自己的机载传感器观测(局部视野),但集中式 Critic 能看到所有无人机位置,学会按区域划分覆盖、保持安全间距,整体搜索覆盖率比规则方法提升 30% 以上。
无人驾驶路口博弈
阶段:决策规划阶段
解决的问题:无信号灯路口多车交互(谁先通过、如何礼让)是典型的多智能体博弈。传统规则法在复杂组合场景下需要穷举所有交互情况,容易僵化。
具体案例:四辆自动驾驶汽车在无信号灯十字路口相遇,用 MARL 训练礼让策略。车辆之间不通信,只通过摄像头观察彼此的轨迹和速度,学会交替通行,路口平均通过时间比固定规则提升约 20%,碰撞率显著下降。
游戏AI多单位配合
阶段:策略控制阶段
解决的问题:MOBA 类游戏中一个 AI 需要同时控制多个英雄,完成推塔、团战等需要分工配合的任务,单智能体算法无法处理多单位协作。
具体案例:用 MAPPO 训练 5 个英雄的团队,全部英雄共享一套策略网络参数,但各自输入自己的视野观测。经过大量并行对局训练后,AI 学会“坦克抗伤、射手输出、辅助控场”的分工战术,打团成功率明显高于独立训练的基线。
Python 演示
import random class GridEnv: """两个智能体, 两个目标点的网格环境""" def __init__(self, size=5): self.size = size self.targets = [(1, 3), (3, 1)] self.actions = [0, 1, 2, 3] self.reset() def reset(self): self.agents = [(0, 0), (4, 4)] return self._obs() def _obs(self): o1 = self.agents[0] + self.targets[0] + self.targets[1] o2 = self.agents[1] + self.targets[0] + self.targets[1] return {0: o1, 1: o2} def step(self, acts): moves = [(-1, 0), (0, 1), (1, 0), (0, -1)] for i in range(2): dx, dy = moves[acts[i]] x, y = self.agents[i] nx, ny = x + dx, y + dy if 0 <= nx < self.size and 0 <= ny < self.size: self.agents[i] = (nx, ny) covered = {t for t in self.targets if t in self.agents} reward = 1.0 if len(covered) == 2 else 0.0 done = reward > 0 return self._obs(), reward, done class Agent: """独立Q学习的智能体, 共享团队奖励""" def __init__(self, alpha=0.1, gamma=0.9, eps=0.3): self.q = {} self.alpha = alpha self.gamma = gamma self.eps = eps def act(self, obs, train=True): if train and random.random() < self.eps: return random.choice([0, 1, 2, 3]) vals = [self.q.get((obs, a), 0.0) for a in range(4)] return vals.index(max(vals)) def update(self, obs, a, r, n_obs): old = self.q.get((obs, a), 0.0) nv = max([self.q.get((n_obs, aa), 0.0) for aa in range(4)]) self.q[(obs, a)] = old + self.alpha * (r + self.gamma * nv - old) def main(): env = GridEnv() agents = {0: Agent(), 1: Agent()} wins = 0 episodes = 5000 for ep in range(episodes): obs = env.reset() done = False while not done: acts = {i: agents[i].act(obs[i]) for i in range(2)} n_obs, reward, done = env.step(acts) for i in range(2): agents[i].update(obs[i], acts[i], reward, n_obs[i]) obs = n_obs wins += 1 if done else 0 if ep % 500 == 0: rate = 100.0 * wins / (ep + 1) print("episode %d, win rate %.2f%%" % (ep, rate)) print("final win rate: %.2f%%" % (100.0 * wins / episodes)) if __name__ == "__main__": main()
agents = {0: Agent(), 1: Agent()}创建两个各自维护 Q 表的独立智能体,它们之间没有显式通信covered = {t for t in self.targets if t in self.agents}检查两个目标点是否被同时占据reward = 1.0 if len(covered) == 2 else 0.0只有团队目标达成才给奖励,体现稀疏团队奖励acts = {i: agents[i].act(obs[i]) for i in range(2)}每个智能体只根据自己观测独立决策,对应“分散执行”agents[i].update(obs[i], acts[i], reward, n_obs[i])用同一个团队奖励分别更新各自的 Q 表,体现“共享奖励下的独立学习”vals.index(max(vals))选择 Q 值最大的动作,即贪心策略,比赛时不再探索
常见误区
误区我觉得多智能体强化学习很简单,给每个智能体各跑一个单智能体算法,最后把结果合起来不就是多智能体了吗?代码上看着也是“for 每个 agent: 训练”。
正解最大的坑是环境非平稳。别人也在学,你的“环境”一直都在变。就像踢球时对手突然变阵,你按老套路练的射门就不灵了。单智能体算法的“世界稳定”假设在这里被打破,直接拼装会出现训练发散。MADDPG/MAPPO 都是专门设计来解决这个问题的,而不是简单拼装。
为何常见:代码结构上确实很像“多个单智能体并行训练”,初学者容易从形式误判本质,忽略了智能体之间通过环境产生的耦合。
误区我觉得奖励函数差不多就行了,反正强化学习就是让智能体自己试错,多跑几轮它总能学会合作的。
正解奖励是智能体唯一的学习信号。如果只给团队奖励,会出现“搭便车”现象——一个智能体拼命干活,另一个躺平拿分,因为偷懒和努力的回报一样。需要用混合奖励公式 R_i = βR_team + (1-β)R_personal 把团队目标和个人贡献按比例绑定,还要警惕稀疏奖励下学习太慢的问题。
为何常见:人对“奖励=目标”有直觉,但忽略了多智能体场景下奖励还承担着“分工信号”的功能,不是随便给给就行。
误区我觉得集中训练不就是把所有人的观测和动作都拼起来输入 Critic 吗?那当然是信息越多越全,Critic 打分越准,为什么不把所有能拿到的信息都放进去?
正解联合观测空间会随智能体数量指数爆炸,而且大量无关信息会让 Critic 难以聚焦真正重要的信号。就像教练分析比赛,不会把观众席每个表情都录下来看。实际工程中需要根据任务挑选“相关的全局信息”,比如只看其他智能体的位置和意图,而不是把所有原始传感器数据都堆进去。
为何常见:“集中训练的 Critic 能看到全局信息”这个说法,被理解成了“全局信息 = 所有信息 = 越多越好”,忽略了特征选择和计算成本的现实约束。
误区我觉得训练完画一张回报曲线,看看曲线是不是收敛了、数值够不够高,就能判断这个多智能体系统好不好了。
正解回报曲线只能反映“在训练时遇到的对手”下的表现。对手换了策略,你的智能体可能立刻水土不服。正确做法是像拉出去打友谊赛:准备一个包含弱队、强队、风格迥异队伍的“对手池”,外加多种初始状态和地图场景,用平均胜率、鲁棒性等多维度指标评估,才算真正验证了系统能力。
为何常见:单智能体 RL 里评估相对稳定,把这种习惯带到 MARL 就容易忽略“对手也在变”这一关键差异,误把过拟合当成了能力强。
面试题
Q1. MARL 与单智能体强化学习最本质的区别是什么?
- A.需要更庞大的网络规模
- B.多个智能体共同决策← 正确答案
- C.只能使用图像类型的输入
- D.完全不需要环境给奖励
答案:B。MARL 的本质是多个智能体在共享环境中同时决策、相互影响;网络大小、输入类型、奖励有无都不是本质区别。就像一个人练射门和 11 人打比赛,差别在于“场上还有别人”。
Q2. 多智能体环境中的“非平稳性”主要指什么?
- A.环境的奖励函数随机变化
- B.其他智能体的策略不断变化← 正确答案
- C.环境地图尺寸时常改变
- D.计算机算力出现波动
答案:B。非平稳性来自其他智能体在训练中不断更新策略。站在某个智能体的视角,别人的策略一变,自己感知到的世界规律就变了,就像对手突然变阵导致老战术失效。
Q3. 什么是多智能体中的“信用分配”难题?
- A.每个智能体获得的奖励完全相同
- B.团队成绩难以归功某个个体← 正确答案
- C.智能体无法观测其他智能体
- D.训练数据量太大难以分配
答案:B。信用分配指团队成功(或失败)后很难判断每个成员各自贡献了多少。一次进球是传球、跑位、射门共同的功劳,如何把团队奖励合理分解到每个智能体是 MARL 的核心难题之一。
Q4. MADDPG“集中训练分散执行”的含义是什么?
- A.训练时只看各自的本地观测
- B.训练用全局信息执行用本地观测← 正确答案
- C.训练和执行全都用全局信息
- D.训练用 CPU 执行用 GPU 加速
答案:B。这是 CTDE 框架的核心:训练时 Critic 能看到所有智能体的观测和动作(全局信息),而执行时 Actor 只用自己的局部观测做决策,就像“训练时教练看全场,比赛时球员自己判断”。
Q5. MADDPG 中集中式 Critic 的输入包含什么?
- A.仅当前智能体的观测与动作
- B.所有智能体的观测与动作← 正确答案
- C.环境全部状态转移概率
- D.所有智能体的历史奖励
答案:B。MADDPG 的 Critic 输入是 x = (o_1, ……, o_N, a_1, ……, a_N),即所有智能体的观测和动作的拼接,所以才能评估“联合动作”的好坏,帮助单个 Actor 找到提升方向。
Q6. 相对单智能体 PPO,MAPPO 的主要改进包括哪些?
- A.多个智能体共享策略参数← 正确答案
- B.引入集中式 Critic 网络← 正确答案
- C.完全取消优势函数估计
- D.多环境并行采样更加稳定← 正确答案
答案:ABD。MAPPO 让所有智能体共享一套策略网络参数并引入集中式 Critic 估计优势;同时论文强调用大量并行环境收集样本来缓解非平稳性。它并没有取消优势函数,PPO 的核心机制仍然保留。
Q7. 为什么标准 Q-learning 难以直接用于 MARL?
- A.因为环境转移概率难以获取
- B.贝尔曼更新假设环境稳定← 正确答案
- C.因为 Q 表无法存储连续动作
- D.因为不需要其他智能体信息
答案:B。Q-learning 的贝尔曼更新假定状态转移函数稳定不变,而 MARL 中其他智能体策略不断变化导致环境非平稳,Q 表等于在追逐移动靶子。转移概率难获取和连续动作问题并非 MARL 特有,也不是主要障碍。
Q8. 评估多智能体系统性能时,正确的做法是什么?
- A.只用训练时的回报曲线
- B.测试不同对手的鲁棒性← 正确答案
- C.只看单局比赛的最优表现
- D.对局长度越长结果越准
答案:B。多智能体评估必须换不同对手、换不同场景做鲁棒性测试,并多局平均消除随机性。训练回报曲线只反映对训练时对手的表现,单局最优或单纯加长对局都不能代表真实水平。
Q9. 无人机集群应用 MARL 时需重点考虑哪些因素?
- A.智能体间保持安全距离← 正确答案
- B.最大化整体覆盖范围← 正确答案
- C.每个智能体需要单独训练
- D.通信受限下的部分可观测← 正确答案
答案:ABD。无人机集群任务的目标通常包括覆盖率最大化和防碰撞约束,同时机载传感器只能提供局部观测,通信受限下必须靠局部信息决策。智能体不需要单独训练,MADDPG、MAPPO 都支持多智能体联合训练,故 C 错。
Q10. MADDPG 梯度公式中 ∇_{a_i}Q_i^μ 的作用是什么?
- A.直接最大化环境的奖励
- B.指示动作调整方向提升打分← 正确答案
- C.同时更新所有智能体的策略
- D.计算经验回放池的采样权重
答案:B。∇_{a_i}Q_i^μ 表示“动作微调后 Critic 打分的变化方向”,告诉智能体 i 的动作应朝哪个方向调能提高评分。它不直接作用于奖励、不更新别人的策略、也不负责采样,只是策略梯度链条中的一环。