策略迭代和价值迭代
动态规划:分解目标问题为若干个子问题,由子问题的解得到目标问题的解。
基于动态规划的强化学习算法主要有两种:一是策略迭代(policy iteration),二是价值迭代(value iteration)。这两种算法要求事先知道环境的状态转移函数和奖励函数(白盒)。
策略迭代中的策略评估使用贝尔曼期望方程来得到一个策略的状态价值函数,这是一个动态规划的过程。
而价值迭代直接使用贝尔曼最优方程来进行动态规划,得到最终的最优状态价值。
策略迭代
策略评估:
根据动态规划的思想,可以把计算下一个可能状态的价值当成一个子问题,把计算当前状态的价值看作当前问题。
考虑所有的状态,就变成了用上一轮的状态价值函数来计算当前这一轮的状态价值函数。
该博客举的例子非常形象、便于理解:
策略提升
我们已经得到状态价值函数,策略提升即选择a,可最大化q(s,a)。
对当前的策略进行策略评估,得到其状态价值函数,然后根据该状态价值函数进行策略提升以得到一个更好的新策略,接着继续评估新策略、提升策略……直至最后收敛到最优策略。
价值迭代
只在策略评估中进行一轮价值更新,然后直接根据更新后的价值进行策略提升。价值迭代中不存在显式的策略,我们只维护一个状态价值函数。
贝尔曼最优方程
迭代更新后的贝尔曼最优方程:
最优策略选取最大化q(s,a)的动作。