导读:本期聚焦于多肉创作的《为什么多智能体强化学习需要中心化训练与分布式执行?》,敬请观看详情。多智能体强化学习区别于单智能体场景的核心难题在于环境非平稳性。当每个智能体都在同时学习并更新策略时,从任何一个智能体的视角看,环境中的其他智能体也是策略的一部分,导致环境转移分布在训练过程中不断变化,传统Q学习的收敛性保证随之失效。本文深入剖析环境非平稳问题的成因与影响,重点讲解中心化训练与分布式执行这一主流解决范式,包括值函数分解、中央化评论家等典型方法,并结合CTDE框架说明训练阶段如何利用全局信息、执行阶段如何保持分布式决策,帮助读者理解该范式在合作博弈任务中的优势与工程实践要点。

多智能体强化学习与单智能体强化学习最本质的区别,并不在于智能体数量的增加,而在于环境的性质发生了根本改变。当多个智能体在同一个环境中同时学习时,每个智能体面对的不再是一个固定的环境,而是一个由其他学习中的智能体共同构成的动态系统。这就是所谓的环境非平稳问题。为了解决这一难题,研究者提出了中心化训练与分布式执行范式,也就是常说的CTDE框架,它已经成为多智能体强化学习领域最重要、应用最广泛的设计思想。

为什么多智能体强化学习需要中心化训练与分布式执行?

环境非平稳问题到底是怎么产生的

在单智能体强化学习中,马尔可夫决策过程假设环境转移概率是固定不变的。智能体无论采取什么策略,环境的动态特性始终保持一致,这使得Q学习等算法在满足一定条件时能够收敛到最优策略。然而在多智能体场景下,从任意一个智能体的视角出发,其他智能体的行为本身就是环境的一部分。当其他智能体的策略随着训练不断更新时,这个智能体所感知到的环境转移概率和奖励分布也在持续变化。

用一个直观的例子来说明:假设两个机器人协作搬运箱子,机器人甲原本学会的策略是在机器人乙从左侧靠近时向右让位。但随着训练推进,机器人乙改变了行为习惯,改从右侧靠近,此时机器人甲基于旧经验学到的策略就不再适用。更糟糕的是,两个智能体在互相适应的过程中可能形成循环追逐,甲适应乙的新策略后乙又随之改变,导致学习过程震荡甚至完全无法收敛。这种现象在博弈论中对应的就是策略空间的非平稳性,它从根本上破坏了单智能体算法收敛性的理论前提。

非平稳性带来的具体危害包括:经验回放池中存储的旧样本可能来自过时的联合策略分布,直接复用这些样本会引入系统性偏差;目标值的计算依赖对其他智能体行为的估计,而这个估计本身在不断漂移;信用分配问题被放大,当团队获得奖励时,很难判断每个智能体的贡献,噪声和方差显著增加。这些问题叠加在一起,使得直接把单智能体算法应用到多智能体场景的效果往往很不理想。

CTDE范式的核心思想与实现方式

中心化训练与分布式执行的思路非常巧妙:既然非平稳性源于训练过程中其他智能体策略的变化,那么就在训练阶段打破信息壁垒,让每个智能体的学习过程能够利用全局信息,包括所有智能体的观测和动作;而在执行阶段,每个智能体只依赖自己的局部观测独立决策,从而保证策略可以部署到通信受限的真实环境中。

这一范式的理论基础是集中式马尔可夫决策过程的概念。在训练时,如果把所有智能体视为一个整体,那么联合策略是固定的,整个系统仍然满足马尔可夫性和平稳性条件,单智能体算法的收敛理论就可以部分迁移过来。具体实现上有几条典型的技术路线,下面这段代码展示了CTDE框架中中央化评论家的基本结构,以PyTorch风格的伪代码示意:

import torch
import torch.nn as nn

class CentralisedCritic(nn.Module):
    """中央化评论家:输入全局状态与所有智能体的联合动作"""
    def __init__(self, global_state_dim, joint_action_dim, hidden_dim=128):
        super().__init__()
        self.net = nn.Sequential(
            nn.Linear(global_state_dim + joint_action_dim, hidden_dim),
            nn.ReLU(),
            nn.Linear(hidden_dim, hidden_dim),
            nn.ReLU(),
            nn.Linear(hidden_dim, 1)  # 输出联合动作价值 Q_tot
        )

    def forward(self, global_state, joint_action):
        x = torch.cat([global_state, joint_action], dim=-1)
        return self.net(x)

class DecentralisedActor(nn.Module):
    """分布式执行者:每个智能体仅依赖局部观测输出动作"""
    def __init__(self, local_obs_dim, action_dim, hidden_dim=64):
        super().__init__()
        self.net = nn.Sequential(
            nn.Linear(local_obs_dim, hidden_dim),
            nn.ReLU(),
            nn.Linear(hidden_dim, action_dim)
        )

    def forward(self, local_obs):
        return self.net(local_obs)

上述结构体现了CTDE的典型分工:演员网络在执行时只看局部观测,参数量小、推理延迟低;评论家网络在训练时拥有上帝视角,可以更准确地评估联合动作的价值,从而缓解信用分配的困难。需要强调的是,中央化只存在于训练阶段,训练完成后评论家网络被丢弃,部署的仅仅是各个分布式演员,因此不会带来运行时的通信开销。

典型算法:从VDN、QMIX到MADDPG

