强化学习(reinforcement learning)学习笔记(二)——值迭代与策略迭代
上一次我分享了强化学习相关基础概念,推导了Bellman方程。这次我们来学习求解强化学习模型的2种思路——值迭代与策略迭代
动态规划
这里面我要简单介绍一下动态规划,因为严格来说,值迭代与策略迭代是用来解决动态规划问题的两种规划方法。而强化学习又有另外一个昵称——就是拟动态规划。说白了强化学习就是模拟动态规划算法。
用一句话来总结动态规划就是,对一个复杂问题给出一个一般性的解决办法。它主要由两个性质:
- 最优子结构:最优解法能被分解到多个子问题中
- 重叠子问题:子问题能重复多次且解法能被重复利用
马尔科夫决策过程(MDP)满足以上两个性质,所以任何MDP都可以用动态规划来解。动态规划与强化学习的区别就是动态规划假设MDP模型是全知的(即参数可知) 而 强化学习可以使MDP未知。
MDP需要解决的问题有两种,第一种是prediction,它已知MDP的
策略迭代 (policy iteration)
策略迭代就是在policy未知的情况下,根据每次的reward学到最优policy。
对一个具体的MDP问题,每次先初始化一个策略,根据这个策略计算值函数
-
Policy evaluation :根据每一次的给出策略估计
vπ -
Policy improvement:根据Greedy poilcy和之前得到的
vπ 获得当前策略π′
图解如下:
给一个例子:下图是一个叫Small Gridworld的例子,左上角和右下角是终点,
值迭代(value iteration)
值迭代就是在已知policy和MDP模型的情况下,根据策略获得最优值函数和最优策略。
只不过这是确定策略,在值函数
通过每次迭代bellman方程获得
最后对策略迭代和值迭代进行一个比较: