• 学习笔记,欢迎大家一起学习讨论,如有错误还请大家批评指正

一、Sarsa 算法

推导 TD Target

  • Discounted Return定义: U t = R t + r R t + 1 + r 2 R t + 2 + r 3 R t + 3 . . . U_t=R_t+rR_{t+1}+r^2R_{t+2}+r^3R_{t+3}... Ut​=Rt​+rRt+1​+r2Rt+2​+r3Rt+3​...
    提出 r r r 可得: U t = R t + r ∗ U t + 1 U_t = R_t +r*U_{t+1} Ut​=Rt​+r∗Ut+1​

  • TD Target的推导:

    • 由于无法求出期望,所以用蒙特卡洛近似,抽样一个代表期望。
    • (蓝色箭头为严谨推导过程,不好理解的可以参考黄色箭头进行简单理解。)
  • 由于 TD Target 中包含部分真实的 r r r,所以我们认为 TD Target y t y_t yt​ 比之前的预测值 Q π ( s t , a t ) Q_{\pi}{(s_t,a_t)} Qπ​(st​,at​)更接近于真实,所以 TD Learning的核心思想就是:让 Q π ( s t , a t ) Q_{\pi}{(s_t,a_t)} Qπ​(st​,at​) 去趋近于 y t y_t yt​。

Sarsa: 表格形式

  • 表格形式 Sarsa:状态和动作是有限的;从表中读,更新完再写回表。

Sarsa:神经网络形式

  • 用神经网络 q ( s , a ; w ) q(s,a;w) q(s,a;w) 近似 Q π ( s , a ) Q_{\pi}(s,a) Qπ​(s,a) 。注意: Q π Q_{\pi} Qπ​ 与 q q q 都与 π \pi π 有关。

  • Actor-Critic 方法中的 q 网络

  • 算法:

二、Q-Learning

  • 不学习 Q π Q_{\pi} Qπ​ 而是学习 Q ∗ Q^* Q∗。
  • 用于 DQN 等。

Sarsa 与 Q-Learning 对比:

Sarsa Q-Learning
用于训练 Q π ( s , a ) Q_{\pi}(s,a) Qπ​(s,a) Q ∗ ( s , a ) Q^*(s,a) Q∗(s,a)
TD Target y t = r t + r ⋅ Q π ( s t + 1 , a t + 1 ) y_t=r_t+r{\cdot}Q_{\pi}(s_{t+1},a_{t+1}) yt​=rt​+r⋅Qπ​(st+1​,at+1​) y t = r t + r ⋅ m a x a Q ∗ ( s t + 1 , a ) y_t=r_t+r{\cdot}\underset{a}{max}Q^*(s_{t+1},a) yt​=rt​+r⋅amax​Q∗(st+1​,a)
用途 Actor-Critic方法中的Value网络 DQN

推导 Q-Learning 的 TD Target

Q-Learning 的表格形式

Q-Learning 的神经网络形式,即DQN

  • 用 Q ( s , a ; w ) Q(s,a;w) Q(s,a;w) 近似DQN的 Q ∗ ( s , a ) Q^*(s,a) Q∗(s,a)
  • 通过选出最优的动作 a t = m a x a Q ( s t , a ; w ) a_t=\underset{a}{max}Q(s_t,a;w) at​=amax​Q(st​,a;w) 控制智能体。

三、Multi-Step TD Target

  • 使用多个 r t r_t rt​ , 使用多个步骤整合成一个(如两步, 蓝色当 s t s_t st​, 黄色当 s t + 1 s_{t+1} st+1​)

  • 拓展到多步回报:

  • Multi-Step TD Targets: (m=1时即为单步的)

  • 一步的 TD target 只使用一个回报: r t r_t rt​
    m步的 TD target 使用 m 个回报: r t , r t + 1 , r t + 2 , . . . , r t + m − 1 r_t, r_{t+1}, r_{t+2}, ... , r_{t+m-1} rt​,rt+1​,rt+2​,...,rt+m−1​
    m调整合适的话, 通常效果比单步的好。

参考与感谢:

  • 王树森老师《TD Learning》:https://www.youtube.com/playlist?list=PLvOO0btloRnvWZCkAUrBbVB5ZjDI2hUAM
  • 课件:https://github.com/wangshusen/DRL
  • 讲义:https://github.com/wangshusen/DRL/blob/master/Notes_CN/chp5.pdf

