这是一个完整的 10 阶段强化学习学习工程,涵盖从 Python 数值计算工具到高级 RL 算法对比的全流程。每个阶段都包含详细讲义、可运行示例代码和交互式 Jupyter Notebook。
通过本项目,您将掌握:
- ✅ NumPy 高效数值计算
- ✅ PyTorch 深度学习框架
- ✅ Gymnasium 环境开发与使用
- ✅ Stable-Baselines3 训练 RL 智能体
- ✅ 实验追踪与可视化(TensorBoard)
- ✅ 完整的端到端 RL 项目开发能力
- 📚 完整性: 从基础工具到高级应用,覆盖 RL 全流程
- 💻 实用性: 所有代码可直接运行,注释清晰
- 🎓 教学性: 详细讲义(3,200+ 行)+ 交互式 Notebook
- 📈 渐进性: 循序渐进,每个 Phase 独立可学
- 🔬 现代性: 使用最新库和最佳实践
| 指标 | 数量 |
|---|---|
| 学习阶段 | 10 个 Phase |
| 代码文件 | 10 个示例程序(1,385 行) |
| 讲义文档 | 10 个讲义(3,239 行) |
| Notebook | 10 个交互式教程 |
| 总文件数 | 43 个 |
baseRL2/
├── PROJECT_OUTLINE.md # 📋 总学习大纲
├── README.md # 📖 本文件
│
├── Phase_1_NumPy_Basics/ # 🔢 NumPy 基础与矩阵计算
│ ├── lecture.md # 讲义:数组操作、向量化、广播
│ ├── demo.py # 示例:RL 中的数值计算
│ ├── notebook.ipynb # 交互式教程
│ └── requirements.txt # 依赖配置
│
├── Phase_2_PyTorch_Tensors_Autograd/ # 🧮 PyTorch 张量与自动微分
│ ├── lecture.md # 讲义:Tensor、Autograd、线性回归
│ ├── demo.py # 示例:自动微分与价值网络
│ ├── notebook.ipynb # 交互式教程
│ └── requirements.txt
│
├── Phase_3_PyTorch_Neural_Networks/ # 🧠 PyTorch 神经网络构建
│ ├── lecture.md # 讲义:MLP、激活函数、优化器
│ ├── demo.py # 示例:分类任务训练
│ ├── notebook.ipynb # 交互式教程
│ └── requirements.txt
│
├── Phase_4_RL_Basics_Gymnasium/ # 🎮 RL 基础理论 + Gymnasium
│ ├── lecture.md # 讲义:MDP、Policy、Value、CartPole
│ ├── demo.py # 示例:环境交互与随机策略
│ ├── notebook.ipynb # 交互式教程
│ └── requirements.txt
│
├── Phase_5_Custom_Gymnasium_Environment/ # 🛠️ 自定义 Gymnasium 环境
│ ├── lecture.md # 讲义:Env 继承、奖励设计
│ ├── demo.py # 示例:数值调节环境、网格世界
│ ├── notebook.ipynb # 交互式教程
│ └── requirements.txt
│
├── Phase_6_Stable_Baselines3_Basics/ # 🤖 Stable-Baselines3 基础
│ ├── lecture.md # 讲义:PPO、DQN、SAC 算法
│ ├── demo.py # 示例:训练与评估智能体
│ ├── notebook.ipynb # 交互式教程
│ └── requirements.txt
│
├── Phase_7_Training_on_Custom_Env/ # 🎯 在自定义环境上训练
│ ├── lecture.md # 讲义:奖励塑形、网络架构调整
│ ├── demo.py # 示例:自定义环境训练
│ ├── notebook.ipynb # 交互式教程
│ └── requirements.txt
│
├── Phase_8_Experiment_Tracking_Visualization/ # 📊 实验追踪与可视化
│ ├── lecture.md # 讲义:TensorBoard、回调函数
│ ├── demo.py # 示例:训练监控
│ ├── notebook.ipynb # 交互式教程
│ └── requirements.txt
│
├── Phase_9_Complete_RL_Project/ # 🏗️ 完整 RL 项目
│ ├── lecture.md # 讲义:项目结构、配置管理
│ ├── demo.py # 示例:端到端 RL 项目
│ ├── notebook.ipynb # 交互式教程
│ └── requirements.txt
│
└── Phase_10_Algorithm_Comparison_Ablation/ # 🔬 算法对比与消融实验
├── lecture.md # 讲义:算法工厂、批量实验
├── demo.py # 示例:多算法性能对比
├── notebook.ipynb # 交互式教程
└── requirements.txt
- Python: 3.12 或更高版本
- 操作系统: Windows / macOS / Linux
- 硬件: CPU 即可(Phase 9-10 建议有 GPU)
- 克隆仓库
git clone https://github.com/YOUR_USERNAME/baseRL2.git
cd baseRL2- 创建虚拟环境(推荐)
# 使用 venv
python -m venv rl_env
source rl_env/bin/activate # Linux/Mac
# 或
rl_env\Scripts\activate # Windows
# 或使用 conda
conda create -n rl_env python=3.12
conda activate rl_env- 开始学习 Phase 1
cd Phase_1_NumPy_Basics
pip install -r requirements.txt
python demo.py- 打开 Jupyter Notebook
jupyter notebook notebook.ipynb适合:RL 初学者,时间充裕
- Week 1: Phase 1-3(Python 工具基础)
- Week 2: Phase 4-5(RL 基础与环境开发)
- Week 3: Phase 6-8(算法训练与监控)
- Week 4: Phase 9-10(综合项目与算法对比)
每个 Phase 的学习流程:
- 📖 阅读
lecture.md- 理解理论与概念 - 💻 运行
demo.py- 观察完整示例 - 📓 学习
notebook.ipynb- 交互式实验 - 🔨 动手修改 - 调整参数、扩展功能
- ✍️ 完成练习 - 讲义中的练习题
适合:有 Python/ML 基础
- 快速浏览 Phase 1-3
- 重点学习 Phase 4-10
- 每个 Phase 1-2 天
适合:研究生、研究人员
- 深入每个 Phase
- 完成所有练习
- 扩展示例代码
- 阅读引用论文
学习内容:
- 数组创建、索引、切片
- 向量化编程与性能对比
- 广播机制
- RL 中的数值计算应用
核心代码:
# 计算折扣累计奖励
rewards = np.array([1.0, 1.0, 1.0, 1.0, 0.0])
gamma = 0.99
returns = np.zeros_like(rewards)
returns[-1] = rewards[-1]
for t in range(len(rewards) - 2, -1, -1):
returns[t] = rewards[t] + gamma * returns[t + 1]学习内容:
- Tensor 基础操作
- Autograd 自动微分
- 简单线性回归
- 价值网络实现
核心代码:
x = torch.tensor(2.0, requires_grad=True)
y = x ** 2 + 3 * x + 1
y.backward() # 自动计算梯度
print(x.grad) # dy/dx = 7学习内容:
- MLP 架构构建
- 激活函数、损失函数、优化器
- 完整训练循环
- 策略网络与价值网络
学习内容:
- MDP 理论
- State、Action、Reward、Policy
- Gymnasium API
- CartPole 环境详解
学习内容:
- 继承
gym.Env - 实现
step()和reset() - 观察空间与动作空间定义
- 奖励函数设计
学习内容:
- PPO、DQN、SAC 算法
- 模型训练与评估
- 模型保存与加载
- 超参数调优
学习内容:
- SB3 与自定义环境集成
- 奖励塑形技巧
- 策略网络架构修改
- 训练稳定性分析
学习内容:
- TensorBoard 使用
- 训练曲线记录
- 算法对比可视化
- 实验管理最佳实践
学习内容:
- 项目结构设计
- 配置文件管理(YAML)
- 统一训练脚本
- 端到端工作流
学习内容:
- 算法工厂模式
- 批量实验运行
- 消融实验设计
- 性能分析与报告
| 工具 | 版本 | 用途 |
|---|---|---|
| Python | 3.12+ | 编程语言 |
| NumPy | 1.26+ | 数值计算 |
| PyTorch | 2.1+ | 深度学习框架 |
| Gymnasium | 0.29+ | RL 环境接口 |
| Stable-Baselines3 | 2.2+ | RL 算法库 |
| TensorBoard | 2.15+ | 实验可视化 |
| Matplotlib | 3.8+ | 绘图 |
| Jupyter | 1.0+ | 交互式开发 |
Q1: 需要 GPU 吗?
A: Phase 1-8 使用 CPU 完全足够。Phase 9-10 如果有 GPU 会更快,但不是必须的。
Q2: 我有 Python 基础,可以跳过前几个 Phase 吗?
A: 可以。如果熟悉 NumPy 和 PyTorch,可以直接从 Phase 4 开始。但建议至少浏览一遍前面的讲义,确保没有知识盲点。
Q3: 依赖安装失败怎么办?
A:
- 确保使用 Python 3.12+
- 尝试使用虚拟环境
- 如果是网络问题,可以使用国内镜像源:
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
Q4: 学完后能达到什么水平?
A: 完成全部 10 个 Phase 后,您将能够:
- 独立开发自定义 RL 环境
- 使用主流算法训练智能体
- 进行实验管理和算法对比
- 构建完整的端到端 RL 项目
Q5: 项目会持续更新吗?
A: 会的!我们计划:
- 添加更多高级主题(Multi-Agent、Meta-RL 等)
- 更新到最新的库版本
- 增加更多实战案例
- Reinforcement Learning: An Introduction - Sutton & Barto(RL 圣经)
- Deep Learning - Goodfellow, Bengio, Courville
- Hands-On Reinforcement Learning with Python - Sudharsan Ravichandiran
- Reddit: r/reinforcementlearning
- GitHub: Stable-Baselines3
- Discord: Deep RL 社区
欢迎贡献!如果您想改进本项目:
- Fork 本仓库
- 创建特性分支 (
git checkout -b feature/AmazingFeature) - 提交更改 (
git commit -m 'Add some AmazingFeature') - 推送到分支 (
git push origin feature/AmazingFeature) - 开启 Pull Request
- 🐛 报告 Bug
- 💡 提出新功能建议
- 📝 改进文档
- ✨ 贡献代码示例
- 🌍 翻译成其他语言
本项目采用 MIT License 开源协议。
您可以自由地:
- ✅ 使用本项目进行学习
- ✅ 修改代码
- ✅ 用于商业项目
- ✅ 分享给他人
唯一要求:保留原作者版权声明。
本项目受到以下优秀项目的启发:
感谢所有贡献者和使用者的支持!⭐
- Issues: GitHub Issues
- Discussions: GitHub Discussions
- Email: your.email@example.com
如果本项目对您有帮助,请给一个 ⭐ Star!
Made with ❤️ for the RL community