强化学习(reinforcement learning)学习笔记(二)——值迭代与策略迭代

上一次我分享了强化学习相关基础概念,推导了Bellman方程。这次我们来学习求解强化学习模型的2种思路——值迭代与策略迭代

动态规划

这里面我要简单介绍一下动态规划,因为严格来说,值迭代与策略迭代是用来解决动态规划问题的两种规划方法。而强化学习又有另外一个昵称——就是拟动态规划。说白了强化学习就是模拟动态规划算法。

用一句话来总结动态规划就是,对一个复杂问题给出一个一般性的解决办法。它主要由两个性质:

  1. 最优子结构:最优解法能被分解到多个子问题中
  2. 重叠子问题:子问题能重复多次且解法能被重复利用

马尔科夫决策过程(MDP)满足以上两个性质,所以任何MDP都可以用动态规划来解。动态规划与强化学习的区别就是动态规划假设MDP模型是全知的(即参数可知)强化学习可以使MDP未知

MDP需要解决的问题有两种,第一种是prediction,它已知MDP的S,A,P,R,γ以及policy,目标是算出在每个状态下的value function(值函数其实就是问题的目标,一般都是跟reward有关的函数,例如Atari小游戏,一般值函数就是累计的得分的期望。目标一般就是最大化这个值函数。而第二种是control,它已知MDP的S,A,P,R,γ但是policy未知(即动作at未知),因此它的目标不仅是计算出最优的value function而且要给出最优的Policy。

策略迭代 (policy iteration)

策略迭代就是在policy未知的情况下,根据每次的reward学到最优policy。
对一个具体的MDP问题,每次先初始化一个策略,根据这个策略计算值函数v(s), 通过这个re值函数来根据贪心策略更新策略,不断迭代最终得到最优策略与最优值函数。总结下来就两个阶段。

  • Policy evaluation :根据每一次的给出策略估计vπ
  • Policy improvement:根据Greedy poilcy和之前得到的vπ获得当前策略π

图解如下:
强化学习(reinforcement learning)学习笔记(二)——值迭代与策略迭代
强化学习(reinforcement learning)学习笔记(二)——值迭代与策略迭代

给一个例子:下图是一个叫Small Gridworld的例子,左上角和右下角是终点,γ=1,移动一步reward减少1,起始的random policy是朝每个能走的方向概率相同,先单独看左边一列,它表示在第k次迭代每个state上value function的值,这一列始终采用了random policy,这里的value function就是通过Bellman Expectation Equation得到的,考虑k=2的情况,-1.7 = -1.0 + 2*(1/3.0)(-1),-2.0 = -1.0 + 4(1/4.0)*(-1)。而右边一列就是在当前的value function情况下通过greedy算法找到当前朝哪个方向走更好。

强化学习(reinforcement learning)学习笔记(二)——值迭代与策略迭代
强化学习(reinforcement learning)学习笔记(二)——值迭代与策略迭代

值迭代(value iteration)

值迭代就是在已知policy和MDP模型的情况下,根据策略获得最优值函数和最优策略。
只不过这是确定策略,在值函数vπ取得最大值的at(策略)
通过每次迭代bellman方程获得vi, 知道值函数收敛。图解如下:强化学习(reinforcement learning)学习笔记(二)——值迭代与策略迭代

最后对策略迭代和值迭代进行一个比较:
强化学习(reinforcement learning)学习笔记(二)——值迭代与策略迭代