第5课 动态规划 策略评估 策略迭代 价值迭代
目录
第5课:动态规划、策略评估、策略迭代、价值迭代
0. 一句话理解
当环境模型已知时,可以利用 Bellman 方程,对价值函数反复迭代,从而直接求出最优策略。
1. 动态规划在 RL 中是什么
这里的动态规划(Dynamic Programming, DP)不是狭义的题型技巧,而是指:
利用 Bellman 方程对所有状态的价值进行系统更新,直到收敛。
适用前提: - 已知环境模型 - 即知道 $P(s'\mid s,a)$ 和奖励函数
2. 策略评估 Policy Evaluation
给定一个固定策略 $\pi$,我们希望计算它的价值函数 $V^\pi(s)$。
根据 Bellman expectation equation:
$$ V^\pi(s)=\sum_a \pi(a\mid s)\sum_{s',r}p(s',r\mid s,a)\bigl[r+\gamma V^\pi(s')\bigr] $$
由于右边又含 $V^\pi$,通常采用迭代更新:
$$ V_{k+1}(s)\leftarrow \sum_a \pi(a\mid s)\sum_{s',r}p(s',r\mid s,a)\bigl[r+\gamma V_k(s')\bigr] $$
操作流程
- 初始化 $V_0(s)$,常见设为 0
- 对所有状态反复更新
- 直到变化很小,视为收敛
直觉
先随便猜一个状态价值,再不断用 Bellman 方程修正它。
3. 策略改进 Policy Improvement
当我们已经得到当前策略的价值函数 $V^\pi$ 后,可以用它来比较某状态下不同动作的一步前瞻值:
$$ q_\pi(s,a)=\sum_{s',r}p(s',r\mid s,a)\bigl[r+\gamma V^\pi(s')\bigr] $$
然后选取最优动作:
$$ \pi'(s)=\arg\max_a q_\pi(s,a) $$
这意味着:
在当前状态下,直接选择“当前奖励 + 后续状态价值”最大的动作。
4. 策略迭代 Policy Iteration
策略迭代就是不断交替执行:
- 策略评估
- 策略改进
流程可记为:
$$ \pi_0 \rightarrow V^{\pi_0} \rightarrow \pi_1 \rightarrow V^{\pi_1} \rightarrow \pi_2 \rightarrow \cdots $$
直到策略不再变化。
直觉
- 先评估“现在这套策略好不好”
- 再把它改得更好一点
- 反复做,最终逼近最优策略
5. 价值迭代 Value Iteration
策略迭代的一个缺点是: - 每轮都要把当前策略评估得比较充分
价值迭代更直接,它不等评估完全结束,而是每次更新时直接做最优动作选择:
$$ V_{k+1}(s)\leftarrow \max_a \sum_{s',r}p(s',r\mid s,a)\bigl[r+\gamma V_k(s')\bigr] $$
它对应 Bellman optimality equation。
收敛后如何得到策略
当 $V_k$ 收敛到 $V^*$ 后,策略由下式给出:
$$ \pi^(s)=\arg\max_a \sum_{s',r}p(s',r\mid s,a)\bigl[r+\gamma V^(s')\bigr] $$
6. 策略迭代 vs 价值迭代
策略迭代
- 每轮先完整评估,再改进
- 单轮计算较重
- 思路更清晰
价值迭代
- 直接朝最优价值逼近
- 更简洁
- 常常更高效
粗略理解: - 策略迭代:先想清楚,再动手 - 价值迭代:边想边做,直接逼近最优
7. 一个简单数值例子
假设状态 $s$ 下有两个动作:
- 动作 A:即时奖励 2,之后到达 $s_1$
- 动作 B:即时奖励 0,之后到达 $s_2$
若当前估计: - $V(s_1)=5$ - $V(s_2)=10$ - $\gamma=0.9$
则: $$ q(s,A)=2+0.9\times 5=6.5 $$
$$ q(s,B)=0+0.9\times 10=9 $$
因此应选 B。
这个例子本质上体现的就是“策略改进”或“价值迭代”的动作选择逻辑。
8. DP 与 Bellman 方程的关系
动态规划不是凭空来的,它完全依赖 Bellman 递推结构。
也就是说:
- 05-第4课 Bellman方程 给出理论关系
- 本页的 DP 方法则是在模型已知时“真正用它求解”
9. 这套方法的意义
动态规划为强化学习提供了一个“理想参考系”:
如果模型已知,最优策略是可以系统算出来的。
这点非常重要,因为后面模型未知时的很多方法,本质上都是对 DP 思路的近似化:
- Monte Carlo:采样整条回报
- TD:用自举方式近似 Bellman 更新
- Q-learning:直接学最优 Q
- DQN:神经网络近似 Q
10. 局限性
动态规划虽然理论漂亮,但有明显限制:
10.1 需要已知环境模型
现实任务里转移概率往往未知。
10.2 状态空间通常太大
一旦状态空间巨大,就无法逐状态遍历更新。
因此 DP 更像是: - 理论基础 - 小规模问题工具 - 后续无模型方法的原型
11. 易混淆点
策略评估不是在更新策略
它只是算“当前策略有多好”。
策略改进才是更新策略
它利用当前估计的价值函数来改策略。
价值迭代不是“先有策略再评估”
它直接针对最优 Bellman 方程更新价值。
12. 我的理解(可补充)
DP 像是 RL 里的“解析原型”:
- 先给出完全理想的求解方式
- 再让后续各种采样法、近似法从这里生长出来
13. 复习问题
- 动态规划在 RL 中的适用前提是什么?
- 策略评估在做什么?
- 策略改进在做什么?
- 策略迭代和价值迭代有什么区别?
- 为什么说后续很多 RL 算法都能看作 DP 的近似版本?
14. 前后关联
前置
后续
- 08-强化学习FAQ 初始化 探索与更新起点
- (后续可扩展)Monte Carlo、TD、Q-learning、DQN