增强学习Reinforcement Learning经典算法梳理3:TD方法 - Go语言中文社区

增强学习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

版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/songrotek/article/details/51382759
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2020-03-08 14:48:21
  • 阅读 ( 1093 )
  • 分类:算法

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