强化学习可以视为一个四元组,分别表示状态、动作、状态转移和奖赏。有模型学习是指这个四元组均为已知的情况,此时,我们可以在机器上模拟出与环境相同或近似的状况,显然,这是一种最简单的情形。
有模型学习示例
学习算法的框架
我们的目标是得到一个最优的策略π。为了得到最优策略,我们首先要能够判断哪个策略是更优的,也就是能够对策略进行评估。有了评估策略的方法后,就可以据此改进一个策略。因此,整体框架就是:评估策略 -> 改进策略 -> 再评估 -> 再改进。
策略评估
一个策略的好坏是通过其获得的奖赏衡量的,而强化学习里面的决策是一个序列,因此所得奖赏往往也是一个序列,所以常使用累积奖赏作为策略好坏的衡量标准。最常见的累积方法就是γ折扣累积奖赏,其计算方法为
状态值函数的定义
上式也称为状态值函数。其含义就是衡量在状态x下,以γ折扣累积奖赏衡量的策略π的好坏。
不仅如此,还可以类似的定义一个状态-动作值函数Q:
状态-动作值函数
其含义为:衡量在状态x下,执行动作a以后,以γ折扣累积奖赏衡量的策略π的好坏。
那什么时候策略达到最优呢?就是满足下面式子的时候
最优策略满足的等式
也就是说,对所有状态的V(x)求和,求和后最大的那个策略,就是最优策略。
那么怎么找最优策略呢?
有两种方法:策略迭代和值迭代。
策略迭代的思路是:
1、随机初始化策略π
2、根据策略π计算它的状态值函数V(x)
3、根据状态值函数V(x)计算状态-动作值函数Q(x,a),注意,Q比V多考虑了一步,即在x时,执行a动作以后的累积奖赏,而不是考虑当前状态x的累积奖赏
4、根据状态-动作值函数Q(x,a)生成新的策略π'
5、π = π',回到第2步继续
这种方法的有效性是得到数学证明的,但可以直观的理解为:Q比V多考虑了一步,所以根据Q生成的策略π'要比之前的策略π更好,因此V和π都可以一直进化。
基于策略和基于值的方法
而值迭代则基于V和Q的递推方程,不断迭代直到收敛。特别的,对Q函数进行迭代的方法也称为Q学习。这部分公式较多,此处就不展开了。
领取专属 10元无门槛券
私享最新 技术干货