多智能体强化学习¶
项目概述¶
本项目为深度学习实验课程的期末课程项目,面向本科高年级学生,核心目标是帮助学生掌握多智能体强化学习(Multi-Agent Reinforcement Learning, MARL)的核心理论、算法实现、实验设计与结果分析全流程。项目工作量对标人工智能顶会 Short Paper 标准,要求学生基于 ma-gym 多智能体环境库完成算法设计与实验验证。
任务选择规则¶
- 1人团队:至少选择1个
ma-gym环境任务 - 2人团队:至少选择2个
ma-gym环境任务 - 3人团队:至少选择3个
ma-gym环境任务 - 多选任务、拓展算法、创新改进可获得额外加分,严禁少选任务
1. 任务说明¶
1.1 环境库介绍¶
ma-gym 是基于 OpenAI Gym 开发的标准化多智能体强化学习环境库,涵盖协同、对抗、混合场景的经典 MARL 任务,提供统一的环境交互接口,是 MARL 算法验证的主流基准平台。本次课程项目所有任务必须从该库中选取。
1.2 推荐任务详情¶
本次课程项目推荐 3 个难度梯度清晰、覆盖 MARL 核心研究场景、适配本科教学的任务,学生可从中选择对应数量的任务完成:
| 任务名称 | 核心场景 | 任务描述 | 核心难点 |
|---|---|---|---|
| Switch2-v0/Switch4-v0 | 完全协同导航 | 2/4个智能体在网格世界中,需分别到达对应编号的目标开关位置;智能体仅能观测局部视野,需协同规划路径避免拥堵,所有智能体同时到达目标时任务完成 | 多智能体信用分配、局部可观测下的协同决策、路径冲突解决 |
| TrafficJunction4-v0 | 分布式协同管控 | 4个车辆智能体在无信号灯的交叉路口中,需从起点行驶至对应终点;仅能观测周围局部环境,需在避免碰撞的前提下以最短时间完成通行 | 部分可观测马尔可夫决策(POMDP)、动态避障、长时序协同规划、安全与效率的权衡 |
| PredatorPrey5x5-v0 | 协同-对抗混合 | 5x5网格世界中,多个捕食者智能体需协同捕获具备逃逸策略的猎物;捕食者仅拥有局部视野,所有捕食者同时包围猎物时捕获成功 | 非平稳环境策略学习、协同-对抗混合场景建模、样本效率优化 |
1.3 推荐多智能体强化学习算法¶
本次课程项目推荐 3 种覆盖主流 MARL 范式、实现难度适配本科教学、与 ma-gym 环境高度适配的算法。学生必须至少选择其中 2 种完成任务,也可自选 QMIX、MAPPO 等前沿 MARL 算法(可获创新加分)。
算法1:独立Q学习(Independent Q-Learning, IQL)¶
- 核心思想:MARL领域最基础的基线算法,将多智能体任务拆解为多个独立的单智能体DQN任务。每个智能体独立维护自己的Q网络,仅基于自身局部观测、动作和奖励更新策略,不考虑其他智能体的行为。
- 核心优势:实现逻辑极简、训练开销低、易于调试,是所有MARL算法的基准对比基线,可帮助学生快速掌握MARL环境交互逻辑与非平稳性核心问题。
- 适配场景:Switch2-v0等简单协同任务,可作为所有任务的基线算法。
算法2:值分解网络(Value Decomposition Network, VDN)¶
- 核心思想:经典的集中训练分散执行(CTDE)范式值分解类算法。核心是将多智能体联合动作价值函数\(Q_{total}\)线性分解为每个智能体局部动作价值函数\(Q_i\)的和,即\(Q_{total} = \sum Q_i\)。集中训练阶段基于全局奖励学习联合价值函数,分散执行阶段每个智能体仅基于自身局部Q函数决策,完美解决完全协同场景下的信用分配问题。
- 核心优势:解决了IQL的非平稳性与信用分配缺陷,协同任务性能远超IQL;网络结构简单、易于实现、训练稳定性强、样本效率更高。
- 适配场景:Switch系列、TrafficJunction系列等完全协同任务,是协同场景的核心进阶算法。
算法3:多智能体深度确定性策略梯度(Multi-Agent Deep Deterministic Policy Gradient, MADDPG)¶
- 核心思想:经典的CTDE范式actor-critic类算法。每个智能体维护独立的actor网络(基于局部观测输出动作),同时共享一个集中式critic网络(基于所有智能体的全局观测与动作评估联合动作价值)。集中训练阶段用全局信息优化critic,分散执行阶段仅用本地actor网络决策,可同时处理协同、对抗、混合场景,兼容离散与连续动作空间。
- 核心优势:泛化性极强,覆盖所有
ma-gym任务场景;解决了非平稳环境下的策略学习问题,可建模智能体间的复杂交互,是MARL领域应用最广泛的基础算法之一。 - 适配场景:PredatorPrey系列、PongDuel-v0等对抗-混合场景,也可适配协同类任务。
2. 设计规范¶
2.1 算法设计要求¶
- 算法数量强制要求:必须至少选择2种多智能体强化学习算法完成所选全部任务,其中必须包含1种基线算法(推荐IQL)与1种进阶CTDE算法(推荐VDN/MADDPG),实现更多算法可获得加分。
- 算法分析要求:必须在报告中详细陈述所选算法的:
- 核心理论原理与数学公式
- 针对所选任务的核心优势与场景适配性
- 相比其他算法的改进点与局限性
- 针对任务特性做的定制化修改(如状态空间预处理、奖励函数重塑、网络结构调整等)
- 创新性要求:鼓励学生在现有算法基础上提出改进变体(如针对部分可观测加入循环神经网络、针对样本效率优化经验回放机制等),可获得创新加分。
2.2 代码结构规范¶
所有代码基于Python实现,深度学习框架推荐使用PyTorch,也可选用TensorFlow 2.x,必须严格遵循以下工程规范,保证代码的可读性、可复现性与模块化。
推荐目录结构¶
MARL-Homework/
├── README.md # 代码运行说明、环境配置、团队分工、作者信息
├── requirements.txt # 所有依赖包与版本号
├── envs/ # 环境封装模块(可选,用于ma-gym环境定制化适配)
├── algorithms/ # 算法核心实现模块
│ ├── __init__.py
│ ├── iql.py # IQL算法实现
│ ├── vdn.py # VDN算法实现
│ └── maddpg.py # MADDPG算法实现
├── train.py # 训练入口脚本,支持算法、环境、超参数命令行配置
├── eval.py # 模型评估与可视化脚本
├── utils/ # 工具函数模块(经验回放、日志记录、绘图工具等)
│ ├── __init__.py
│ ├── replay_buffer.py
│ └── plot_utils.py
└── results/ # 实验结果保存目录(模型权重、日志、绘图结果)
├── models/
├── logs/
└── figures/
代码编写强制要求¶
- 可复现性:必须固定所有随机种子(环境、Python、numpy、深度学习框架),支持通过命令行参数指定种子,保证实验结果可复现。
- 模块化设计:算法、环境、训练、评估、工具函数必须分模块实现,禁止单文件全量代码;禁止硬编码超参数,所有超参数必须支持通过配置文件或命令行参数修改。
- 注释规范:核心算法逻辑、网络结构、关键函数必须添加清晰注释,说明函数功能、输入输出、核心逻辑。
- 环境适配:严格遵循
ma-gym官方安装与环境配置要求,保证代码可在标准ma-gym环境中正常运行,禁止修改ma-gym库核心源码。 - 日志与可视化:必须实现训练过程的日志记录(TensorBoard或txt日志),支持训练曲线的实时绘制与保存。
3. 实验要求¶
3.1 实验平台要求¶
- 基础运行环境:Python 3.7 ~ 3.9(适配
ma-gym依赖),pip<24.1,setuptools<=66,wheel<=0.38.4,严格遵循ma-gym官方安装规范。 - 深度学习框架:PyTorch 1.10+ 或 TensorFlow 2.8+
- 硬件要求:CPU可完成全部实验,推荐使用NVIDIA GPU(4GB以上显存)加速训练,无强制硬件要求。
- 禁用项:禁止直接调用Stable-Baselines3、PyMARL等成熟MARL算法库的现成算法接口,核心算法逻辑必须由学生独立实现。
3.2 实验评估指标¶
学生必须针对所选任务,完成通用核心指标与任务专属指标的评估,所有指标必须完成多随机种子的统计验证,报告均值与标准差。
通用核心评估指标(所有任务必须报告)¶
- 回合累计奖励(Episodic Return):每个回合所有智能体获得的奖励之和,是MARL算法性能的核心指标,需绘制训练过程中回合累计奖励的学习曲线(横轴为训练回合/环境交互步数,纵轴为奖励均值,阴影为标准差)。
- 收敛速度:算法达到稳定收敛阈值所需的训练回合数/环境交互步数,用于评估算法的样本效率。
- 任务完成率:测试集回合中,成功完成任务的回合占比,需在训练完成后,用固定模型权重跑至少100个测试回合统计。
- 策略稳定性:算法收敛后,测试回合奖励的标准差,用于评估策略的鲁棒性。
任务专属评估指标(对应任务必须报告)¶
- Switch系列任务:平均任务完成步数、智能体碰撞率、路径规划效率。
- TrafficJunction系列任务:车辆碰撞率、平均通行时间、路口通行吞吐量。
- PredatorPrey系列任务:猎物平均捕获步数、捕食者协同包围成功率、猎物逃逸率。
3.4 实验设计要求¶
- 对照实验公平性:所有对比算法必须在完全相同的环境配置、超参数、训练步数、随机种子设置下完成训练,保证对比的公平性。
- 重复实验要求:每个算法的每个实验,必须至少使用5个不同的随机种子完成独立训练与测试,报告所有结果的均值与标准差,禁止仅报告单次最优结果。
- 消融实验(可选,加分):针对核心超参数、算法核心模块开展消融实验,分析其对算法性能的影响。
4. 提交规范¶
本次课程项目需提交代码压缩包与实验报告 PDF 文件两个部分,提交时间参考课程网页,严禁逾期提交。
4.1 代码文件提交要求¶
- 代码遵循2.2节的结构规范,所有依赖必须在
requirements.txt中明确标注版本号,README.md必须详细说明: - 团队成员与分工
- 环境配置步骤(含
ma-gym的完整安装命令) - 训练与评估的运行命令示例
- 代码文件结构说明
- 实验结果说明
- 代码必须可直接运行,无编译错误、无路径错误,训练与评估脚本可一键执行,禁止提交无法运行的代码。
- 必须包含训练好的模型权重文件,可直接通过
eval.py脚本复现报告中的实验结果。 - 必须包含所有实验的日志文件与绘图结果,与报告中的图表一一对应。
- 禁止提交虚拟环境、缓存文件等冗余内容,压缩包大小不得超过500MB。
4.2 实验报告提交要求¶
实验报告必须为PDF格式,格式对标AI顶会Short Paper规范,推荐使用双栏排版,总页数6-8页(不含参考文献),必须包含以下完整章节,禁止缺项:
实验报告章节安排¶
- 任务陈述:所选任务的背景与研究意义、任务的MDP/POMDP数学建模(状态空间、动作空间、奖励函数、状态转移)、任务的核心难点与挑战。
- 算法介绍:所选算法的核心理论原理、数学公式、网络结构、CTDE范式实现逻辑、针对所选任务的定制化修改与优化。
- 实现细节:实验环境与硬件配置、详细的超参数设置表格、训练流程与算法实现的核心细节、调试过程中的关键问题与解决方案。
- 性能评估:每个算法在对应任务上的定量实验结果(表格形式)、训练过程的学习曲线与可视化图表、算法的收敛性、稳定性、样本效率分析。
- 算法性能对比:所选算法在所有任务上的横向性能对比(表格+可视化)、不同算法的优劣性分析、结合任务特性解释性能差异的核心原因、算法的局限性与适用场景分析。
- 实验总结与展望:本次课程项目的核心收获、实验结果的核心结论、针对所选算法与任务的未来改进方向。
- 参考文献:所有引用的算法论文、技术文档、开源项目必须规范标注,推荐使用BibTeX格式。
报告格式要求¶
- 遵循实验报告模板,正文使用宋体/Times New Roman,小四号字体,1.5倍行距,双栏排版优先。
- 所有图表必须有清晰的编号、标题、图例,坐标轴必须标注清晰的物理量与单位,图表必须在正文中引用与分析。
- 严格遵守学术诚信,所有引用内容必须标注参考文献,一旦发现抄袭,作业按0分处理。
评分标准(总分100分)¶
| 评分项 | 分值 | 评分细则 |
|---|---|---|
| 代码实现 | 30分 | 1. 算法实现完整、正确,符合设计规范(15分) 2. 代码结构规范、可读性强、可复现性好(10分) 3. 代码可一键运行,注释完整,文档清晰(5分) |
| 实验报告 | 50分 | 1. 任务与算法介绍完整、准确,理论理解正确(10分) 2. 实验设计严谨,对照实验规范,结果可复现(15分) 3. 评估指标完整,结果分析深入,对比逻辑清晰(15分) 4. 报告结构完整,格式规范,图表清晰,结论合理(10分) |
| 创新性与拓展性 | 20分 | 1. 多选任务、实现更多算法(5分) 2. 完成消融实验,分析深入(5分) 3. 提出算法改进变体,性能有显著提升(5分) 4. 完成行为可视化与可解释性分析(5分) |
注意事项¶
- PPT展示环节需要展示智能体互动DEMO,类似MA-GYM首页的小动画。
- 鼓励团队内分工协作,但所有团队成员必须参与核心工作,提交时需在
README.md中明确标注每个成员的分工,禁止搭便车。 - 禁止直接复制开源算法库的代码,核心算法逻辑必须独立实现,引用开源代码必须在报告与代码中明确标注。
- 严格遵守学术诚信要求,抄袭、代码盗用行为将直接按0分处理,并上报课程组。
如有疑问,联系助教符宇辰:554872480@qq.com。