这篇笔记依然属于TD算法的范畴。Multi-Step-TD-Target 是对 TD算法的改进。

9. Multi-Step-TD-Target

9.1 Review Sarsa & Q-Learning

  1. Sarsa

    • 训练 动作价值函数 \(Q_\pi(s,a)\);
    • TD Target 是 \(y_t = r_t + \gamma\cdot Q_\pi(s_{t+1},a_{t+1})\)
  2. Q-Learning
    • 训练 最优动作价值函数 Q-star;
    • TD Target 是 \(y_t = r_t +\gamma \cdot \mathop{max}\limits_{a} Q^*({s_{t+1}},a)\)
  3. 注意,两种算法的 TD Target 的 r 部分 都只有一个奖励 \(r_t\)
  4. 如果用多个奖励,那么 RL 的效果会更好;Multi-Step-TD-Target就是基于这种考虑提出的。

在第一篇强化学习的基础概念篇中,就提到过,agent 会观测到以下这个轨迹:

我们之前只使用一个 transition 来记录动作、奖励,并且更新 TD-Target。一个 transition 包括\((s_t,a_t,s_{t+1},r_t)\),只有一个奖励 \(r_t\)。(如上图蓝框所示)。

这样算出来的 TD Target 就是 One Step TD Target。

其实我们也可以一次使用多个 transition 中的奖励,得到的 TD Target 就是 Multi-Step-TD-Target。如下图蓝框选择了两个 transition,同理接下来可以选后两个 transition

9.2 多步折扣回报

Multi-Step Return.

折扣回报公式为:\(U_t=R_t+\gamma\cdot{U_{t+1}}\);

这个式子建立了 t 时刻和 t+1 时刻的 U 的关系,为了得到多步折扣回报,我们递归使用这个式子:

\(U_t=R_t+\gamma\cdot{U_{t+1}}\\=R_t+\gamma\cdot(R_{t+1}+\gamma\cdot{U_{t+2}})\\=R_t+\gamma\cdot{R_{t+1}}+\gamma^2\cdot{U_{t+2}}\)

这样,我们就可以包含两个奖励,同理我们可以有三个奖励......递归下去,包含 m个奖励为:

\(U_t=\sum_{i=0}^{m-1}\gamma^i\cdot{R_{t+i}}+\gamma^m\cdot{U_{t+m}}\)

即:回报 \(U_t\) 等于 m 个奖励的加权和,再加上 \(\gamma^m\cdot{U_{t+m}}\),后面这一项称为 多步回报

现在我们推出了 多步的 \(U_t\) 的公式,进一步可以推出 多步 \(y_t\) 的公式,即分别对等式两侧求期望,使随机变量具体化

  1. Sarsa 的 m-step TD target:

    \(y_t=∑_{i=0}^{m−1}\gamma^i\cdot r_{t+i}+\gamma^m\cdot{Q_\pi}(s_{t+m},a_{t+m})\)

    注意:m=1 时,就是之前我们熟知的标准 TD Target。

    多步的 TD Target 效果要比 单步 好。

  2. Q-Learning 的 m-step TD target:

    \(y_t = \sum_{i=0}^{m-1}\gamma^i{r_{t+i}}+\gamma^m\cdot\mathop{max}\limits_{a} Q^*({s_{t+m}},a)\)

    同样,m=1时,就是之前的TD Target。

9.3 单步 与 多步 的对比

  • 单步 TD Target 中,只使用一个奖励 \(r_t\);

  • 如果用多步TD Target,则会使用多个奖励:\(r_t,r_{t+1},...,r_{t+m-1}\)

    联想一下第二篇 价值学习 的旅途的例子,如果真实走过的路程占比越高,不考虑 “成本” 的情况下,对于旅程花费时间的估计可靠性会更高。

  • m 是一个超参数,需要手动调整,如果调的合适,效果会好很多。

x. 参考教程

最新文章

  1. Excel——使用OFFSET、MATCH、COUNTA实现二级菜单
  2. VR的世界里没有雾霾!暴风魔镜发布Matrix一体机
  3. MMORGP大型游戏设计与开发(客户端架构 part13 of vegine)
  4. HTTP权威指南阅读笔记五:Web服务器
  5. JavaWeb学习之Servlet(一)----MyEclipse及Tomcat的配置
  6. 制作OpenStack用的RHEL7系统镜像
  7. HDU1535——Invitation Cards(最短路径:SPAF算法+dijkstra算法)
  8. 陈正冲老师讲c语言之const关键字
  9. 腾讯TGideas语义化标签(转)
  10. 华为OJ:计算两个自然时间相加
  11. Nginx+keepalive局域网其它主机ping vip不通
  12. Dynamics CRM 检测访问CRM延迟及带宽的工具
  13. Loj #2331. 「清华集训 2017」某位歌姬的故事
  14. Nginx+rtmp+ffmpeg 搭建推流服务器
  15. 分布式追踪系统sleauth+zipkin
  16. PHP生成当前月份包括最近12个月内的月份
  17. git 实战
  18. 马上AI全球挑战者大赛-违约用户风险预测
  19. 《Android进阶之光》--RxJava实现RxBus
  20. 基于CentOS 搭建 FTP 文件服务

热门文章

  1. 数据建模软件Chiner,颜值与实用性并存
  2. HTML中的Hack手段之条件注释
  3. 00. 初次使用(系统安装+ssh连接)
  4. vue2响应式原理与vue3响应式原理对比
  5. XCTF练习题---MISC---intoU
  6. STM8S103F3P6 开发环境笔记
  7. ubuntu 18及以上版本配置IP的方法,你get了吗
  8. Ansible的参数介绍
  9. controller-tool的简单使用
  10. Redis设计与实现3.3:集群