Files
rl-atari/外教课/课程作业实现方案分析.md
T
Serendipity ceddbdd559 Add lecture materials for Model-Free, Control, and Value topics
- Added Lecture4 - ModelFree.pdf (3013 KB)
- Added Lecture5 - Control.pdf (2575 KB)
- Added Lecture6 - Value.pdf (3320 KB)
2026-04-28 20:28:00 +08:00

171 lines
5.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 课程作业实现方案分析
## 📚 三项作业任务概览
---
### 🔴 任务一:强化学习个人项目报告(Atari 游戏方向)
**核心任务**
- 自选一个 Atari 游戏,从零实现并训练深度强化学习算法,达到有竞争力的表现
- 提交不超过 3000 词的技术报告 + 源代码和训练模型的 zip 文件
**推荐游戏选择**Space Invaders 或 Breakout(相对简单,benchmark 充分)
**技术栈**
- PyTorch 深度学习框架
- Gymnasium(旧版 ALE Atari 环境
- NumPy 进行数据处理
**核心算法选择建议**
| 算法 | 优点 | 缺点 |
|------|------|------|
| DQN | 经典稳定,实现相对简单 | 训练慢,需要大量样本 |
| Double DQN | 解决 Q 值过估计问题 | 实现稍复杂 |
| Dueling DQN | 收敛更快 | 实现复杂度中等 |
**实现步骤**
1. 环境搭建 + 预处理(帧堆叠、灰度化、resize)
2. 实现 Replay Buffer
3. 实现 Q-NetworkCNN 结构)
4. 实现 DQN 训练循环
5. 超参数调优 + 训练监控
6. 对比 Stable-Baselines3 基线
**报告要求**
1. 说明所选游戏及其挑战
2. 调研深度强化学习在 Atari 游戏中的应用现状
3. 对比不同算法,解释最终选择
4. 详细介绍算法原理与具体实现
5. 评估智能体表现
6. 分析算法在该游戏上表现好坏的原因
7. 用图表展示实验结果
**预计工作量**:⭐⭐⭐⭐⭐(最高,约 40% 精力)
---
### 🟡 任务二:PPO + CarRacing-v3
**核心任务**
- 用 Python 从零实现 PPOProximal Policy Optimization)算法
- 让智能体在 CarRacing-v3 环境中完成赛车任务
- 提交不超过 3000 词的技术报告 + 源代码和模型的 zip 文件
**技术栈**
- PyTorch
- GymnasiumCarRacing-v3 环境)
- TensorBoard 用于训练可视化
**PPO 核心组件**
```
1. 策略网络:CNN → 全连接层 → μ, σ(连续动作输出)
2. 价值网络:CNN → 全连接层 → V(s)
3. GAEGeneralized Advantage Estimation)计算优势
4. PPO-Clip 目标函数:L^CLIP(θ) = E[min(r(θ)·A, clip(r(θ), 1-ε, 1+ε)·A)]
5. 熵正则化 + 价值函数损失
```
**实现细节**
- 状态空间:96×96×3 RGB 图像
- 动作空间:连续空间(转向、油门、刹车)
- 奖励塑形:保持中心线奖励 + 速度奖励 + 轮胎磨损惩罚
**报告要求**
1. 介绍任务的强化学习背景
2. 定义状态空间、动作空间和奖励机制
3. 解释 PPO 的目标函数、裁剪机制和优势估计方法
4. 说明网络结构、训练流程、超参数设置
5. 记录并说明实现过程中遇到的问题与解决办法
6. 用图表展示训练与测试结果
7. 与 Stable-Baselines3 基线方法做简要对比
**预计工作量**:⭐⭐⭐⭐(较高,约 35% 精力)
---
### 🟢 任务三:健康保险多分类(机器学习)
**核心任务**
- 围绕健康保险数据集,建立并改进多分类模型
- 预测申请人保费风险等级(Low / Standard / High
- 提交 Jupyter Notebook、1200 词左右的 Theory and Reflection PDF、hidden-test CSV
**Jupyter Notebook 步骤**
| 步骤 | 内容 |
|---|---|
| 1 | 数据清洗 + 缺失值处理 |
| 2 | 特征工程 + 识别并删除数据泄露特征 |
| 3 | 基线模型(逻辑回归) |
| 4 | 随机森林 vs XGBoost/LightGBM 对比 |
| 5 | 贝叶斯优化/GridSearchCV 超参数调优 |
| 6 | 个性化改进(根据学号末位决定) |
| 7 | K-Means + GMM 无监督探索 |
| 8 | 最终模型选择 + hidden-test 预测 |
**PDF 报告主题**
1. Bagging vs Boosting 对比
2. 超参数优化方法讨论
3. K-Means vs GMM 对比
4. 个性化改进反思
5. AI 使用声明
**预计工作量**:⭐⭐⭐(中等,约 25% 精力)
---
## ⏰ 时间规划建议
| 周次 | 任务分配 | 备注 |
|------|----------|------|
| **Week 1-2** | 任务三(机器学习) | 时间最充裕,可提前完成 |
| **Week 3-4** | 任务二(PPO) | 核心算法,需要充分调优 |
| **Week 5-7** | 任务一(Atari) | 训练耗时最长,尽早开始 |
| **最后1周** | 整体检查、报告撰写、格式调整 | 预留缓冲时间 |
---
## ⚠️ 关键注意事项
1. **任务一和任务二**禁止使用 Stable-Baselines 等强化学习专用库实现核心算法
2. **任务三**的个性化改进需根据学号末位决定
3. 所有任务都需按指定格式命名并提交 **PDF + Zip(代码+模型)**
4. 任务一可使用 Stable-Baselines3 作为 benchmark 对比
---
## 📝 文档语言要求(外教课特别说明)
⚠️ **重要提醒**:这是**外教课**作业,所有提交的 **PDF 文档必须使用英文** 撰写,包括:
- 技术报告(Technical Report
- Theory and Reflection PDF
- 代码注释(Code Comments
建议:
- 使用英文撰写报告正文
- 图表标题和图例使用英文
- 代码中变量命名和注释使用英文
- 可保留中文的仅为个人笔记/思考过程(无需提交)
---
## ❓ 待确认事项
- **学号末位**是多少?(用于确定任务三的个性化改进方向)
- 是否有偏好选择的 Atari 游戏?