这篇笔记依然属于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. 参考教程

强化学习-学习笔记9 | Multi-Step-TD-Target的更多相关文章

  1. 强化学习读书笔记 - 06~07 - 时序差分学习(Temporal-Difference Learning)

    强化学习读书笔记 - 06~07 - 时序差分学习(Temporal-Difference Learning) 学习笔记: Reinforcement Learning: An Introductio ...

  2. 强化学习读书笔记 - 09 - on-policy预测的近似方法

    强化学习读书笔记 - 09 - on-policy预测的近似方法 参照 Reinforcement Learning: An Introduction, Richard S. Sutton and A ...

  3. 强化学习读书笔记 - 02 - 多臂老O虎O机问题

    # 强化学习读书笔记 - 02 - 多臂老O虎O机问题 学习笔记: [Reinforcement Learning: An Introduction, Richard S. Sutton and An ...

  4. 强化学习读书笔记 - 13 - 策略梯度方法(Policy Gradient Methods)

    强化学习读书笔记 - 13 - 策略梯度方法(Policy Gradient Methods) 学习笔记: Reinforcement Learning: An Introduction, Richa ...

  5. 强化学习读书笔记 - 12 - 资格痕迹(Eligibility Traces)

    强化学习读书笔记 - 12 - 资格痕迹(Eligibility Traces) 学习笔记: Reinforcement Learning: An Introduction, Richard S. S ...

  6. 强化学习读书笔记 - 10 - on-policy控制的近似方法

    强化学习读书笔记 - 10 - on-policy控制的近似方法 学习笔记: Reinforcement Learning: An Introduction, Richard S. Sutton an ...

  7. 强化学习读书笔记 - 05 - 蒙特卡洛方法(Monte Carlo Methods)

    强化学习读书笔记 - 05 - 蒙特卡洛方法(Monte Carlo Methods) 学习笔记: Reinforcement Learning: An Introduction, Richard S ...

  8. 深度学习课程笔记(十四)深度强化学习 --- Proximal Policy Optimization (PPO)

    深度学习课程笔记(十四)深度强化学习 ---  Proximal Policy Optimization (PPO) 2018-07-17 16:54:51  Reference: https://b ...

  9. 深度学习课程笔记(十三)深度强化学习 --- 策略梯度方法(Policy Gradient Methods)

    深度学习课程笔记(十三)深度强化学习 --- 策略梯度方法(Policy Gradient Methods) 2018-07-17 16:50:12 Reference:https://www.you ...

  10. 强化学习读书笔记 - 11 - off-policy的近似方法

    强化学习读书笔记 - 11 - off-policy的近似方法 学习笔记: Reinforcement Learning: An Introduction, Richard S. Sutton and ...

随机推荐

  1. 移动端web开发技巧

    META相关 1. 添加到主屏后的标题(IOS)

  2. Xcode5中如何切换Storyboards为xib

    在Xcode5中,当创建一个带View的iPhone项目时,默认必须使用Storyboards,不再支持切换xib的checkbox.本文讲解如何手动切换到使用xib来布局. 1,把Main.stor ...

  3. C#两路list数组归并去重

    两个相同类型已排序数据进行合并,虽然list数组中有AddRange方法,但它只是把第二个数组从第一个数组末尾插入,假如两个数组有重复数据,保存进去.还有Union方法合并去重,首先会从第一个数组进行 ...

  4. Python @property 方法

    考察 Student 类: class Student(object): def __init__(self, name, score): self.name = name self.score = ...

  5. Openstack基础环境交换机常用配置(CISCO 3750G为例)

    NOTE: 用户模式提示符为:cisco> 特权模式提示符为:cisco# 全局配置模式提示符为:cisco(config)# 端口模式提示符为:cisco(config-if)# 基础操作   ...

  6. PyQt5信号、定时器及多线程

    信号 信号是用于界面自动变化的一个工具,原理是信号绑定了一个函数,当信号被触发时函数即被调用 举个例子 from PyQt5 import QtWidgets,QtCore from untitled ...

  7. iOS开发笔记-根据frame大小动态调整fontSize的自适应文本及圆形进度条控件的实现

    最近同样是新App,设计稿里出现一种圆形进度条的设计,如下: 想了想,圆形进度条实现起来不难,但是其中显示百分比的文本确需要自适应,虽然可以使用时自己设定文本字体的大小,但是这样显得很麻烦,也很low ...

  8. Kafka实战解惑

    目录 一. kafka简介二. Kafka架构方案三. Kafka安装四. Kafka Client API 4.1 Producers API 4.2 Consumers API 4.3 消息高可靠 ...

  9. C#实现.Net对邮件进行DKIM签名和验证,支持附件,发送邮件签名后直接投递到对方服务器(无需己方邮件服务器)

    项目地址 https://github.com/xiangyuecn/DKIM-Smtp-csharp 主要支持 对邮件进行DKIM签名,支持带附件 对整个邮件内容(.eml文件)的DKIM签名进行验 ...

  10. C#加解密算法

    先附上源码 加密解密算法目前已经应用到我们生活中的各个方面 加密用于达到以下目的: 保密性:帮助保护用户的标识或数据不被读取. 数据完整性:帮助保护数据不被更改. 身份验证:确保数据发自特定的一方. ...