这是一个基于 PyTorch 实现的连续动作空间 PPO(Proximal Policy Optimization)算法,专门用于多智能体(无人机/无人车)强化学习环境(MPE - Multi-Agent Particle Environment)。
3uav-.mp4
uav10-1.mp4
uav10-2.mp4
- ✅ 连续动作空间的 PPO 算法实现
- ✅ 多智能体环境支持
- ✅ 10 种训练技巧优化
- ✅ TensorBoard 训练可视化
- ✅ 自定义 MPE 环境(多无人机/无人车任务)
- Advantage Normalization - 优势函数归一化
- State Normalization - 状态归一化
- Reward Normalization - 奖励归一化
- Reward Scaling - 奖励缩放
- Policy Entropy - 策略熵正则化
- Learning Rate Decay - 学习率衰减
- Gradient Clip - 梯度裁剪
- Orthogonal Initialization - 正交初始化
- Adam Optimizer Epsilon Parameter - Adam 优化器参数设置
- Tanh Activation Function - Tanh 激活函数
- Python 3.7-3.9,python版本不可以太新
- PyTorch 1.8+
- 其他依赖见
requirements.txt
- 克隆仓库:
git clone https://github.com/yezzzzye/mult_uav_ppo_case.git
cd mult_uav_ppo_case- 安装依赖:
pip install -r requirements.txt直接运行训练脚本:
python train.py可以通过命令行参数自定义训练配置:
python train.py \
--scenario_name simple_spread \
--max_train_steps 7600000 \
--max_episode_steps 50 \
--evaluate_freq 500 \
--save_freq 300 \
--policy_dist Gaussian \
--lr_a 8.8e-4 \
--lr_c 8.8e-4 \
--gamma 0.99--scenario_name: 场景名称(默认:simple_spread)--max_train_steps: 最大训练步数(默认: 7600000)--max_episode_steps: 每个回合最大步数(默认: 50)--policy_dist: 策略分布类型,Gaussian或Beta(默认:Gaussian)--restore: 是否加载已有模型(默认:False)--save_dir: 模型保存目录(默认:./data)--model_dir: 模型加载目录
mult_uav_ppo_case/
├── train.py # 主训练脚本
├── ppo_continuous.py # PPO 算法实现
├── normalization.py # 归一化工具
├── replaybuffer.py # 经验回放缓冲区
├── demo # case演示
├── mpe/ # 多智能体环境
│ ├── MPE_env.py # MPE 环境封装
│ ├── environment.py # 多智能体环境基类
│ └── scenarios/ # 场景定义
└── requirements.txt # 依赖包列表
训练过程中的日志会保存在 TensorBoard 中,可以通过以下命令查看:
tensorboard --logdir=./data/train欢迎提交 Issue 和 Pull Request!
- 原始 PPO 论文: Proximal Policy Optimization Algorithms
- 中文教程: 知乎专栏