跳转至

多智能体强化学习

项目概述

本项目为深度学习实验课程的期末课程项目,面向本科高年级学生,核心目标是帮助学生掌握多智能体强化学习(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 算法设计要求

  1. 算法数量强制要求:必须至少选择2种多智能体强化学习算法完成所选全部任务,其中必须包含1种基线算法(推荐IQL)与1种进阶CTDE算法(推荐VDN/MADDPG),实现更多算法可获得加分。
  2. 算法分析要求:必须在报告中详细陈述所选算法的:
  3. 核心理论原理与数学公式
  4. 针对所选任务的核心优势与场景适配性
  5. 相比其他算法的改进点与局限性
  6. 针对任务特性做的定制化修改(如状态空间预处理、奖励函数重塑、网络结构调整等)
  7. 创新性要求:鼓励学生在现有算法基础上提出改进变体(如针对部分可观测加入循环神经网络、针对样本效率优化经验回放机制等),可获得创新加分。

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/

代码编写强制要求

  1. 可复现性:必须固定所有随机种子(环境、Python、numpy、深度学习框架),支持通过命令行参数指定种子,保证实验结果可复现。
  2. 模块化设计:算法、环境、训练、评估、工具函数必须分模块实现,禁止单文件全量代码;禁止硬编码超参数,所有超参数必须支持通过配置文件或命令行参数修改。
  3. 注释规范:核心算法逻辑、网络结构、关键函数必须添加清晰注释,说明函数功能、输入输出、核心逻辑。
  4. 环境适配:严格遵循ma-gym官方安装与环境配置要求,保证代码可在标准ma-gym环境中正常运行,禁止修改ma-gym库核心源码。
  5. 日志与可视化:必须实现训练过程的日志记录(TensorBoard或txt日志),支持训练曲线的实时绘制与保存。

3. 实验要求

3.1 实验平台要求

  • 基础运行环境:Python 3.7 ~ 3.9(适配ma-gym依赖),pip<24.1setuptools<=66wheel<=0.38.4,严格遵循ma-gym官方安装规范。
  • 深度学习框架:PyTorch 1.10+ 或 TensorFlow 2.8+
  • 硬件要求:CPU可完成全部实验,推荐使用NVIDIA GPU(4GB以上显存)加速训练,无强制硬件要求。
  • 禁用项:禁止直接调用Stable-Baselines3、PyMARL等成熟MARL算法库的现成算法接口,核心算法逻辑必须由学生独立实现。

3.2 实验评估指标

学生必须针对所选任务,完成通用核心指标任务专属指标的评估,所有指标必须完成多随机种子的统计验证,报告均值与标准差。

通用核心评估指标(所有任务必须报告)

  1. 回合累计奖励(Episodic Return):每个回合所有智能体获得的奖励之和,是MARL算法性能的核心指标,需绘制训练过程中回合累计奖励的学习曲线(横轴为训练回合/环境交互步数,纵轴为奖励均值,阴影为标准差)。
  2. 收敛速度:算法达到稳定收敛阈值所需的训练回合数/环境交互步数,用于评估算法的样本效率。
  3. 任务完成率:测试集回合中,成功完成任务的回合占比,需在训练完成后,用固定模型权重跑至少100个测试回合统计。
  4. 策略稳定性:算法收敛后,测试回合奖励的标准差,用于评估策略的鲁棒性。

任务专属评估指标(对应任务必须报告)

  1. Switch系列任务:平均任务完成步数、智能体碰撞率、路径规划效率。
  2. TrafficJunction系列任务:车辆碰撞率、平均通行时间、路口通行吞吐量。
  3. PredatorPrey系列任务:猎物平均捕获步数、捕食者协同包围成功率、猎物逃逸率。

3.4 实验设计要求

  1. 对照实验公平性:所有对比算法必须在完全相同的环境配置、超参数、训练步数、随机种子设置下完成训练,保证对比的公平性。
  2. 重复实验要求:每个算法的每个实验,必须至少使用5个不同的随机种子完成独立训练与测试,报告所有结果的均值与标准差,禁止仅报告单次最优结果。
  3. 消融实验(可选,加分):针对核心超参数、算法核心模块开展消融实验,分析其对算法性能的影响。

4. 提交规范

本次课程项目需提交代码压缩包实验报告 PDF 文件两个部分,提交时间参考课程网页,严禁逾期提交。

4.1 代码文件提交要求

  1. 代码遵循2.2节的结构规范,所有依赖必须在requirements.txt中明确标注版本号,README.md必须详细说明:
  2. 团队成员与分工
  3. 环境配置步骤(含ma-gym的完整安装命令)
  4. 训练与评估的运行命令示例
  5. 代码文件结构说明
  6. 实验结果说明
  7. 代码必须可直接运行,无编译错误、无路径错误,训练与评估脚本可一键执行,禁止提交无法运行的代码。
  8. 必须包含训练好的模型权重文件,可直接通过eval.py脚本复现报告中的实验结果。
  9. 必须包含所有实验的日志文件与绘图结果,与报告中的图表一一对应。
  10. 禁止提交虚拟环境、缓存文件等冗余内容,压缩包大小不得超过500MB。

4.2 实验报告提交要求

实验报告必须为PDF格式,格式对标AI顶会Short Paper规范,推荐使用双栏排版,总页数6-8页(不含参考文献),必须包含以下完整章节,禁止缺项:

实验报告章节安排

  1. 任务陈述:所选任务的背景与研究意义、任务的MDP/POMDP数学建模(状态空间、动作空间、奖励函数、状态转移)、任务的核心难点与挑战。
  2. 算法介绍:所选算法的核心理论原理、数学公式、网络结构、CTDE范式实现逻辑、针对所选任务的定制化修改与优化。
  3. 实现细节:实验环境与硬件配置、详细的超参数设置表格、训练流程与算法实现的核心细节、调试过程中的关键问题与解决方案。
  4. 性能评估:每个算法在对应任务上的定量实验结果(表格形式)、训练过程的学习曲线与可视化图表、算法的收敛性、稳定性、样本效率分析。
  5. 算法性能对比:所选算法在所有任务上的横向性能对比(表格+可视化)、不同算法的优劣性分析、结合任务特性解释性能差异的核心原因、算法的局限性与适用场景分析。
  6. 实验总结与展望:本次课程项目的核心收获、实验结果的核心结论、针对所选算法与任务的未来改进方向。
  7. 参考文献:所有引用的算法论文、技术文档、开源项目必须规范标注,推荐使用BibTeX格式。

报告格式要求

  1. 遵循实验报告模板,正文使用宋体/Times New Roman,小四号字体,1.5倍行距,双栏排版优先。
  2. 所有图表必须有清晰的编号、标题、图例,坐标轴必须标注清晰的物理量与单位,图表必须在正文中引用与分析。
  3. 严格遵守学术诚信,所有引用内容必须标注参考文献,一旦发现抄袭,作业按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分)

注意事项

  1. PPT展示环节需要展示智能体互动DEMO,类似MA-GYM首页的小动画。
  2. 鼓励团队内分工协作,但所有团队成员必须参与核心工作,提交时需在README.md中明确标注每个成员的分工,禁止搭便车。
  3. 禁止直接复制开源算法库的代码,核心算法逻辑必须独立实现,引用开源代码必须在报告与代码中明确标注。
  4. 严格遵守学术诚信要求,抄袭、代码盗用行为将直接按0分处理,并上报课程组。

如有疑问,联系助教符宇辰:554872480@qq.com