值迭代与策略迭代都属于动态规划方法,通常假设:
- 状态空间和动作空间有限。
- 环境模型 p(s′,r∣s,a) 已知。
- 可以对所有状态执行完整扫描。
二者都在策略评估和策略改进之间循环,但每轮评估的充分程度不同。
策略迭代由两个步骤组成。
固定当前策略 πk,迭代求解其值函数:
Vj+1(s)←a∑πk(a∣s)s′,r∑p(s′,r∣s,a)[r+γVj(s′)]
当 Vj 收敛后得到 Vπk。
对当前值函数执行一步贪心:
πk+1(s)∈argamaxs′,r∑p(s′,r∣s,a)[r+γVπk(s′)]
策略改进定理保证新策略不会差于旧策略。如果策略不再变化,则已经达到最优策略。
值迭代把策略评估截断为一次扫描,并直接应用 Bellman 最优更新:
Vk+1(s)←amaxs′,r∑p(s′,r∣s,a)[r+γVk(s′)]
收敛后提取策略:
π(s)∈argamaxs′,r∑p(s′,r∣s,a)[r+γV(s′)]
| 方法 | 每轮评估 | 每轮代价 | 迭代轮数 |
|---|
| 策略迭代 | 评估到收敛或近似收敛 | 较高 | 通常较少 |
| 值迭代 | 只做一次最优更新 | 较低 | 通常较多 |
| 修改策略迭代 | 固定执行若干次评估 | 可调 | 介于两者之间 |
实际系统中不必把策略评估做到完全收敛。只要评估与改进持续相互推动,就形成广义策略迭代(Generalized Policy Iteration, GPI)。
同步更新使用上一轮的完整值函数计算下一轮:
Vk+1←T∗Vk
异步更新则原地修改状态值,可以优先更新对当前决策最重要的状态。常见方式包括:
- 按固定顺序原地扫描。
- 根据 Bellman 误差进行优先级排序。
- 只更新智能体实际访问到的状态。
常用停止标准是最大状态值变化小于阈值:
Δk=smax∣Vk+1(s)−Vk(s)∣<ε
若希望最终策略具有更明确的误差保证,需要同时考虑折扣因子。γ 越接近 1,误差传播越慢,通常需要更严格的停止阈值和更多迭代。
- 小型、模型已知的 MDP 可以优先使用动态规划作为基准答案。
- 状态数很大时,完整扫描会成为瓶颈,应考虑采样更新或函数近似。
- 原地更新通常收敛更快,但结果可能依赖扫描顺序。
- tie-breaking 应保持稳定,否则多个同价值动作可能导致策略来回变化。
值迭代强调最优 Bellman 备份,策略迭代强调评估与改进的清晰分工;二者是后续多数强化学习算法的概念原型。