RL-Study

强化学习算法实现与学习笔记,基于赵世钰老师《Mathematical Foundations of Reinforcement Learning》。

项目结构

RL-Study/
├── Lecture slides/           # 课程幻灯片
│   ├── slidesForMyLectureVideos/  # 配套视频课件
│   └── slidesContinuouslyUpdated/ # 持续更新的课件
├── Notebooks/               # Jupyter 学习笔记
│   ├── C1.ipynb ~ C10.ipynb  # 各章节推导与实验
│   ├── SAC.ipynb            # SAC (Soft Actor-Critic) 算法
│   └── *_training_results.png  # 训练结果可视化
├── RawBook/                 # 原书资源
├── RL_Algothrithms/         # 核心算法实现
│   ├── agents/              # 智能体实现
│   │   ├── a2c.py           # A2C (Advantage Actor-Critic)
│   │   ├── qac.py           # QAC (Q-Value Actor-Critic)
│   │   ├── off_pac.py       # Off-PAC (Off-Policy Actor-Critic)
│   │   ├── ddpg.py          # DDPG (Deep Deterministic Policy Gradient)
│   │   └── dpac.py          # DPAC (Deterministic Policy Actor-Critic)
│   ├── networks.py          # 离散动作空间网络 (Actor, QCritic, VCritic)
│   ├── networks_cont.py     # 连续动作空间网络 (ContActor, ContQCritic)
│   ├── utils.py             # 工具函数
│   ├── main.py              # 离散动作空间训练入口 (CartPole-v1)
│   ├── disp_main.py         # 离散动作空间多算法对比
│   └── cont_main.py         # 连续动作空间训练入口 (Pendulum-v1)
└── TRPO/                    # TRPO (Trust Region Policy Optimization) 独立实现
    ├── models.py            # ActorNet (高斯策略), CriticNet (值函数)
    ├── utils.py             # RolloutBuffer, GAE, 共轭梯度, FVP
    ├── agent.py             # TRPO 智能体
    └── main.py              # TRPO 训练入口 (Pendulum-v1)

已实现算法

离散动作空间(CartPole-v1

算法 文件 说明
A2C agents/a2c.py Advantage Actor-Critic,同步版本,V-critic,带熵正则化
QAC agents/qac.py Q-Value Actor-CriticOn-policy SARSA 风格,支持 GPU
Off-PAC agents/off_pac.py Off-Policy Actor-Critic,带重要性采样,epsilon 探索

连续动作空间(Pendulum-v1

算法 文件 说明
DDPG agents/ddpg.py Deep Deterministic Policy Gradient,离策略,带目标网络和软更新
DPAC agents/dpac.py Deterministic Policy Actor-Critic,在策略
TRPO agent.py Trust Region Policy Optimization,共轭梯度法 + 线搜索 + GAE

环境配置

pip install torch numpy matplotlib gymnasium

快速开始

离散动作空间(CartPole-v1

cd RL_Algothrithms
python main.py --agent a2c    # 训练 A2C
python main.py --agent qac     # 训练 QAC
python disp_main.py           # 多算法对比训练

连续动作空间(Pendulum-v1

cd RL_Algothrithms
python cont_main.py           # 训练 DDPG 和 DPAC

TRPO

cd TRPO
python main.py                # 训练 TRPO

关于原书

License

MIT License(代码部分)

S
Description
用于学习RL的相关知识,参考书目《强化学习的数学方法》
Readme MIT
57 MiB
Languages
Jupyter Notebook 96.2%
Python 3.8%