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)
This commit is contained in:
@@ -0,0 +1,5 @@
|
||||
完成一份 强化学习个人课程作业报告:需要用 Python 从零实现一个 PPO(Proximal Policy Optimization)强化学习算法,让智能体在 CarRacing-v3 环境中完成赛车任务,并在此基础上提交一份不超过 3000 词 的技术报告,系统说明你的方法与结果;具体来说,要介绍该任务的强化学习背景,定义状态空间、动作空间和奖励机制,解释 PPO 的目标函数、裁剪机制和优势估计方法,说明策略网络与价值网络结构、训练流程、超参数设置以及实现过程中遇到的问题和解决办法,同时用图表展示训练与测试结果,分析模型表现和变化趋势,并与如 Stable-Baselines3 这类基线方法在稳定性和样本效率上做简要比较;另外,还要提交一个包含全部源代码和训练好模型的 zip 文件,以及一个单独的 PDF 报告,文件命名和提交格式都必须符合要求,而且实现中不能直接使用 Stable-Baselines 等强化学习专用库,但可以合理使用 TensorBoard 记录实验结果。
|
||||
|
||||
这个 PDF 要求完成一份 强化学习个人项目报告:需要自己选择一个 Atari 游戏,实现并训练一个你选定的 深度强化学习算法 来达到有竞争力的表现,然后提交一份不超过 3000 词 的技术报告和一个包含全部源代码及训练模型的 zip 文件;报告中需要说明选择的游戏及其挑战,调研并总结深度强化学习尤其是在 Atari 游戏中的应用现状,比较考虑过的算法并解释为什么最终选择当前方法,详细介绍算法原理与具体实现,评估智能体表现、说明所选基准和评价指标,并分析为什么该算法在这个游戏上表现好或不好,同时用清晰标注坐标轴和图例的图表来展示结果;另外,作业明确要求不能直接用 Stable-Baselines 等强化学习专用库来实现算法,但可以用它们做 benchmark,对代码质量、结果分析、报告结构、图表使用和引用规范都会评分,最终还要按指定格式命名并提交 PDF 和 zip 文件。
|
||||
|
||||
完成一份 机器学习个人课程作业:围绕一个健康保险数据集,建立并改进一个用于预测申请人保费风险等级(Low / Standard / High)的多分类模型。你需要先完成 Jupyter Notebook 部分,包括数据清理与预处理、识别并删除数据泄露特征、建立基线模型、对比随机森林和一种 boosting 模型、使用高级超参数优化方法调参、根据学号末位完成指定的个性化改进并至少再做一个可选改进、再进行一次 K-Means 与 GMM 的无监督探索,最后基于验证结果选出最终模型并导出规定格式的 hidden-test CSV;同时还要提交一份 不超过1200词 左右的 Theory and Reflection PDF,围绕 bagging vs boosting、超参数优化、K-Means vs GMM、个性化改进反思和 AI 使用声明进行理论与实验结合的总结,并且所有结论都要紧扣你自己 notebook 里的表格、图和指标证据,最终按要求提交 notebook、PDF、CSV 以及必要的补充代码。
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 1.0 MiB |
Binary file not shown.
|
After Width: | Height: | Size: 1.0 MiB |
Binary file not shown.
|
After Width: | Height: | Size: 1022 KiB |
@@ -0,0 +1,170 @@
|
||||
# 课程作业实现方案分析
|
||||
|
||||
## 📚 三项作业任务概览
|
||||
|
||||
---
|
||||
|
||||
### 🔴 任务一:强化学习个人项目报告(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-Network(CNN 结构)
|
||||
4. 实现 DQN 训练循环
|
||||
5. 超参数调优 + 训练监控
|
||||
6. 对比 Stable-Baselines3 基线
|
||||
|
||||
**报告要求**:
|
||||
|
||||
1. 说明所选游戏及其挑战
|
||||
2. 调研深度强化学习在 Atari 游戏中的应用现状
|
||||
3. 对比不同算法,解释最终选择
|
||||
4. 详细介绍算法原理与具体实现
|
||||
5. 评估智能体表现
|
||||
6. 分析算法在该游戏上表现好坏的原因
|
||||
7. 用图表展示实验结果
|
||||
|
||||
**预计工作量**:⭐⭐⭐⭐⭐(最高,约 40% 精力)
|
||||
|
||||
---
|
||||
|
||||
### 🟡 任务二:PPO + CarRacing-v3
|
||||
|
||||
**核心任务**:
|
||||
|
||||
- 用 Python 从零实现 PPO(Proximal Policy Optimization)算法
|
||||
- 让智能体在 CarRacing-v3 环境中完成赛车任务
|
||||
- 提交不超过 3000 词的技术报告 + 源代码和模型的 zip 文件
|
||||
|
||||
**技术栈**:
|
||||
|
||||
- PyTorch
|
||||
- Gymnasium(CarRacing-v3 环境)
|
||||
- TensorBoard 用于训练可视化
|
||||
|
||||
**PPO 核心组件**:
|
||||
|
||||
```
|
||||
1. 策略网络:CNN → 全连接层 → μ, σ(连续动作输出)
|
||||
2. 价值网络:CNN → 全连接层 → V(s)
|
||||
3. GAE(Generalized 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 游戏?
|
||||
@@ -0,0 +1,129 @@
|
||||
# 课程作业整合及任务拆解与时间规划清单
|
||||
|
||||
## 📋 课程作业要求整合版
|
||||
|
||||
### 一、强化学习个人项目报告(Atari 游戏方向)
|
||||
|
||||
**核心任务**:
|
||||
|
||||
- 自选一个 Atari 游戏,从零实现并训练一个深度强化学习算法,达到有竞争力的表现
|
||||
|
||||
- 提交一份不超过 3000 词的技术报告 \+ 包含全部源代码、训练模型的 zip 文件
|
||||
|
||||
**报告要求**:
|
||||
|
||||
1. 说明所选游戏及其挑战
|
||||
|
||||
2. 调研并总结深度强化学习在 Atari 游戏中的应用现状
|
||||
|
||||
3. 对比不同算法,解释最终选择当前方法的理由
|
||||
|
||||
4. 详细介绍算法原理与具体实现细节
|
||||
|
||||
5. 评估智能体表现,说明所选基准和评价指标
|
||||
|
||||
6. 分析算法在该游戏上表现好坏的原因
|
||||
|
||||
7. 用标注清晰坐标轴、图例的图表展示实验结果
|
||||
|
||||
**实现限制**:
|
||||
|
||||
- 禁止直接使用 Stable\-Baselines 等强化学习专用库实现算法
|
||||
|
||||
- 可以使用 Stable\-Baselines 等库作为 benchmark 对比
|
||||
|
||||
- 评分维度:代码质量、结果分析、报告结构、图表使用、引用规范
|
||||
|
||||
- 需按指定格式命名并提交 PDF 和 zip 文件
|
||||
|
||||
---
|
||||
|
||||
### 二、强化学习个人课程作业(PPO \+ CarRacing\-v3 方向)
|
||||
|
||||
**核心任务**:
|
||||
|
||||
- 用 Python 从零实现 PPO(Proximal Policy Optimization)算法,让智能体在 CarRacing\-v3 环境中完成赛车任务
|
||||
|
||||
- 提交一份不超过 3000 词的技术报告 \+ 包含全部源代码、训练模型的 zip 文件
|
||||
|
||||
**报告要求**:
|
||||
|
||||
1. 介绍任务的强化学习背景
|
||||
|
||||
2. 定义状态空间、动作空间和奖励机制
|
||||
|
||||
3. 解释 PPO 的目标函数、裁剪机制和优势估计方法
|
||||
|
||||
4. 说明策略网络与价值网络结构、训练流程、超参数设置
|
||||
|
||||
5. 记录并说明实现过程中遇到的问题与解决办法
|
||||
|
||||
6. 用图表展示训练与测试结果,分析模型表现和变化趋势
|
||||
|
||||
7. 与 Stable\-Baselines3 等基线方法,在稳定性和样本效率上做简要对比
|
||||
|
||||
**实现限制**:
|
||||
|
||||
- 禁止直接使用 Stable\-Baselines 等强化学习专用库实现算法
|
||||
|
||||
- 可使用 TensorBoard 记录实验结果
|
||||
|
||||
- 需按指定格式命名并提交 PDF 和 zip 文件
|
||||
|
||||
---
|
||||
|
||||
### 三、机器学习个人课程作业(健康保险多分类方向)
|
||||
|
||||
**核心任务**:
|
||||
|
||||
- 围绕健康保险数据集,建立并改进多分类模型,预测申请人保费风险等级(Low / Standard / High)
|
||||
|
||||
- 提交 Jupyter Notebook、1200 词左右的 Theory and Reflection PDF、hidden\-test CSV 及补充代码
|
||||
|
||||
**Jupyter Notebook 要求**:
|
||||
|
||||
1. 数据清理与预处理
|
||||
|
||||
2. 识别并删除数据泄露特征
|
||||
|
||||
3. 建立基线模型
|
||||
|
||||
4. 对比随机森林和一种 boosting 模型
|
||||
|
||||
5. 使用高级超参数优化方法调参
|
||||
|
||||
6. 根据学号末位完成指定的个性化改进,并额外完成至少一个可选改进
|
||||
|
||||
7. 进行 K\-Means 与 GMM 的无监督探索
|
||||
|
||||
8. 基于验证结果选出最终模型,导出规定格式的 hidden\-test CSV
|
||||
|
||||
**PDF 报告要求**:
|
||||
|
||||
- 围绕以下主题,结合实验数据(表格、图、指标)进行理论与实验结合的总结:
|
||||
|
||||
1. bagging vs boosting 对比
|
||||
|
||||
2. 超参数优化方法
|
||||
|
||||
3. K\-Means vs GMM 对比
|
||||
|
||||
4. 个性化改进反思
|
||||
|
||||
5. AI 使用声明
|
||||
|
||||
---
|
||||
|
||||
## ⚠️ 外教课文档语言要求
|
||||
|
||||
⚠️ **重要提醒**:这是**外教课**作业,所有提交的 **PDF 文档必须使用英文** 撰写,包括:
|
||||
|
||||
- 技术报告(Technical Report)— 英文
|
||||
- Theory and Reflection PDF — 英文
|
||||
- 代码注释(Code Comments)— 英文
|
||||
|
||||
建议:
|
||||
- 使用英文撰写报告正文
|
||||
- 图表标题和图例使用英文
|
||||
- 代码中变量命名和注释使用英文
|
||||
- 可保留中文的仅为个人笔记/思考过程(无需提交)
|
||||
Reference in New Issue
Block a user