Personal Knowledge Base

A long-term research and learning notebook for posts, notes, papers, projects, and research directions.

Skip to content
← Back to notes

强化学习 04:值迭代与策略迭代

比较值迭代、策略迭代与广义策略迭代,掌握已知环境模型时求解有限 MDP 的经典方法。

3 min read

动态规划的前提

值迭代与策略迭代都属于动态规划方法,通常假设:

  • 状态空间和动作空间有限。
  • 环境模型 p(s,rs,a)p(s',r\mid s,a) 已知。
  • 可以对所有状态执行完整扫描。

二者都在策略评估和策略改进之间循环,但每轮评估的充分程度不同。

策略迭代

策略迭代由两个步骤组成。

策略评估

固定当前策略 πk\pi_k,迭代求解其值函数:

Vj+1(s)aπk(as)s,rp(s,rs,a)[r+γVj(s)]V_{j+1}(s) \leftarrow \sum_a\pi_k(a\mid s) \sum_{s',r}p(s',r\mid s,a) \left[r+\gamma V_j(s')\right]

VjV_j 收敛后得到 VπkV^{\pi_k}

策略改进

对当前值函数执行一步贪心:

πk+1(s)argmaxas,rp(s,rs,a)[r+γVπk(s)]\pi_{k+1}(s) \in \arg\max_a\sum_{s',r}p(s',r\mid s,a) \left[r+\gamma V^{\pi_k}(s')\right]

策略改进定理保证新策略不会差于旧策略。如果策略不再变化,则已经达到最优策略。

值迭代

值迭代把策略评估截断为一次扫描,并直接应用 Bellman 最优更新:

Vk+1(s)maxas,rp(s,rs,a)[r+γVk(s)]V_{k+1}(s) \leftarrow \max_a\sum_{s',r}p(s',r\mid s,a) \left[r+\gamma V_k(s')\right]

收敛后提取策略:

π(s)argmaxas,rp(s,rs,a)[r+γV(s)]\pi(s) \in \arg\max_a\sum_{s',r}p(s',r\mid s,a) \left[r+\gamma V(s')\right]

算法对比

方法每轮评估每轮代价迭代轮数
策略迭代评估到收敛或近似收敛较高通常较少
值迭代只做一次最优更新较低通常较多
修改策略迭代固定执行若干次评估可调介于两者之间

实际系统中不必把策略评估做到完全收敛。只要评估与改进持续相互推动,就形成广义策略迭代(Generalized Policy Iteration, GPI)。

同步与异步更新

同步更新使用上一轮的完整值函数计算下一轮:

Vk+1TVkV_{k+1}\leftarrow\mathcal{T}^*V_k

异步更新则原地修改状态值,可以优先更新对当前决策最重要的状态。常见方式包括:

  • 按固定顺序原地扫描。
  • 根据 Bellman 误差进行优先级排序。
  • 只更新智能体实际访问到的状态。

停止条件

常用停止标准是最大状态值变化小于阈值:

Δk=maxsVk+1(s)Vk(s)<ε\Delta_k=\max_s|V_{k+1}(s)-V_k(s)|<\varepsilon

若希望最终策略具有更明确的误差保证,需要同时考虑折扣因子。γ\gamma 越接近 11,误差传播越慢,通常需要更严格的停止阈值和更多迭代。

实践要点

  • 小型、模型已知的 MDP 可以优先使用动态规划作为基准答案。
  • 状态数很大时,完整扫描会成为瓶颈,应考虑采样更新或函数近似。
  • 原地更新通常收敛更快,但结果可能依赖扫描顺序。
  • tie-breaking 应保持稳定,否则多个同价值动作可能导致策略来回变化。

值迭代强调最优 Bellman 备份,策略迭代强调评估与改进的清晰分工;二者是后续多数强化学习算法的概念原型。

Related Posts