增强学习Reinforcement Learning经典算法梳理3:TD方法
Posted songrotek
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了增强学习Reinforcement Learning经典算法梳理3:TD方法相关的知识,希望对你有一定的参考价值。
1 前言
在上一篇blog中,我们分析了蒙特卡洛方法,这个方法的一个特点就是需要运行完整个episode从而获得准确的result。但是往往很多场景下要运行完整个episode是很费时间的,因此,能不能还是沿着bellman方程的路子,估计一下result呢?并且,注意这里,依然model free。那么什么方法可以做到呢?就是TD(temporal-difference时间差分)方法。
有个名词注意一下:boostraping。所谓boostraping就是有没有通过估计的方法来引导计算。那么蒙特卡洛不使用boostraping,而TD使用boostraping。
接下来具体分析一下TD方法
2 TD与MC的不同
MC使用准确的return来更新value,而TD则使用Bellman方程中对value的估计方法来估计value,然后将估计值作为value的目标值进行更新。
也因此,估计的目标值的设定将衍生出各种TD下的算法。
那么TD方法的优势有什么呢?
- 每一步都可以更新,这是显然,也就是online learning,学习快
- 可以面对没有结果的场景,应用范围广
不足之处也是显而易见的,就是因为TD target是估计值,估计是有误差的,这就会导致更新得到value是有偏差的。很难做到无偏估计。但是以此同时,TD target是每一个step进行估计的,仅最近的动作对其有影响,而MC的result则受到整个时间片中动作的影响,因此TD target的方差variance会比较低,也就是波动性小。
还是放一下David Silver的总结吧:
那么David Silver的ppt中有三张图,很清楚的对比了MC,TD以及DP的不同:
从上面可以很清楚的看到三者的不同。DP就是理想化的情况,遍历所有。MC现实一点,TD最现实,但是TD也最不准确。但是没关系,反复迭代之下,还是可以收敛的。
整个增强学习算法也都在上面的范畴里:
3 TD算法
这只是TD(0)的估计方式,显然可以拓展到n-step。就是讲TD-target再根据bellman方程展开。
再下来的思想,就是可以把TD(i)和TD(j)合在一起求个平均吧。
再下来就是把能算的TD(i)都算一遍,每一个给个系数,总和为1,这就是 TD(λ)
4 SARSA算法
SARSA算法的思想很简单,就是增加一个A,下一步的A,然后据此来估计
Q(s,a)
。
之所以算法称为SARSA,就是指一次更新需要用到这5个量。
5 Q-Learning算法
著名的Q-Learning。
这里直接使用最大的Q来更新。
为什么说SARSA是on-policy而Q-Learning是off-policy呢?
因为SARSA只是对policy进行估计,而Q-Learning的Q则是通往最优。
6 Double Q-Learning
Q-Learning可能会出现对Q值过度估计的问题,Double Q-Learning可以解决这个问题:
使用两个Q交替更新。
7 多种方法比较
由上面两图可以理解TD,Sarsa,和Q-Learning的算法来源,本质上都是基于Bellman方程。
可以这么理解:Bellman方程是一种理想条件的解法,而这些方法则是放弃理想准确度而形成的可实现方法。
小结
本文梳理了TD相关的几个算法。TD算法特别是 TD(λ) 方法引出了eligibility trace(翻译做资格迹 不知可否),这部分内容留待之后分析。
声明
本文的图片截取自:
1 Reinforcement Learning: An Introduction
2 Reinforcement Learning Course by David Silver
以上是关于增强学习Reinforcement Learning经典算法梳理3:TD方法的主要内容,如果未能解决你的问题,请参考以下文章
增强学习Reinforcement Learning经典算法梳理3:TD方法
增强学习Reinforcement Learning经典算法梳理1:policy and value iteration
增强学习Reinforcement Learning经典算法梳理1:policy and value iteration