在CTDE框架下,涌现出一批经典算法。值函数分解路线的代表是VDN和QMIX。VDN假设团队总价值等于各个智能体个体价值函数的简单求和,这一线性分解极大地简化了学习问题。QMIX在此基础上做了改进,引入一个以全局状态为输入的混合网络,用单调性约束保证个体价值与联合价值的argmax操作一致,从而支持 off-policy 学习。核心思想可以用如下公式描述:

def qmix_mixing(agent_qs, global_state, hyper_net):
    """
    agent_qs: 各智能体个体Q值列表
    global_state: 全局状态
    hyper_net: 超网络,根据状态生成混合网络权重
    权重经过绝对值变换保证非负,满足单调性约束
    """
    weights = torch.abs(hyper_net(global_state))   # 保证单调性
    bias = hyper_net_bias(global_state)
    q_tot = torch.matmul(agent_qs, weights) + bias
    return q_tot

另一条路线是确定性策略梯度方法的扩展,代表算法是MADDPG。它为每个智能体配备一个中央化评论家,评论家以所有智能体的观测和动作为输入,而每个演员只依赖自身观测。由于评论家拥有全局信息,即使其他智能体策略在变,评论家对当前联合策略下的价值估计仍然有较好的稳定性。MADDPG在合作与竞争混合的博弈任务中表现良好,但其缺点也较为明显:所有评论家都以联合动作为输入,随着智能体数量增加,输入维度和参数量爆炸,可扩展性受限。

此外还有基于COMA的反事实信用分配方法,通过计算反事实基线来评估单个智能体动作的边际贡献,即如果这个智能体采取了默认动作,团队回报会如何变化。这种方法为解决多智能体信用分配问题提供了更精细的工具,但计算开销相对较大。

工程实践中的关键考量与局限

在实际项目中应用CTDE时,有几个工程问题值得特别注意。首先是全局状态的可获得性。很多真实场景中并不存在天然的全局状态,训练时只能通过拼接所有智能体的局部观测来近似,这时不同智能体观测中的噪声和延迟会影响评论家的估计质量。其次是策略一致性约束,QMIX的单调性假设虽然保证了 argmax 的一致性,但也限制了个体价值函数的表达能力,某些需要牺牲局部利益保全全局利益的复杂任务中,QMIX可能无法表示最优的联合价值函数,为此出现了QPLEX、Weighted QMIX等放宽约束的改进方案。

其次是训练稳定性的调参经验。多智能体训练对学习率、目标网络更新频率、回放池大小等超参数更加敏感,建议采用较小的学习率并配合梯度裁剪;经验回放时应尽量使用近期的样本,或者采用能感知策略版本的平均Q学习等技巧来缓解旧样本的分布偏移。另外,课程学习在多智能体场景中往往效果显著,先在少量智能体或简单对手配置下训练,再逐步增加难度,可以有效降低非平稳性带来的震荡。

def soft_update(target_net, online_net, tau=0.005):
    """目标网络软更新,多智能体场景建议使用较小的tau"""
    for target_param, param in zip(target_net.parameters(),
                                   online_net.parameters()):
        target_param.data.copy_(tau * param.data +
                                (1.0 - tau) * target_param.data)

最后需要认识到CTDE并非万能。它主要适用于合作或弱竞争场景,在零和博弈等强竞争环境中,对手建模与自我博弈机制往往比CTDE更有效。同时,当智能体数量达到几十甚至上百个规模时,联合动作空间的指数级增长会使得中央化评论家难以训练,此时基于平均场近似的方法如MFMARL,或者基于图神经网络建模智能体关系的方法,是更有前景的方向。理解CTDE的思想本质,即用训练时的信息优势换取执行时的分布式简洁,将帮助开发者在面对不同的多智能体任务时灵活选择和组合这些技术,构建既稳定又可部署的学习系统。

多智能体强化学习CTDE环境非平稳修改时间:2026-09-01 03:31:49

免责声明:​ 已尽一切努力确保本网站所含信息的准确性。网站内容多为原创整理与精心编撰,观点力求客观中立。本站旨在免费分享,内容仅供个人学习、研究或参考使用。若引用了第三方作品,版权归原作者所有。如内容涉及您的权益,请联系我们处理。
内容垂直聚焦
专注技术核心技术栏目,确保每篇文章深度聚焦于实用技能。从代码技巧到架构设计,为用户提供无干扰的纯技术知识沉淀,精准满足专业提升需求。
知识结构清晰
覆盖从开发到部署的全链路。AI、前端、编程、数据库、服务器、建站、系统层层递进,构建清晰学习路径,帮助用户系统化掌握开发与运维所需的核心技术。
深度技术解析
拒绝泛泛而谈,深入技术细节与实践难点。无论是数据库优化还是服务器配置,均结合真实场景与代码示例进行剖析,致力于提供可直接应用于工作的解决方案。
专业领域覆盖
精准对应开发生命周期。从前端界面到后端编程,从数据库操作到服务器运维,形成完整闭环,一站式满足全栈工程师和运维人员的技术需求。
即学即用高效
内容强调实操性,步骤清晰、代码完整。用户可根据教程直接复现和应用于自身项目,显著缩短从学习到实践的距离,快速解决开发中的具体问题。
持续更新保障
专注既定技术方向进行长期、稳定的内容输出。确保各栏目技术文章持续更新迭代,紧跟主流技术发展趋势,为用户提供经久不衰的学习价值。