上一节主要是引入了MDP(Markov decision process)的各种相关的定义与概念。最后得到了最优状态值函数 v∗(s) 和最优状态动作值函数 q∗(s,a) 的定义与公式。这一节主要是在已知模型的情况下利用动态规划来进行强化学习求解 v∗(s) 和 q∗(s,a) 。什么叫已知模型的情况?就是说上一节讲到的 <S,A,P,R,γ> <script type="math/tex" id="MathJax-Element-305"> </script>,这些都是已知的。求解的方法主要有两个,一个是策略迭代,另一个是值迭代。
本文基本参照了这篇文章的内容,再加上一点自己的理解,希望能够帮助到大家。
Dynamic Programming(动态规划)
首先什么是动态规划呢?相信大家对动态规划有一定的了解,就是一个问题的求解可以通过求解子问题而得到解决,就像递归一样。详细的动态规划理解大家可以在这里查看。
而MDP 刚好符合动态规划的性质,其中bellman方程就是递归结构。值函数存储了子问题的解决,这样在解决更进一步的子问题时就不用重头计算,而是可以直接取上一次的值函数来使用。
Iteration Policy Evaluation(迭代法策略评估)
- 问题:评估一个给定的策略 π 。
- 解决方法:利用bellman方程反向迭代。
具体做法:每次迭代过程中,用所有的状态s的第k次迭代得到的的 vk(s′) 来计算第k+1次的 vk+1(s) 的值。经过这种方法的反复迭代,最终是可以收敛到最优的 v∗(s) 。迭代的公式如下:
vk+1(s)=