3.4 策略迭代
将策略评估算法和策略改进算法合起来便有了策略迭代算法。策略迭代算法通常由策略评估和策略改进两部分构成。在策略评估中,根据当前策略计算值函数。在策略改进中,通过贪心算法选择最大值函数对应的行为。策略评估和策略改进两部分交替进行不断迭代。算法整体流程如图3-2所示。

图3-2 策略迭代
假设我们有一个初始策略π1,策略迭代算法首先评估该策略的价值(用E表示),得到该策略的值函数或
。下一步,策略迭代算法会借助贪心算法对初始策略π1进行改进(用I表示),得到π2。接着,对改进后的策略π2进行评估,再进一步改进当前策略,如此循环迭代,直到策略收敛至最优。

其中,π1为初始策略,E表示策略评估,I表示策略改进。策略评估过程中,对于任意的策略πk,通过贝尔曼期望方程进行迭代计算得到和
。例如:

策略改进部分,用贪心算法得到更新的策略:

或者

算法流程如下。

在策略评估过程中,往往需要等到值函数收敛之后才能进行策略改进,这其实是没有必要的。可以在进行一次策略评估之后就开始策略改进,如此循环往复执行这两个过程,最终会收敛到最优值函数和最优策略,如图3-3所示,这便是广义策略迭代的思想,很多强化学习方法都用到了这种思想。

图3-3 广义策略迭代