0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

多智能体强化学习(MARL)核心概念与算法概览

颖脉Imgtec 2026-01-21 16:21 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

本文转自:DeepHub IMBA

作者:Syntal


训练单个 RL 智能体的过程非常简单,那么我们现在换一个场景,同时训练五个智能体,而且每个都有自己的目标、只能看到部分信息,还能互相帮忙。

这就是多智能体强化学习(Multi-Agent Reinforcement Learning,MARL),但是这样会很快变得混乱。


什么是多智能体强化学习

MARL 是多个决策者(智能体)在同一环境中交互的强化学习。

环境类型可以很不一样。竞争性的,比如国际象棋,一方赢一方输。合作性的,比如团队运动,大家共享目标。还有混合型的,更像现实生活——现在是队友,过会儿可能是对手,有时候两者同时存在。

但是这里有一个关键的问题:从任何一个智能体的视角看世界变成了非平稳的,因为其他智能体也在学习、在改变行为。也就是说在学规则的时候,规则本身也在变。


MARL 在现实中的位置

单智能体 RL 适合系统只有一个"大脑"的情况,而MARL 则出现在世界有多个"大脑"的时候。

现实世界中有很多这样的案例,比如交通信号控制:每个路口是一个智能体,一个信号灯"贪婪"了,下游路口就会卡死;仓库机器人:每个机器人自己选路径,碰撞和拥堵天然是多智能体问题;广告竞价和市场:智能体用不断变化的策略争夺有限资源;网络安全:攻击者和防御者是相互适应的智能体对;在线游戏和模拟:协调、欺骗、配合、自我对弈——这些都是MARL 的经典试验场。


核心概念

大多数真实场景中,智能体只能看到状态的一部分。所以 MARL 里的策略通常基于局部观测,而不是完整的全局状态。

单智能体 RL 里环境动态是稳定的,而MARL 不一样"环境"包括其他智能体。它们在学习,你的转移动态也就跟着变了。

这正是经典的 Qlearn在多智能体环境里容易震荡、甚至崩溃的原因。

合作任务中团队拿到奖励,但功劳该算谁的?团队成功了,是智能体 2 的动作起了作用,还是智能体 5 在 10 步之前的作用?这就是信用分配问题,这是MARL 里最头疼的实际难题之一。


集中式与分布式

集中训练、分布式执行(CTDE)

这是目前最常见的模式。训练时智能体可以用额外信息,比如全局状态或其他智能体的动作。执行时每个智能体只根据自己的局部观测行动。

这样的好处是,既有集中学习的稳定性,又不需要在运行时获取不现实的全局信息。

完全分布式学习

智能体只从局部经验学习。这个听起来是对的,而且简单任务也能用。但实际中往往不够稳定,合作任务尤其如此。


算法总览

合作性基于价值的方法:Independent Q-Learning(IQL)是最简单的基线,容易实现但通常不稳定;VDN 和 QMIX 通过混合各智能体的价值来学全局团队价值,合作处理得更好。

策略梯度和 Actor-Critic 方法:MADDPG 用集中式 Critic 配分布式 Actor,概念上是很好的切入点;MAPPO 在很多合作任务里是靠谱的默认选择。

自我对弈(Self-play):和自己不同版本对打来建立泛化的策略。思路简单粗暴效果也很好。


Python 从零搭一个小 MARL 环境

来做个玩具游戏:两个智能体必须协调。经典设定——两者选同一个动作才有奖励。每个智能体选 0 或 1,动作一致拿 +1,不一致拿 0。

我们这里刻意设计得简单,这样方便我们聚焦在 MARL 机制本身。

import random
from collections import defaultdict

class CoordinationGame:
def step(self, a0, a1):
reward = 1 if a0 == a1 else 0
done = True # single-step episode
return reward, done

接下来是最小化的 Independent Q-Learning 设置,每个智能体学自己的 Q 表。这里没有状态,Q 只取决于动作。

def epsilon_greedy(Q, eps=0.1):
if random.random() < eps:  
return random.choice([0, 1])
return 0 if Q[0] >= Q[1] else 1

