

RL 学习笔记(1):强化学习到底在学什么
从“监督学习不适用”讲起,梳理强化学习的输入输出、探索与利用、状态与观测,以及 value-based / policy-based / actor-critic 的基本分工。
前言#
我一直想把强化学习的“概念—算法—工程直觉”串成一条能照着走的路线,而不是东一榔头西一棒子,今天看 DQN,明天又被 PPO 劝退。
所以这次我把我曾经学习时所记录的笔记与思考整理为按章节拆成 12 篇博客。你可以把它当成一个从入门到进阶的最小闭环。先把概念讲清楚,再把经典算法跑通。
另外,需要说明的是,这个系列的博客是由我的幕布笔记转化而来,如果你更喜欢图文并茂的阅读,你可以去我的幕布空间进行阅读,受限于篇幅的原因,第十二章幕布笔记在这。如果你发现有哪些地方由逻辑错误,可以通过评论告知我,十分感谢!
本系列文章目录(每章一篇)#
- 第 1 章:强化学习基础
- 第 2 章:MDP、MRP 与贝尔曼方程
- 第 3 章:表格型方法
- 第 4 章:策略梯度与 REINFORCE
- 第 5 章:PPO
- 第 6 章:DQN
- 第 7 章:DQN 进阶技巧
- 第 8 章:连续动作下的 Q 方法困境与思路
- 第 9 章:Actor-Critic / A2C
- 第 10 章:稀疏奖励(reward shaping / ICM)
- 第 11 章:模仿学习(BC / DAgger / IRL)
- 第 12 章:深度确定性策略梯度算法(deep deterministic policy gradient,DDPG)
我建议的阅读方式#
- 先读 1~3 章:把闭环与 on-policy/off-policy 的直觉建立起来。
- 再读 4~6 章:理解两条主线(PG/PPO 与 DQN)的差异。
- 最后读 8~12 章:把“连续控制、稀疏奖励、模仿学习”这些更真实的难点补齐。
如果你后续打算把它们落到代码项目里,我也建议按这个顺序做:表格法先跑通 → DQN/PPO 二选一深入 → 再上 actor-critic 连续控制。
开始#
我第一次认真写强化学习代码时,最困惑的不是公式,而是一个很朴素的问题:它到底在学什么?
监督学习里你犯错了,老师会告诉你“正确答案是什么”;强化学习里你犯错了,环境最多给你一个很晚才到的反馈(甚至一句“你很菜”都不说,只给 0 分)。于是很多“在监督学习里理所当然”的假设,在这里都会失效:样本不是独立同分布,奖励还会延迟,训练过程像在黑屋子里摸索。
这一章我会按我自己理解 RL 的顺序,把最基础的概念串起来:为什么 RL 和监督学习不同、状态/观测怎么区分、策略/价值函数/模型分别扮演什么角色,以及三类常见智能体(value-based、policy-based、actor-critic)各自适合什么任务。
强化学习为什么“比监督学习难”#
在文档里有一句话我很认同:强化学习的难点,很多来自于监督学习的两个假设在这里站不住。
最关键的第一个变化是数据不再是 i.i.d.:智能体拿到的是一段连续轨迹,上一帧和下一帧强相关,你把它当作打乱后的监督数据去喂网络,梯度往往会偏得离谱。第二个变化是奖励会延迟:你今天的一个动作,可能要过几十步才知道好坏,环境也不会像老师一样告诉你“正确动作是什么”。这两点叠在一起,会把很多工程细节都放大——你写 loss 时很容易对不上因果,训练曲线看起来在下降但策略不动;同时你会更依赖训练监控去判断到底有没有学到东西,比如 reward 曲线、episode length、value/Q 的数值范围与方差。
标准强化学习 vs 深度强化学习#
所谓标准强化学习,更像是先把状态写成你能处理的特征,再用表格或相对简单的函数去估计价值或策略;而**深度强化学习(DRL)**则更“端到端”,让神经网络直接从状态/观测映射到动作或价值。这个区分在项目里很实用,因为它决定了你调参到底在调什么:表格法更像数学题,探索策略、学习率与折扣因子往往是主角;深度方法则更像“深度学习 + 强化学习”叠加,除了 RL 的不稳定,你还得同时照顾优化器、归一化、网络容量、梯度爆炸这类深度学习常见问题。
这一点在项目里很重要,因为它决定了你调参的重点:
- 表格法更像“数学题”,很多时候是探索策略、学习率、折扣因子在起作用;
- 深度方法更像“深度学习 + 强化学习”,除了 RL 的不稳定,还叠加了网络训练的不稳定(梯度爆炸、归一化、网络容量等)。
状态(State)与观测(Observation)#
文档的区分很关键:
- 状态:对世界的完整描述,没有隐藏信息。
- 观测:状态的部分描述,可能遗漏信息。
这会影响你是否需要“记忆”。如果观测不满足马尔可夫性(比如只看到局部画面),那你可能需要:
- 堆叠帧(frame stacking)
- 加 RNN(LSTM/GRU)
- 或者显式构建 belief state
强化学习智能体的三大组件:策略、价值函数、模型#
1) 策略(Policy)#
策略回答的是:在状态 下要选什么动作 。
- 随机策略:输出动作的概率分布 。
- 确定性策略:直接输出一个动作 。
实践里我更推荐先用随机策略做探索(尤其是连续动作),因为探索是策略的一部分,不需要额外“贴 epsilon”。
2) 价值函数(Value Function)#
价值函数是对未来奖励的预测,用来评估“当前好不好”。文档提到的折扣因子 是核心超参之一:
- 小:更“近视”,更关注短期奖励。
- 大:更“远视”,更关注长期回报。
常见的两类价值函数:
- 状态价值:
- 动作价值:
3) 模型(Model)#
模型描述环境如何演化:从 到下一步 。
- 有模型(model-based):试图学习或已知转移与奖励。
- 免模型(model-free):不显式学习转移,直接学策略或价值
三类常见智能体:value-based / policy-based / actor-critic#
如果按“你到底显式学了什么”来划分,我更喜欢把它看成三种气质:value-based 会先把 学出来,然后策略往往是隐式提取的(比如在离散动作里做 ),典型代表就是 Q-learning 和 DQN;policy-based 则干脆直接学 这件事本身,代表是 REINFORCE 和 PPO;而 actor-critic 把两者拼在一起,让策略(actor)和价值(critic)同时学习、互相加速,像 A2C、DDPG、SAC 都属于这一类。
本章小结:先把“闭环”想清楚#
如果你只记住一件事,我希望是这句话:
强化学习永远在做一个闭环:采样(交互)→ 估计(价值/优势)→ 更新(策略/价值)→ 再采样。
后面的章节无论是 MDP、表格法、还是 PPO/DQN 这些大名鼎鼎的算法,本质都在这个闭环里换不同的估计方式和更新方式。
下一章我们会把这个闭环写成数学对象:马尔可夫过程、奖励过程、MDP、贝尔曼方程——你会发现,很多“看起来很抽象”的符号,其实是在回答工程里非常具体的问题:我怎么把未来折扣奖励写成一个可迭代的更新式?