决策/规划问题-协同决策
此处提供了一个针对“决策/规划问题-协同决策”的上手示例,示例采用多智能体强化学习算法 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实现。