d353133b31
- 新增强化学习个人项目报告,包含基于PyTorch从零实现的PPO算法 - 重构课程作业报告代码结构,提取运行时路径管理和notebook执行逻辑到独立模块 - 更新依赖文件requirements.txt,添加强化学习相关依赖 - 简化模型比较结果表格,仅保留基线逻辑回归模型数据
4.3 KiB
4.3 KiB
PPO + CarRacing-v3 任务进度追踪
生成时间:2026/04/30
作业要求
用 Python 从零实现 PPO 算法,在 CarRacing-v3 环境训练智能体,提交:
- 技术报告(≤3000 词,英文)PDF
- 源代码 + 训练模型 zip 文件
- 截止:04/May/2026 23:59
- 禁止使用:Stable-Baselines 等 RL 专用库
- 允许使用:TensorBoard、PyTorch、Gymnasium
一、已完成 ✅
| 步骤 | 内容 | 文件 |
|---|---|---|
| ✅ 项目结构 | src/ 目录、requirements.txt、README.md | requirements.txt、README.md |
| ✅ 策略/价值网络 | Actor(高斯策略输出 μ, σ)+ Critic 实现,CNN 结构 | src/network.py |
| ✅ Rollout Buffer | 轨迹存储 + GAE 优势估计 + 返回值计算 | src/replay_buffer.py |
| ✅ PPO Trainer | PPO 更新(clip 目标函数 + 熵正则 + 价值损失) | src/trainer.py |
| ✅ 环境预处理 | 灰度化 + Resize(84×84) + 帧堆叠(4帧) Wrapper | src/utils.py |
| ✅ 评估脚本 | 渲染测试 + 多回合平均分数评估 | src/evaluate.py |
| ✅ 训练入口 | 主训练循环、TensorBoard 记录、模型保存 | train.py |
核心算法实现要点:
- 策略网络:3 层 CNN + FC(512) → μ, σ(高斯策略,tanh 激活)
- 价值网络:3 层 CNN + FC(512) → V(s)
- GAE:λ=0.95,优势归一化
- PPO clip:ε=0.2,4 epoch 更新,mini-batch 64
二、待完成 ⬜
| 步骤 | 内容 | 优先级 |
|---|---|---|
| ⬜ 安装依赖 | uv pip install --system -r requirements.txt |
高 |
| ⬜ 环境测试 | 短时间(~10000步)验证代码能跑通 | 高 |
| ⬜ 完整训练 | 运行 500k+ 步,预计 5-8 小时(后台) | 高(耗时) |
| ⬜ 生成图表 | 从 TensorBoard 提取数据,用 matplotlib 绘图 | 中 |
| ⬜ 撰写报告 | 英文技术报告(≤3000 词),LaTeX 排版 | 中 |
| ⬜ 编译 PDF | XeLaTeX 编译生成 CW1_1234560.pdf | 中 |
| ⬜ 打包 zip | 源代码 + 模型打包 CW1_1234560.zip | 低 |
三、文件结构
强化学习个人项目报告/
├── src/
│ ├── __init__.py
│ ├── network.py # Actor + Critic CNN 网络
│ ├── replay_buffer.py # Rollout buffer + GAE
│ ├── trainer.py # PPO 更新逻辑
│ ├── utils.py # 环境预处理 wrappers
│ └── evaluate.py # 评估脚本
├── train.py # 主训练入口
├── requirements.txt
├── README.md
└── TASK_PROGRESS.md # 本文档
四、超参数配置
| 参数 | 值 |
|---|---|
| Learning rate | 3e-4 |
| Gamma | 0.99 |
| GAE lambda | 0.95 |
| Clip epsilon | 0.2 |
| PPO epochs | 4 |
| Mini-batch size | 64 |
| Rollout steps | 2048 |
| Entropy coefficient | 0.01 |
| Value coefficient | 0.5 |
| Max gradient norm | 0.5 |
| State shape | (84, 84, 4) |
| Action dim | 3(连续:steer, gas, brake) |
五、下一步行动
立即执行
# 1. 安装依赖
uv pip install --system -r requirements.txt
# 2. 验证代码能跑(短测试)
python train.py --steps 10000
# 3. 开始正式训练(后台运行,预计 5-8 小时)
python train.py --steps 500000
训练完成后
# TensorBoard 可视化
tensorboard --logdir logs/tensorboard
# 评估模型
python src/evaluate.py --model models/ppo_carracing_final.pt --episodes 10
报告撰写后
# 编译 PDF
cd tex && xelatex CW1_1234560.tex
六、报告结构(≤3000 词)
- Introduction — RL 背景、CarRacing-v3 任务、状态/动作/奖励空间定义
- Methodology — PPO 数学公式、clip 机制、GAE 优势估计
- Implementation Details — 网络结构、训练流程、超参数、问题与解决
- Results and Analysis — 训练曲线图、评估结果、与 SB3 基线对比
- Conclusion — PPO 敏感性、actor-critic 有效性总结
七、提交清单
CW1_1234560.pdf— 技术报告(封面 + ≤3000 词)CW1_1234560.zip— 源代码 + 训练好的模型 .pt 文件- 所有代码使用英文注释
- 图表坐标轴和图例使用英文