Q0 = defaultdict(float) # Q0[action]
Q1 = defaultdict(float) # Q1[action]

alpha = 0.1
eps = 0.2
env = CoordinationGame()

for episode in range(5000):
a0 = epsilon_greedy(Q0, eps)
a1 = epsilon_greedy(Q1, eps)

r, done = env.step(a0, a1)

# One-step update (no next-state)
Q0[a0] += alpha * (r - Q0[a0])
Q1[a1] += alpha * (r - Q1[a1])

# Inspect learned preferences
print("Agent0 Q:", dict(Q0))
print("Agent1 Q:", dict(Q1))

多数运行会收敛到两种"惯例"之一:两者都学会总是选 0,或者都学会总是选 1。

这就是协调从学习中涌现出来的样子。虽然小但和大型合作 MARL 系统里依赖的模式是同一类东西。

这个玩具例子太友好了。难一点的任务里,IQL 常常变得不稳定,因为每个智能体都在追一个移动靶。


让例子更"MARL"一点

常见技巧是加共享团队奖励,同时保证足够长的探索期来发现协调,下面是一个带衰减 epsilon 的训练循环:

Q0 = defaultdict(float)
Q1 = defaultdict(float)

alpha = 0.1
eps = 0.9
eps_decay = 0.999
eps_min = 0.05

env = CoordinationGame()

for episode in range(20000):
a0 = epsilon_greedy(Q0, eps)
a1 = epsilon_greedy(Q1, eps)

r, _ = env.step(a0, a1)

Q0[a0] += alpha * (r - Q0[a0])
Q1[a1] += alpha * (r - Q1[a1])

eps = max(eps_min, eps * eps_decay)

print("Agent0 Q:", dict(Q0))
print("Agent1 Q:", dict(Q1))

这当然不会解决 MARL,但它演示了一个真实原则:早期探索帮助智能体"找到"一个稳定的协调惯例。


总结

一旦解决了单步协调问题,还会有三个问题会反复出现:

虚假学习信号:智能体可能觉得"是自己动作导致了奖励",实际上是另一个智能体的动作起了作用。

糟糕的均衡陷阱:在竞争性游戏里,智能体可能卡在稳定但不强的弱策略上。

规模爆炸:多智能体的状态和动作空间膨胀很快,需要更好的函数逼近(神经网络)、更好的训练方案(CTDE),通常还需要更讲究的环境设计。

应对这些问题没有万能解法,但有一些经过验证的思路。针对虚假学习信号,可以用 CTDE 架构让 Critic 看到全局信息,帮助每个智能体更准确地评估自己动作的贡献。均衡陷阱的问题,自我对弈加上一定的探索机制能帮智能体跳出局部最优。规模问题则需要参数共享、注意力机制等技术来降低复杂度。

