Skip to content

一个完整的、渐进式的强化学习学习项目,从基础到高级,帮助您系统掌握深度强化学习。

License

Notifications You must be signed in to change notification settings

cht11/RL-Reinforcement-Learning-Course

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🚀 强化学习系统学习项目 (Reinforcement Learning Course)

Python Version License Status

一个完整的、渐进式的强化学习学习项目,从基础到高级,帮助您系统掌握深度强化学习。

快速开始学习路径项目结构文档


📖 项目简介

这是一个完整的 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)

安装步骤

  1. 克隆仓库
git clone https://github.com/YOUR_USERNAME/baseRL2.git
cd baseRL2
  1. 创建虚拟环境(推荐)
# 使用 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
  1. 开始学习 Phase 1
cd Phase_1_NumPy_Basics
pip install -r requirements.txt
python demo.py
  1. 打开 Jupyter Notebook
jupyter notebook notebook.ipynb

📚 学习路径

🎯 路径 1:完整系统学习(推荐)

适合:RL 初学者,时间充裕

  • Week 1: Phase 1-3(Python 工具基础)
  • Week 2: Phase 4-5(RL 基础与环境开发)
  • Week 3: Phase 6-8(算法训练与监控)
  • Week 4: Phase 9-10(综合项目与算法对比)

每个 Phase 的学习流程

  1. 📖 阅读 lecture.md - 理解理论与概念
  2. 💻 运行 demo.py - 观察完整示例
  3. 📓 学习 notebook.ipynb - 交互式实验
  4. 🔨 动手修改 - 调整参数、扩展功能
  5. ✍️ 完成练习 - 讲义中的练习题

🚀 路径 2:快速上手(1-2周)

适合:有 Python/ML 基础

  • 快速浏览 Phase 1-3
  • 重点学习 Phase 4-10
  • 每个 Phase 1-2 天

🔬 路径 3:研究导向

适合:研究生、研究人员

  • 深入每个 Phase
  • 完成所有练习
  • 扩展示例代码
  • 阅读引用论文

📖 详细内容

Phase 1: NumPy 基础与矩阵计算

学习内容

  • 数组创建、索引、切片
  • 向量化编程与性能对比
  • 广播机制
  • 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]

Phase 2: PyTorch 张量与自动微分

学习内容

  • Tensor 基础操作
  • Autograd 自动微分
  • 简单线性回归
  • 价值网络实现

核心代码

x = torch.tensor(2.0, requires_grad=True)
y = x ** 2 + 3 * x + 1
y.backward()  # 自动计算梯度
print(x.grad)  # dy/dx = 7

Phase 3: PyTorch 神经网络

学习内容

  • MLP 架构构建
  • 激活函数、损失函数、优化器
  • 完整训练循环
  • 策略网络与价值网络

Phase 4: RL 基础理论 + Gymnasium

学习内容

  • MDP 理论
  • State、Action、Reward、Policy
  • Gymnasium API
  • CartPole 环境详解

Phase 5: 自定义 Gymnasium 环境

学习内容

  • 继承 gym.Env
  • 实现 step()reset()
  • 观察空间与动作空间定义
  • 奖励函数设计

Phase 6: Stable-Baselines3 基础

学习内容

  • PPO、DQN、SAC 算法
  • 模型训练与评估
  • 模型保存与加载
  • 超参数调优

Phase 7: 在自定义环境上训练

学习内容

  • SB3 与自定义环境集成
  • 奖励塑形技巧
  • 策略网络架构修改
  • 训练稳定性分析

Phase 8: 实验追踪与可视化

学习内容

  • TensorBoard 使用
  • 训练曲线记录
  • 算法对比可视化
  • 实验管理最佳实践

Phase 9: 完整 RL 项目

学习内容

  • 项目结构设计
  • 配置文件管理(YAML)
  • 统一训练脚本
  • 端到端工作流

Phase 10: 算法对比与消融实验

学习内容

  • 算法工厂模式
  • 批量实验运行
  • 消融实验设计
  • 性能分析与报告

🛠️ 技术栈

工具 版本 用途
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

🎓 在线课程

🌐 社区


🤝 贡献指南

欢迎贡献!如果您想改进本项目:

  1. Fork 本仓库
  2. 创建特性分支 (git checkout -b feature/AmazingFeature)
  3. 提交更改 (git commit -m 'Add some AmazingFeature')
  4. 推送到分支 (git push origin feature/AmazingFeature)
  5. 开启 Pull Request

贡献方式

  • 🐛 报告 Bug
  • 💡 提出新功能建议
  • 📝 改进文档
  • ✨ 贡献代码示例
  • 🌍 翻译成其他语言

📄 许可证

本项目采用 MIT License 开源协议。

您可以自由地:

  • ✅ 使用本项目进行学习
  • ✅ 修改代码
  • ✅ 用于商业项目
  • ✅ 分享给他人

唯一要求:保留原作者版权声明。


🙏 致谢

本项目受到以下优秀项目的启发:

感谢所有贡献者和使用者的支持!⭐


📞 联系方式


🌟 Star History

如果本项目对您有帮助,请给一个 ⭐ Star!

Star History Chart


Made with ❤️ for the RL community

⬆ 回到顶部

About

一个完整的、渐进式的强化学习学习项目,从基础到高级,帮助您系统掌握深度强化学习。

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published