时间差分算法(TD Learning)(Sarsa、Q-Learning、Multi-Step TD Target)
- 学习笔记,欢迎大家一起学习讨论,如有错误还请大家批评指正
一、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+1TD 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⋅amaxQ∗(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=amaxQ(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)相关推荐
- 说点人话的强化学习:TD算法解释,时间差分算法详解,直观理解,一定能看懂的TD算法解释
说点人话的强化学习,想让强化学习不要那么困难 TD算法直观理解: 在强化学习中,我们一定会遇到TD算法,基本一定会看到纽约到亚特兰大开车的这个例子.但是数据是如何更新的呢?如何理解TD算法进行数据更新 ...
- 增强学习(五)----- 时间差分学习(Q learning, Sarsa learning)
接下来我们回顾一下动态规划算法(DP)和蒙特卡罗方法(MC)的特点,对于动态规划算法有如下特性: 需要环境模型,即状态转移概率PsaPsa 状态值函数的估计是自举的(bootstrapping),即当 ...
- [强化学习实战]出租车调度-Q learning SARSA
出租车调度-Q learning & SARSA 案例分析 实验环境使用 同策时序差分学习调度 异策时序差分调度 资格迹学习调度 结论 代码链接 案例分析 本节考虑Gym库里出租车调度问题(T ...
- 强化学习入门 : 一文入门强化学习 (Sarsa、Q learning、Monte-carlo learning、Deep-Q-Network等)
最近博主在看强化学习的资料,找到这两个觉得特别适合入门,一个是"一文入门深度学习",一个是"莫烦PYTHON". 建议:看资料的时候可以多种资料一起参考,一边调 ...
- [PARL强化学习]Sarsa和Q—learning的实现
[PARL强化学习]Sarsa和Q-learning的实现 Sarsa和Q-learning都是利用表格法再根据MDP四元组<S,A,P,R>:S: state状态,a: action动作 ...
- 强化学习(二):Q learning 算法
强化学习(一):基础知识 强化学习(二):Q learning算法 Q learning 算法是一种value-based的强化学习算法,Q是quality的缩写,Q函数 Q(state,action ...
- 【强化学习笔记】从 “酒鬼回家” 认识Q Learning算法
1.背景 现在笔者来讲一个利用Q-learning 方法帮助酒鬼回家的一个小例子, 例子的环境是一个一维世界, 在世界的右边是酒鬼的家.这个酒鬼因为喝多了,根本不记得回家的路,只是根据自己的直觉一会向 ...
- q learning matlab,用Matlab实现简单的Q-learning算法(学习走出房间)
看到一个简单有趣的Q learning例子,写了段matlab代码实现一下.有兴趣的请先阅读原文 链接 dbstop if error%stop at the error if it happens ...
- 通过代码学 Sutton 强化学习:SARSA、Q-Learning 时序差分算法训练 CartPole
来源 | MyEncyclopedia TD Learning本质上是加了bootstrapping的蒙特卡洛(MC),也是model-free的方法,但实践中往往比蒙特卡洛收敛更快.我们选取Open ...
最新文章
- openstack-neutron基本的网络类型
- python爬虫post请求_Python爬虫之GET和POST请求
- ansible(5)——使用通配符操作ansible命令
- 实现Callable接口通过FutureTask包装器来创建Thread线程
- leetcode 70. 爬楼梯(C语言)
- java floatmath_《Java1.doc
- python作者 google面试_如果Google面试让你用python写一个树的遍历程序
- chr(10) chr(13) chr(32)
- python多线程详解_Python多线程详解
- mybatis plug 只查id_MyBatis Generator的一个问题引发对插件的修改
- 三星玄龙骑士与你一同欢度JDG俱乐部四周年,让游戏体验升级
- 【Microsoft Azure 的1024种玩法】七.Azure云端搭建部署属于自己的维基百科
- u盘制作启动盘后容量变小
- SQL Server select 英文区分大小写
- c语言数字字符一起读,如何同时输入字符串和数字
- 笔记本显示器根据页面显示亮度自动调节亮度的问题
- UDS04-清除诊断信息服务【ServiceID = 0x14】
- webrequest、httpwebrequest、webclient、HttpClient 四个类的区别?
- 织梦新建php支持标签,织梦教程:新建php页面且模板支持读取标签
- 含泪整理最优质天空ps后期素材素材,你想要的这里都有