决策/规划问题-协同决策

此处提供了一个针对“决策/规划问题-协同决策”的上手示例,示例采用多智能体强化学习算法 MAPPO 实现多辆车的协同决策,以安全高效的通过交叉口。项目已上传至:https://github.com/TOPSlearningcenter/MAPPO_onsite

以下给出了模型介绍,点击右侧在线运行代码

模型介绍

1. 模型概述:

MAPPO是一种多智能体强化学习算法,用于解决多智能体环境中的协作与竞争问题。论文《The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games》(https://arxiv.org/pdf/2103.01955)对MAPPO算法进行了很好的描述与总结。MAPPO是PPO(Proximal Policy Optimization)算法在多智能体上的扩展,继承了MAPPO的Actor-Critic结构,同时融合了多智能体强化学习的集中式或分散式结构。

2. 模型架构:

本研究中涉及多辆受控车辆,agent存在协作而非竞争关系,因此采用集中式结构,所有agent使用同参数的Actor网络,但具有不同的观察。全局使用一个Critic。

  • Actor是一个策略网络(Policy Network):负责根据当前状态生成动作。本模型中,Actor采用MLP,输入一个车辆的观察,输出一个车辆的动作的概率分布。所有agent共享同一组参数,即所有agent使用相同的策略网络生成动作。这种方法适用于对称任务(Symmetric Tasks),即所有agent的角色和目标完全相同。
  • Critic是一个价值网络(Value Network):负责评估当前策略的好坏。本模型中,Critic采用MLP与多头自注意力机制,输入全局状态,输出对全局状态的评价,表示在当前状态下遵循当前策略所能获得的预期累计奖励。在MAPPO中,Critic提供了一个基准(Baseline),用于衡量Actor的策略改进是否有效。
  • MultiHead-Attention多头自注意力机制:全局观察为所有车辆状态信息叠成,注意力机制具有置换不变性,即不受全局观察中车辆先后顺序影响。
  • MAPPO的计算过程遵循了PPO的计算过程,只是对观察空间进行了改变。

3. 具体实现:

  • 环境定义:依托highway_env环境,设置多agent情形。
  • 模型定义:定义了包括Actor、Critic、MAPPO在内的类。
  • 训练:项目的主要内容,包括初始化环境、在每一个回合使用Actor计算动作、收集回合数据、进行网络更新等操作。
  • 评估:训练过程中每隔若干回合进行一次评估,计算若干回合的平均奖励作为评估结果,同时绘制评估结果变化曲线。
  • 可视化:车辆运行结果可视化通过调整render_mode实现。