强化学习笔记-12 Eligibility Traces

news/2024/5/18 21:47:32 标签: 笔记, 强化学习, TD算法

前篇讨论了TD算法将MC同Bootstrap相结合,拥有很好的特性。本节所介绍的Eligibility Traces,其思想是多个TD(n)所计算预估累积收益G_{t:t+n}按权重进行加权平均,从而得到更好的累积收益预估值。

G_t^{\lambda }=(1-\lambda )\sum_{n=1}^{\infty }\lambda^{n-1}G_{t:t+n}=(1-\lambda )\sum_{n=1}^{T-t-1 }\lambda^{n-1}G_{t:t+n} + \lambda^{T-t-1}G_{t:T}

价值预估模型的参数更新式子可以调整为:

w_{t+1}=w_t + \alpha [G_t^\lambda -v(s_t|w_t)]\partial v(s_t|w_t)

1. Off-line λ-return

从式子中可以看出,必须要在一个episode结束后,才能计算各个时刻t下的G_t^\lambda值,因此同MC算法一样,模型在episode期间参数是不更新,所以该算法称之为off-line λ-return algorithm。

从式子上看,λ-return算法可以视为通过调整\lambda值到达TD(1)~TD(n)的中间状态。当\lambda =0时,此时G_t^\lambda =G_{t:t+1},即为TD(1)。而当\lambda=1时,此时G_t^\lambda =G_{t:T},即为MC算法。

下图比较Off-line λ-return算法同TD算法效果,可以看出特别当\alpha值较高时,而n相对较少时,λ-return算法的效果要好于TD算法

2. TD(λ)

TD(λ)相比于Off-line λ-return主要有三点升级:

  • TD(λ)可以在episode期间每个时刻t都更新,因此可以加速模型训练。

  • TD(λ)的计算被平均分配在episode期间每个时刻t,而不是在episode结束后统一计算

  • TD(λ)可以于连续场景下,Off-line λ-return的G_t^\lambda计算必须要终态,否则是无法计算的

TD(λ)在每个episode开始时,会初始化eligibility trace向量z_t

z_t=\gamma \lambda z_{t-1} + \partial_w v(s_t|w_t), z_{-1}=\text{0}

价值预估模型的参数更新式子可以调整为:

w_{t+1}=w_t + \alpha \delta_t z_t,\ \delta_t=R_{t+1} + \gamma v(s_{t+1}, w_t)-v(s_t|w)

我们从式子上直观看,TD(λ)实际上是添加梯度更新的动量,其同Momentum优化器思想是相似的。下图比较了TD(λ)和Off-line λ-return算法,可以看出当\alpha较大时,TD(λ)效果是不如的,但当\alpha较小时,两者的效果是接近的。

 3. The Online λ-return Algorithm

对于某些连续场景(没有终态),很难直接通过Off-line λ-return进行计算,Truncated λ-return方法通过某个固定窗口h来截断,此时就不需要等待episode结束后才能更新。

G_t^{\lambda }=(1-\lambda )\sum_{n=1}^{h-t-1 }\lambda^{n-1}G_{t:t+n} + \lambda^{h-t-1}G_{t:T},\ h \leq T

基于这种思想,Online λ-return算法在episode期间时刻t都可以根据当前,通过Truncated λ-return来更新模型参数。假设当前位于某episode的时刻h,此时会进行如下更新过程:

\left\{\begin{matrix} w_1^h=w_0^h+\alpha [G_{0:h}^\lambda -v(s_0|w_0)]\partial v(s_0|w_0) \\ ... \\w_{t+1}^h=w_{t}^h+\alpha [G_{t:h}^\lambda -v(s_t|w_t)]\partial v(s_t|w_t) \\... \\ w_{h}^h=w_{h-1}^h+\alpha [G_{h-1:h}^\lambda -v(s_{h-1}|w_{h-1})]\partial v(s_{h-1}|w_{h-1}) \end{matrix}\right.

可以看出仅在episode的时刻h就涉及了h次参数更新,Online λ-return算法相比于offline方法,其计算量是指数级提升,但是从下图的效果比较上看,Online λ-return方法是要优于offline方法的。

4. True Online TD(λ)

 


http://www.niftyadmin.cn/n/433376.html

相关文章

C/C++ system()函数的常用参数详解

目录 前言 一、常用推荐 二、文件操作 三、系统操作 总结 前言 system()函数适用于C/C程序调用操作系统命令,在我们的C编程中会经常被使用。这里详细记录一下C编程中system()函数的常用参数。 一、常用推荐 pause:暂停批处理文件的处理并显示消息 col…

Debezium系列之:为Debezium集群JMX页面增加监控,JMX页面出现异常时发送飞书告警,确保任务能够获取debezium集群指标

Debezium系列之:为Debezium集群JMX页面增加监控,JMX页面出现异常时发送飞书告警,确保任务能够获取debezium集群指标 一、需求背景二、相关技术博客三、监控JMX页面状态四、发送飞书告警五、定时执行脚本六、告警效果展示七、总结和延展一、需求背景 下游任务需要使用Debeziu…

C语言-函数

一、函数的概念 函数是c语言的功能单位,实现一个功能可以封装一个函数来实现。 定义函数的时候一切以功能为目的,根据功能去定函数的参数和返回值。 函数就是讲特定功能的代码封装在一个函数内部,当要使用这些代码时,只需要通过…

华为OD机试真题 JavaScript 实现【最左侧冗余覆盖子串】【2023Q2 100分】

一、题目描述 给定两个字符串 s1 和 s2 和正整数k,其中 s1 长度为 n1,s2 长度为 n2, 在s2中选一个子串,满足: 该子串长度为n1k;该子串中包含s1中全部字母;该子串每个字母出现次数不小于s1中对应的字母&am…

回溯算法之广度优先遍历

目录 迷宫问题 N叉树的层序遍历 腐烂的橘子 单词接龙 最小基因变化 打开转盘锁 迷宫问题 假设有一个迷宫,里面有障碍物,迷宫用二维矩阵表示,标记为0的地方表示可以通过,标记为1的地方表示障碍物,不能通过。现在给一…

不同等级的高速PCB工程师,薪资差距有多大?

高速PCB设计在现代电子领域中扮演着很重要的角色,而高速PCB工程师的技能水平和经验对于项目的成功至关重要,下面本文将从地区分布、薪资水平、工作内容等多方面讨论对比不同等级的高速PCB工程师。 NO.1 初级高速PCB工程师 ①薪资水平 初级高速PCB工程师…

如何做好软件开发项目管理?

软件越来越多地出现在我们的生活中。为了快速向大众提供这些产品,软件公司必须知道如何有效管理他们的软件项目。 本文将讨论软件项目管理的重要性,以及投资软件项目管理平台的一些好处。 什么是软件开发的项目管理? 软件项目是创建完整的…

【无穷编程,有限生命】

程序员的悲哀可能有以下几个方面: 编写代码的孤独感:程序员常常需要独自完成编写、调试代码的工作,这样的孤独感会让他们感到空虚和焦虑。 代码修改与维护的无尽循环:一旦代码被部署,就会出现各种问题和bug&#xff0…