时间差分算法(TD Learning)(Sarsa、Q-Learning、Multi-Step TD Target)相关推荐

  1. 说点人话的强化学习:TD算法解释,时间差分算法详解,直观理解,一定能看懂的TD算法解释

    说点人话的强化学习,想让强化学习不要那么困难 TD算法直观理解: 在强化学习中,我们一定会遇到TD算法,基本一定会看到纽约到亚特兰大开车的这个例子.但是数据是如何更新的呢?如何理解TD算法进行数据更新 ...

  2. 增强学习(五)----- 时间差分学习(Q learning, Sarsa learning)

    接下来我们回顾一下动态规划算法(DP)和蒙特卡罗方法(MC)的特点,对于动态规划算法有如下特性: 需要环境模型,即状态转移概率PsaPsa 状态值函数的估计是自举的(bootstrapping),即当 ...

  3. [强化学习实战]出租车调度-Q learning SARSA

    出租车调度-Q learning & SARSA 案例分析 实验环境使用 同策时序差分学习调度 异策时序差分调度 资格迹学习调度 结论 代码链接 案例分析 本节考虑Gym库里出租车调度问题(T ...

  4. 强化学习入门 : 一文入门强化学习 (Sarsa、Q learning、Monte-carlo learning、Deep-Q-Network等)

    最近博主在看强化学习的资料,找到这两个觉得特别适合入门,一个是"一文入门深度学习",一个是"莫烦PYTHON". 建议:看资料的时候可以多种资料一起参考,一边调 ...

  5. [PARL强化学习]Sarsa和Q—learning的实现

    [PARL强化学习]Sarsa和Q-learning的实现 Sarsa和Q-learning都是利用表格法再根据MDP四元组<S,A,P,R>:S: state状态,a: action动作 ...

  6. 强化学习(二):Q learning 算法

    强化学习(一):基础知识 强化学习(二):Q learning算法 Q learning 算法是一种value-based的强化学习算法,Q是quality的缩写,Q函数 Q(state,action ...

  7. 【强化学习笔记】从 “酒鬼回家” 认识Q Learning算法

    1.背景 现在笔者来讲一个利用Q-learning 方法帮助酒鬼回家的一个小例子, 例子的环境是一个一维世界, 在世界的右边是酒鬼的家.这个酒鬼因为喝多了,根本不记得回家的路,只是根据自己的直觉一会向 ...

  8. q learning matlab,用Matlab实现简单的Q-learning算法(学习走出房间)

    看到一个简单有趣的Q learning例子,写了段matlab代码实现一下.有兴趣的请先阅读原文 链接 dbstop if error%stop at the error if it happens ...

  9. 通过代码学 Sutton 强化学习:SARSA、Q-Learning 时序差分算法训练 CartPole

    来源 | MyEncyclopedia TD Learning本质上是加了bootstrapping的蒙特卡洛(MC),也是model-free的方法,但实践中往往比蒙特卡洛收敛更快.我们选取Open ...

最新文章

  1. openstack-neutron基本的网络类型
  2. python爬虫post请求_Python爬虫之GET和POST请求
  3. ansible(5)——使用通配符操作ansible命令
  4. 实现Callable接口通过FutureTask包装器来创建Thread线程
  5. leetcode 70. 爬楼梯(C语言)
  6. java floatmath_《Java1.doc
  7. python作者 google面试_如果Google面试让你用python写一个树的遍历程序
  8. chr(10) chr(13) chr(32)
  9. python多线程详解_Python多线程详解
  10. mybatis plug 只查id_MyBatis Generator的一个问题引发对插件的修改
  11. 三星玄龙骑士与你一同欢度JDG俱乐部四周年,让游戏体验升级
  12. 【Microsoft Azure 的1024种玩法】七.Azure云端搭建部署属于自己的维基百科
  13. u盘制作启动盘后容量变小
  14. SQL Server select 英文区分大小写
  15. c语言数字字符一起读,如何同时输入字符串和数字
  16. 笔记本显示器根据页面显示亮度自动调节亮度的问题
  17. UDS04-清除诊断信息服务【ServiceID = 0x14】
  18. webrequest、httpwebrequest、webclient、HttpClient 四个类的区别?
  19. 织梦新建php支持标签,织梦教程:新建php页面且模板支持读取标签
  20. 含泪整理最优质天空ps后期素材素材,你想要的这里都有

热门文章

  1. 企业级Hadoop大数据平台实战(1)——基础知识说明
  2. MVT框架模式的认识
  3. phpcms 开启在线编辑模板
  4. 手机尺子测量器app有哪些?分享两款计数软件给你
  5. 三星太子李在镕或面临70亿美元遗产税
  6. 日立电梯中标佛山地铁三号线、广州地铁七号线西延顺德段
  7. NBA球队实力榜:多伦多猛龙领跑 勇士升至第4
  8. *CyberC 2019 征稿第11届网络分布式计算与知识发现国际会议**投稿截止日期到6月15日
  9. hikvision firmware/固件 upgrade WI for IP camera
  10. TCP/IP与ISO/OSI的差异