专栏首页嘘、小点声李宏毅的强化学习视频用于梳理翻阅(3)值

李宏毅的强化学习视频用于梳理翻阅(3)值

估计价值的方法MC与TD

MC(Monte-Carlo)的方法,在Sutton的书中有比较权威并详细的说明。地址:https://rl.qiwihui.com/zh_CN/latest/index.html

下图是首次访问型的MC方法,估计状态的价值V。在初始化后,先根据策略获取一个完整的序列,然后从底向上,逆向计算得到状态的价值。

当前的状态价值,是与当前和可能产生的以后的完整序列价值有关的,所以有逆向计算的过程。与当前状态距离越远的地方越不容易到达,所以添加折扣因子,将其价值的累加进行折扣。多次进行,求得平均。

估计其他如策略估计,也是类似的过程。每次访问型MC方法,没有Unless部分。Unless部分的意思是,在本次生成的该序列中,每个状态都应该只出现一次。

时序差分的方法TD(Temporal-difference),仍然以Sutton的说明,清楚一点。

初始化后,在每一步,都进行叠加,其中公式里的中括号部分,表示了TD误差,优化的目标,就是使得V(s)最终等于R+yV(s')。

TD和MC的关系是,TD是MC的一种特殊的修改。

在每次访问型的MC中,其优化目标为G。G是马尔科夫链中,状态s下,所有后续状态的真实回报r的折扣累加和。

在TD算法中,该G变为了马尔科夫链中,状态s下,r与后续一步的价值折扣累加和。该算法认为是TD(0)。当考虑后续的lambda步时,认为有TD(lanbda),作为优化目标。

TD算法中,在一个马尔科夫链上:s,a,r,s',中,有V(s)=y*V(s')+r,即价值本质上,仍然是通过一条完整的马尔科夫链,累积奖励r,并通过折扣因子y,求得的。

相对于MC算法,TD算法对未来的数据上,产生更小的误差,其误差来源于r。MC算法是根据定义得到的,更直接,但是其误差来源于G,相对与奖励r,误差更大。

如下图中,多次执行后,0为MC计算得到的状态a的价值,3/4为TD计算得到的价值。(Sutton125页)。

因为MC算法考虑的是本次序列中的效果(状态b的真实影响),即G的值,所以多次执行以后,平均得到状态a的价值的来源是,第一行的序列的真实回报

而TD算法考虑的是价值,在第一行的序列中,状态a的价值计算,考虑了所有序列中的状态b的效果,即状态b的价值。而不是真实回报。

V与Q

V与Q是两种不同的度量方式,前者代表的是状态的价值。后者是,该状态下并选择行为a的价值。在下面右图中,当q函数中的行为a,固定为?时,认为V与Q相等吧。

在Q上标记?,表示当前Q根据其值使用的策略。下图说明的是:?^(?′ ) (?)≥?^? (?),即在每次行为选择的过程中,策略?的行为选择,会朝着价值更大的方向。?^? (?)=?^? (?,?(?))所表达的意思是,当行为a,使用?(?)产生时,相等。

工程技巧

下图是探索的技巧,用于探索环境。

常见的DQN改进算法

Double DQN,未考证,但是大致是,使用Q',更新Q,在一段时间后,Q'=Q。降低过估计。

Dueling DQN,未考证,大致是,将Q拆分为V和A。

在实际使用中,让A的总和为0,当更新V后,则Q表中的所有值,都发生变化。

Prioritized Replay DQN,优先使用TD-error大的记忆片段。

而 Multi-step,Noisy Net,Distribution Q,不再说了,也不清楚。

最终将多种算法结合,得到Rainbow算法。

Double DQN的作用是降低过估计,而其他算法中有降低过估计的作用了(具体仍待查看,)

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • python网络爬虫(2)回顾Python编程

    把内存中的数据变为可保存和共享,实现状态保存。cPickle使用C语言编写,效率高,优先使用。如果不存在则使用pickle。pickle使用dump和dumps...

    嘘、小点声
  • java学习与应用(3.6.1)--测试、反射、注解

    Junit单元测试:黑盒测试(不关注内部逻辑,只关注输入输出),白盒测试(关注执行流程,需要些代码)。 测试类使用对应定义的测试类(测试用例,类名为XxxTes...

    嘘、小点声
  • 股市行情指标计算原理和趋势反映--量化交易1-基础

    量能也成为成交量,代表多空双方交战的过程,一定程度上决定了价格和走势。量能和价格走势进行结合,成为量价结合的分析方法。

    嘘、小点声
  • 一文看完吴恩达最新演讲精髓,人工智能部署的三大挑战及解决方案

    Andrew这次演讲的主题是「Bridging AI's Proof-of-Concept to Production Gap」,即「将人工智能的概念验证与生产...

    AI算法与图像处理
  • 使用Python往Elasticsear

    1. index 这是很简单的一个插入数据的方法,每条数据调用一个index方法,代码如下

    py3study
  • 【实战】如何使用apache ab性能工具进行压力测试

    这时候,我们就要用到apache的压力测试工具了,apache bench简称ab。

    架构师精进
  • 哎呦不错哦!一组让人眼前一亮的404创意页面设计

    原文出处: graphicdesignjunction 译文出处:优设网 WEARESPRY – 404 Error Page ? Cayenne –...

    wangxl
  • Matplotlib 学习笔记

    在 matplotlib 中,整个图像为 Figure ,而一个 Figure 中可以有多个 axes。

    zucchiniy
  • Machine Learning-模型评估与调参 ——ROC曲线

    如果需要理解ROC曲线,那你就需要先了解一下混淆矩阵了,具体的内容可以查看一下之前的文章,这里重点引入2个概念:

    Sam Gor
  • python抓取数据构建词云

    词云图,也叫文字云,是对文本中出现频率较高的“关键词”予以视觉化的展现,词云图过滤掉大量的低频低质的文本信息,使得浏览者只要一眼扫过文本就可领略文本的主旨。

    周小董

扫码关注云+社区

领取腾讯云代金券