实际项目中,建议先在概念上理解集中式 Critic 的工作原理,不用急着写完整的深度 RL 代码。这一步会改变你思考可观测性和稳定性的方式,后面上手具体算法会顺畅很多。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 智能体
    +关注

    关注

    1

    文章

    617

    浏览量

    11656
  • 强化学习
    +关注

    关注

    4

    文章

    275

    浏览量

    12012
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    基于智能深度强化学习的体系任务分配方法

    为了应对在未来复杂的战场环境下,由于通信受限等原因导致的集中式决策模式难以实施的情况,提出了一个基于智能深度强化学习方法的分布式作战体系任务分配
    的头像 发表于 05-18 16:46 6743次阅读
    基于<b class='flag-5'>多</b><b class='flag-5'>智能</b><b class='flag-5'>体</b>深度<b class='flag-5'>强化学习</b>的体系任务分配方法

    深度强化学习实战

    测试)三、主讲内容1:课程一、强化学习简介课程二、强化学习基础课程三、深度强化学习基础课程四、智能
    发表于 01-10 13:42

    介绍智能体系统的解决方案以及应用

    智能体系统深度强化学习:挑战、解决方案和应用的回顾摘要介绍背景:强化学习前提贝尔曼方程RL方法深度强化学习:单
    发表于 07-12 08:44

    什么是强化学习?纯强化学习有意义吗?强化学习有什么的致命缺陷?

    强化学习是人工智能基本的子领域之一,在强化学习的框架中,智能通过与环境互动,来学习采取何种动作
    的头像 发表于 07-15 10:56 1.9w次阅读
    什么是<b class='flag-5'>强化学习</b>?纯<b class='flag-5'>强化学习</b>有意义吗?<b class='flag-5'>强化学习</b>有什么的致命缺陷?

    基于强化学习的MADDPG算法原理及实现

    之前接触的强化学习算法都是单个智能强化学习算法,但是也有很多重要的应用场景牵涉到多个
    的头像 发表于 11-02 16:18 2.3w次阅读

    如何测试强化学习智能适应性

    强化学习(RL)能通过奖励或惩罚使智能实现目标,并将它们学习到的经验转移到新环境中。
    的头像 发表于 12-24 09:29 3940次阅读

    深度强化学习研究中首次将概率递归推理引入AI的学习过程

    在传统的学习过程当中,有研究者在对其他智能建模 (也即“对手建模”, opponent modeling) 时使用了递归推理,但由于
    的头像 发表于 03-05 08:52 5988次阅读

    一种基于智能体协同强化学习的多目标追踪方法

    矩阵对其进行求解得到多个追踪智能的任务分配情况,并以缩短目标智能的追踪路径为优化目标进行任务分工,同时利用
    发表于 03-17 11:08 20次下载
    一种基于<b class='flag-5'>多</b><b class='flag-5'>智能</b>体协同<b class='flag-5'>强化学习</b>的多目标追踪方法

    一种新型的智能深度强化学习算法

    一种新型的智能深度强化学习算法
    发表于 06-23 10:42 36次下载

    《自动化学报》—Agent深度强化学习综述

    突破.由于融合了深度学习强大的表征能力和强化学习有效的策略搜索能力,深度强化学习已经成为实现人工智能颇有前景的学习范式.然而,深度
    发表于 01-18 10:08 2463次阅读
    《自动<b class='flag-5'>化学</b>报》—<b class='flag-5'>多</b>Agent深度<b class='flag-5'>强化学习</b>综述

    强化学习的基础知识和6种基本算法解释

    定标记训练数据的情况下获得正确的输出 无监督学习(UL):关注在没有预先存在的标签的情况下发现数据中的模式 强化学习(RL) : 关注智能在环境中如何采取行动以最大化累积奖励 通俗地
    的头像 发表于 12-20 14:00 1959次阅读

    强化学习的基础知识和6种基本算法解释

    的情况下获得正确的输出无监督学习(UL):关注在没有预先存在的标签的情况下发现数据中的模式强化学习(RL):关注智能在环境中如何采取行动以最大化累积奖励通俗地说,强
    的头像 发表于 01-05 14:54 2048次阅读
    <b class='flag-5'>强化学习</b>的基础知识和6种基本<b class='flag-5'>算法</b>解释

    基于强化学习的目标检测算法案例

    摘要:基于强化学习的目标检测算法在检测过程中通常采用预定义搜索行为,其产生的候选区域形状和尺寸变化单一,导致目标检测精确度较低。为此,在基于深度强化学习的视觉目标检测算法基础上,提出联
    发表于 07-19 14:35 0次下载

    语言模型做先验,统一强化学习智能,DeepMind选择走这条通用AI之路

    的发展,从最早的 AlphaGo、AlphaZero 到后来的模态、多任务、具身 AI 智能 Gato,智能
    的头像 发表于 07-24 16:55 1518次阅读
    语言模型做先验,统一<b class='flag-5'>强化学习</b><b class='flag-5'>智能</b><b class='flag-5'>体</b>,DeepMind选择走这条通用AI之路

    如何使用 PyTorch 进行强化学习

    的计算图和自动微分功能,非常适合实现复杂的强化学习算法。 1. 环境(Environment) 在强化学习中,环境是一个抽象的概念,它定义了智能
    的头像 发表于 11-05 17:34 1864次阅读