强化学习(三) - 基于模型学习(DP)

上一节主要是引入了MDP(Markov decision process)的各种相关的定义与概念。最后得到了 最优状态值函数v(s)v_∗(s)最优状态动作值函数q(s,a)q_∗(s,a) 的定义与公式。

若学习任务中的四个要素都已知,即S、A、P、R都已经给出,这样的情形称为 “有模型学习”
这一节主要是在已知模型的情况下利用动态规划来进行强化学习求解v(s)v_∗(s)q(s,a)q_∗(s,a)。已知模型指的是<S,A,P,R,γ><S,A,P,R,γ>这些都是已知的。求解的方法主要有两个,一个是值迭代,另一个是策略迭代


Value Iteration(值迭代)

策略评估

当模型已知时,策略的评估问题转化为一种动态规划问题,即以填表格的形式自底向上,先求解每个状态的单步累积奖赏,再求解每个状态的两步累积奖赏,一直迭代逐步求解出每个状态的T步累积奖赏。

每次迭代过程中,用所有的状态s的第k次迭代得到的的vk(s)v_k(s′)来计算第k+1次的vk+1(s)v_{k+1}(s)的值。经过这种方法的反复迭代,最终是可以收敛到最优的v(s)v_∗(s)。迭代的公式如下:
强化学习(三) - 基于模型学习(DP)
该方法的前提是策略π从一开始就没有改变(如一直保持随机策略),只是通过不断地迭代计算v(s)v(s)的值,直到最后v(s)v(s)收敛才停止迭代。

策略改进

我们的目标是要得到最优策略,所以在迭代到V值收敛后,我们可以进行策略改进(策略 π 表示在一个状态s下,agent接下来可能会采取的任意一个action的概率分布)。可以使用贪婪算法(在每一步总是做出在当前看来是最好的选择)来进行策略改进,将策略选择的动作改为当前最优的动作。即:
强化学习(三) - 基于模型学习(DP)

上述过程就是从最优化值函数的角度出发,即先迭代收敛得到最优值函数,再来计算如何改进策略,这便是值迭代算法
强化学习(三) - 基于模型学习(DP)

事实上,这样需要迭代很多次才会收敛,可能我们会想,我们可不可以每迭代计算一次v(s)的值,就改进一下我们的策略,而不是等到v(s)收敛了才来改进策略呢?
所以接下来我们就来讲策略迭代,它就是这么干的。


Policy Iteration(策略迭代)

策略迭代和上面的值迭代不同就在于,策略评估与策略改进是反复交替的

策略迭代同样也分为两部分:第一个部分是策略评估,第二部分是策略改进
策略评估:在当前的策略下计算v(s)v(s)的值。
策略改进:利用策略评估得到的v(s)v(s)来进行策略改进。
然后继续重复策略评估、策略改进,直到最后收敛到最优策略
强化学习(三) - 基于模型学习(DP)

总结

值迭代是一开始不改变策略,一直迭代计算v(s)v(s)的值,直到最后v(s)v(s)收敛得到最优值函数,这时候再根据贪婪算法改进策略;
策略迭代则是每计算一次v(s)v(s)的值,就改进一次策略,然后利用改进的策略再继续计算v(s)v(s)的值,…不断迭代直到策略收敛。策略迭代在每次改进策略后都要对策略进行重新评估,因此比较耗时。



参考:
动态规划求解MDP
周志华《Machine Learning》学习笔记(17)–强化学习