强化学习: On-Policy与 Off-Policy 以及 Q-Learning 与 SARSA

刚接触强化学习,都避不开On Policy 与Off Policy 这两个概念。其中典型的代表分别是Q-learning 和 SARSA 两种方法。这两个典型算法之间的区别,一斤他们之间具体应用的场景是很多初学者一直比较迷的部分,在这个博客中,我会专门针对这几个问题进行讨论。
强化学习: On-Policy与 Off-Policy 以及 Q-Learning 与 SARSA_第1张图片

以上是两种算法直观上的定义。
我们都称 Q-Learning 是 Off Policy . SARSA 是 On Policy 这个应该怎么理解呢?
我们先列出来这两个策略的公式。
强化学习: On-Policy与 Off-Policy 以及 Q-Learning 与 SARSA_第2张图片

强化学习: On-Policy与 Off-Policy 以及 Q-Learning 与 SARSA_第3张图片

我们应该从这几个方面对比理解,才能理解这两个公式。
首先,这两个公式的策略更新方式都是可以让策略变得可以更好。 Q- learning 是用maximize value function ,而SARSA 是用类似于MDP 的迭代方式。 在李宏毅和David Silver课程都有对此的证明,在这个博客就不细讲了。
第二点,我们对照On Policy 和 Off Policy的定义来看看,Q-learning 和 SARSA 这两个公式。
Q-learning 和 SARSA 这两个公式区别就在Q value 更新方式上,Q-learning 是用max的方式更新Q value ,也就是说这个max方式就是他的更新策略(不带有探索性,完全的贪婪)。但是Q-learning的执行策略是带有epsilon的探索方式。所以他就是Off Policy
对比SARSA 就没有这种情况了,他的执行更新VALUE
的动作都是带有epsilon的探索。他就是On Policy

第三点 以上是从公式定义的角度区分了Q-learning 和SARSA 是On-Policy 还是 Off-Policy .我们还需要明白On-Policy 和 Off-Policy 他们各自的优劣,以及在Q-learning 和 SARSA 上的具体体现,才算完全明白这个部分的知识。
我们应该理解,为什么会有Off-Policy 和 On Policy 的区分呢?
这是因为强化学习在学习过程要面对探索利用两个问题。
On Policy **在学习过程中,不一定能找到最优解。**从直观的角度解释的话,他的目标策略和行为策略都使用了 epsilon 探索,如果某个动作a 发生概率很低,但是被探索到了,在我们的行为策略中,因为同时也采用epsilon 探索方式,所以对这个被探索到的动作可能不能给予最优解。On Policy 的优点是方法直接,实现简单。
Off Policy 其实就是把探索和优化 一分为二,优化的时候我只追求最大化,二不用像 On Policy 那样还要考虑 epsilon 探索。Off Policy 的优点就是可以更大程度上保证达到全局最优解,除此以外Off Policy 的还有其他优点,从我目前的认知水平看两种策略。 如果我们要训练强化学习神经网络,分别用Off Policy 和 On Policy ,我们都要用agent 和环境交互产生一组数据,喂给神经网络,在做梯度更新。 因为On Policy 每次更新之后,策略都会发生变化,所以之前产生的 交互数据已经没有价值了,我们要废弃掉,再重新产生新的交互数据。 我们训练神经网络的时候,训练部分是很高效的,我们的速度瓶颈是在于环境进行交互。比如我们我们要学习video game,我们需要玩1000场游戏,而1000场游戏时间的长短很大程度上取决于这个游戏机他的时间进度是多快。
而Off Policy 在这方面就有着优势,他可以反复的利用以前过往的数据,因为每次神经网络更新,Off Policy 自己的策略会更新,但是他本身就是目标策略和行为策略是分离的。 比如 experience replay就是一个典型的例子。
在这里我们顺带着提以下 inmortance samplingexperience replay
其实在Q learning当中是没有用到 Importance Sampling 的,但是Importance Sampling是很多 Off Policy 用的方法,Q learning 是一种特例。

强化学习: On-Policy与 Off-Policy 以及 Q-Learning 与 SARSA_第4张图片

如上图所示,我们无法从p分布中采样数据的时候,可以选择q 中采样数据,对应的公式就是如上所示。这就是传说中的 importance sampling
具体在 Off Policy 算法中的应用如下

强化学习: On-Policy与 Off-Policy 以及 Q-Learning 与 SARSA_第5张图片

强化学习: On-Policy与 Off-Policy 以及 Q-Learning 与 SARSA_第6张图片

以上就是Importance Sampling 的用法。接下来我们在下一个博客讨论一下Experience Sampling

你可能感兴趣的:(强化学习)