

RL 学习笔记(2):MDP、MRP 与贝尔曼方程
从马尔可夫性质出发,串起 Markov Chain、MRP、MDP、预测与控制、动态规划,以及策略迭代与价值迭代的直觉与实现注意点。
前言#
需要说明的是,这个系列的博客是由我的幕布笔记转化而来,如果你更喜欢图文并茂的阅读,你可以去我的幕布空间进行阅读,受限于篇幅的原因,第十二章幕布笔记在这。如果你发现有哪些地方由逻辑错误,可以通过评论告知我,十分感谢!
开始#
MDP 这章很容易被写成“符号堆砌”,但我更喜欢把它当成一种工程语言:当你抱怨“奖励太延迟、我不知道该怪哪一步动作”时,MDP 给了你一套把问题拆清楚的坐标系。
读完这一章,你应该能回答三个实用问题:
我更希望你带着三个很“落地”的问题往下读:马尔可夫性到底是什么,它为什么是很多算法正确性的前提;贝尔曼方程在工程里到底在干嘛,为什么大家都执着于反复迭代它;以及“预测”和“控制”的边界应该怎么划分——也就是策略迭代和价值迭代分别在什么场景下更趁手。
马尔可夫性质:把“历史”压缩到当前状态#
文档对马尔可夫性质的描述很经典:给定当前状态和所有过去状态,未来只依赖当前状态。
换成更工程的说法:
只要你的 state 设计得够好,你就不需要记住全部历史。
如果环境提供的 observation 不满足马尔可夫性(部分可观测),你就需要在算法外做补救:堆叠帧、RNN、或者构造 belief。
从 Markov Chain 到 MRP:先学“在给定策略下评估”#
马尔可夫链(Markov Chain)#
只有状态转移,没有奖励和动作。
马尔可夫奖励过程(MRP)#
在马尔可夫链上加了奖励函数,核心产物是状态价值:
其中回报 是折扣奖励累积:
折扣因子 在实战里几乎就是“长远程度”的旋钮。
贝尔曼方程:把“未来”写成“递归”#
文档里提到贝尔曼方程定义了当前与未来的关系。它的意义在于:
- 你不用真的跑到无穷远去算 ;
- 你可以用“下一步的价值”来更新“当前价值”。
在 MRP 下的形式可以理解为:
这句式子就是后面动态规划、TD 学习、甚至深度 RL 的祖宗。
三种估值路线:DP / Monte Carlo / TD#
文档把三类方法并列得很好,我再补一点“你写代码时会怎么选”:
- 动态规划(DP):需要环境完全已知(),能遍历所有状态。优点是稳定、可证明;缺点是现实中很少满足。
- 蒙特卡洛(MC):不需要模型,用完整 episode 的回报做估计。优点是无偏;缺点是方差大、必须等回合结束。
- 时序差分(TD):介于两者之间,一边采样一边自举(bootstrapping)。优点是在线更新;缺点是有偏但通常更高效。
从 MRP 到 MDP:加入动作,问题从“评估”变成“决策”#
MDP 相比 MRP 多了动作:未来不仅依赖当前状态,也依赖智能体在当前状态采取的动作。
MDP 的核心对象是:
- policy
- value function 或
预测(Prediction)与控制(Control)#
文档这段是考试高频,但对工程也很关键:
- 预测:给定 MDP + 给定策略 ,求 。
- 控制:给定 MDP(但策略未知),求最优策略 与最优价值 。
简单说:
- 预测 = 你让我评估这个策略靠谱不靠谱;
- 控制 = 我自己想办法找一个最靠谱的策略。
动态规划解控制:策略迭代 vs 价值迭代#
策略迭代(Policy Iteration)#
两步循环:
- 策略评估:固定 ,求 。
- 策略改进:用 推导更好的策略(对 做贪心)。
价值迭代(Value Iteration)#
直接对贝尔曼最优方程迭代,得到 ,再提取 。
本章小结:MDP 是一张地图#
我一直觉得 MDP 像“地图”:它告诉你 RL 里有哪些变量、哪些依赖关系是算法成立的前提。
后面你会看到:
- 表格型方法(Sarsa/Q-learning)是在 MDP 上给出“可在线迭代”的控制算法;
- 策略梯度/PPO 是绕开显式 的另一条路;
- DQN、Actor-Critic 则把这些对象用神经网络做近似。
下一章我们就从最朴素的地方开始:如果状态空间不大,直接用表格去学,会发生什么?