算法全家桶:EPyMARL中10种主流MARL算法一次讲透 📅 2026/8/20 18:28:16 算法全家桶EPyMARL中10种主流MARL算法一次讲透【免费下载链接】epymarlAn extension of the PyMARL codebase that includes additional algorithms and environment support项目地址: https://gitcode.com/gh_mirrors/ep/epymarl多智能体强化学习MARL已成为人工智能最热门的研究方向之一而面对QMIX、MAPPO、MADDPG等琳琅满目的算法新手往往不知从何下手。EPyMARLExtended PyMARL正是为解决这一痛点而生的开源MARL算法框架它在经典PyMARL基础上扩展了十余种主流MARL算法与多环境支持让研究者可以一次安装、全家桶体验。本文将带你认识EPyMARL中的10种主流MARL算法并附上快速上手方法。什么是EPyMARL多智能体强化学习算法全家桶 EPyMARL是PyMARL的扩展版本由爱丁堡大学智能体研究团队维护核心目标有三个算法覆盖全内置10种主流MARL算法覆盖值分解、Actor-Critic、独立学习等各大流派环境支持广同时支持SMAC星际争霸、Gym、LBF觅食、RWARE仓库、MPE粒子环境等对比公平所有算法使用统一的实现细节如hard/soft更新、奖励标准化保证算法间可比性整个框架的算法配置集中在src/config/algs/目录每个算法对应一个YAML配置文件切换算法只需改一行参数非常方便。EPyMARL算法全景图10种主流MARL算法速览 先看总览表再逐个拆解算法类型一句话特点配置文件QMIX值分解单调混合网络SMAC经典qmix.yamlVDN值分解总Q值直接求和最简分解vdn.yamlQTRAN值分解解决非单调分解理论完备qtran_learner.pyCOMAActor-Critic反事实基线星际争霸专用coma.yamlIQL独立学习每个智能体独立跑DQNiql.yamlIA2CActor-CriticA2C多智能体化ia2c.yamlMAA2CActor-Critic集中式Critic版A2Cmaa2c.yamlIPPOPPO系列PPO多智能体化独立ippo.yamlMAPPOPPO系列集中式Critic版PPO性能王者mappo.yamlMADDPGDDPG系列连续动作中心化训练去中心化执行maddpg.yaml值分解家族QMIX与VDN算法 值分解Value Decomposition是合作型MARL的主流思路把全局Q值分解为各智能体Q值的组合从而在保持全局优化的同时实现去中心化执行。VDN最简单的值分解全局Q值直接等于各智能体Q值之和。实现位于src/modules/mixers/vdn.py堪称开箱即懂的入门算法QMIX用混合网络Mixing Network对智能体Q值做加权和并引入单调性约束保证分解正确性。实现位于src/modules/mixers/qmix.py是SMAC星际争霸挑战赛中的标杆算法两者的训练逻辑共用src/learners/q_learner.py通过配置mixer: qmix或mixer: vdn即可切换非常灵活。反事实基线COMA算法 COMACounterfactual Multi-Agent Policy Gradients是专为星际争霸设计的Actor-Critic算法其核心创新是反事实基线Counterfactual Baseline通过如果我换成其他动作收益差多少来衡量每个智能体的贡献从而精准分配信用。COMA使用集中式Critic网络实现位于src/modules/critics/coma.py训练器在src/learners/coma_learner.py。它特别擅长处理智能体数量多、动作空间大的场景。分解与重构QTRAN算法 QMIX和VDN都要求分解满足单调性约束但现实任务中很多全局收益函数并不单调。QTRAN通过引入额外的状态值函数在理论上支持任意可分解的全局Q值突破了单调限制。QTRAN的混合器位于src/modules/mixers/qtran.py训练器在src/learners/qtran_learner.py。它是值分解家族中理论最完备的一个适合追求严谨性的研究者。独立学习IQL算法 IQLIndependent Q-Learning把每个智能体当作独立的DQN来训练彼此完全无视对方的存在。虽然简单粗暴但却是理解MARL挑战非平稳性问题的最佳起点。在EPyMARL中IQL就是不带混合器的Q学习配置mixer: null即可训练器同样复用src/learners/q_learner.py。跑通IQL再对比QMIX你能直观体会到协作带来的性能提升。Actor-Critic家族IA2C与MAA2C算法 A2CAdvantage Actor-Critic是单智能体强化学习的经典算法多智能体化后有两条路线IA2C独立A2C每个智能体用自己的Critic实现于src/learners/actor_critic_learner.pyMAA2C集中式Critic版A2CCritic能看到所有智能体的观测和动作信息更充分两者的差异正是MARL中中心化训练-去中心化执行CTDE范式的直观体现。Critic网络定义在src/modules/critics/ac.py。PPO多智能体化IPPO与MAPPO算法 PPO凭借稳定性和易调参性统治了单智能体RL多智能体化后同样威力惊人IPPO独立PPO每个智能体独立优化自己的策略MAPPO集中式Critic版PPOCritic基于全局状态评估价值。在SMAC等复杂任务中MAPPO常能取得与QMIX相当甚至更优的成绩两者共用src/learners/ppo_learner.py通过critic_type: cv_critic配置集中式Critic。PPO系列的收敛稳定性远超策略梯度老方法是当前MARL实战的首选。多智能体DDPGMADDPG算法 如果你的任务涉及连续动作空间如机器人控制MADDPG是绕不开的选择。它结合DDPG与CTDE思想每个智能体一个Actor输出连续动作一个集中式Critic评估全局收益。MADDPG的控制器在src/controllers/maddpg_controller.pyCritic在src/modules/critics/maddpg.py训练器在src/learners/maddpg_learner.py还支持经验回放和软更新是连续控制场景的标配。参数共享的开关ns后缀的秘密 细心的你会发现EPyMARL每个算法都有_ns变体如qmix_ns.yaml、mappo_ns.yaml。ns代表no parameter sharing无参数共享。默认版本所有智能体共享同一套网络参数参数共享_ns版本每个智能体独立参数对应src/controllers/non_shared_controller.py和src/modules/agents/rnn_ns_agent.py参数共享能大幅减少参数量、加速训练但会限制智能体的异质性。EPyMARL是少数同时支持两种模式的框架方便研究者严谨对比。如何快速跑通第一个MARL算法实验 ⚡第一步安装EPyMARL多智能体框架git clone https://gitcode.com/gh_mirrors/ep/epymarl cd epymarl pip install -r requirements.txt如需运行LBF、RWARE等环境再执行pip install -r env_requirements.txt。第二步一行命令启动训练python3 src/main.py --configqmix --env-configgymma with env_args.time_limit50 env_args.keylbforaging:Foraging-8x8-2p-3f-v2--configqmix指定算法配置src/config/algs/qmix.yaml--env-configgymma指定环境配置src/config/envs/gymma.yamlenv_args.key填写Gym环境ID这里用的是LBF觅食任务想换算法把qmix改成mappo、vdn或任意配置文件名即可环境完全不用动第三步分析实验结果训练结果默认保存在Results目录可用项目自带的plot_results.py一键绘制对比曲线还支持src/search.py自动进行超参数搜索帮你快速找到最佳配置。总结 EPyMARL用一个框架装下了10种主流MARL算法从值分解QMIX、VDN、QTRAN到策略梯度COMA、IA2C、MAA2C、IPPO、MAPPO、MADDPG再到独立学习IQL几乎覆盖了合作型多智能体强化学习的全部主流流派。无论你是刚入门的新手想对比算法效果还是研究者需要公平的基准测试EPyMARL都是值得一试的MARL算法全家桶。现在就去 clone 一份跑通你的第一个多智能体实验吧【免费下载链接】epymarlAn extension of the PyMARL codebase that includes additional algorithms and environment support项目地址: https://gitcode.com/gh_mirrors/ep/epymarl创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考