Processing math: 100%

[RL Notes] 迭代策略评估

  动态规划(Dynamic Programming,DP)是一类优化方法,它可以在给定用 MDP 描述的完备环境模型的情况下,使用贝尔曼方程进行策略评估和控制。

  贝尔曼方程给出了 vπ(s) 的一个递归表达式

vπ(s)=aπ(a|s)srp(s,r|s,a)[r+γvπ(s)]

通过将贝尔曼方程转换为更新的形式,就得到了 DP 算法

vk+1(s)aπ(a|s)srp(s,r|s,a)[r+γvk(s)]

使用式 (2) 进行迭代更新,可以不断逼近价值函数。如果在某次更新后 vk+1(s) 在所有状态 s 上都等于 vk(s),则说明已经找到了价值函数 vπ(s),因为 vπ(s) 是贝尔曼方程的唯一解。

  由式 (2) 可见,在实现迭代策略评估算法时,需要同时保存旧的价值函数 vk 和新的价值函数 vk+1。在一次迭代中,对于每一个状态,使用 vk 来更新 vk+1,更新过程中 vk 需要保持不变;对所有状态更新完 vk+1 后,开始下一轮迭代。

  除了上述使用两个数组的实现方式,也可以使用一个数组来就地更新,但此时在更新 vk+1 时,有时会使用旧的价值函数,有时会使用旧的价值函数。这种使用单数组就地更新的算法依然能够收敛到 vπ,而且可以在获得新数据后立即使用,收敛速度比两个数据的版本更快。

  迭代策略评估的完整版本如下所示。


迭代策略评估算法,用于估计 Vvπ
输入待评估的策略 π
算法参数:小阈值 θ>0,用于确定估计量的精度
对于任意 sS+,任意初始化 V(s),其中 V()=0
循环:
  Δ0
  对每一个 sS,循环:
    vV(s)
    V(s)aπ(a|s)s,rp(s,r|s,a)[r+γV(s)]
    Δmax(Δ,|vV(s)|)
  直到 Δ<θ