强化学习笔记-06 Temporal-Difference TD时分学习

news2024/11/26 2:50:58

本文是博主对《Reinforcement Learning- An introduction》的阅读笔记,不涉及内容的翻译,主要为个人的理解和思考。

TD学习是现代强化学习方法的核心,其是蒙特卡罗法和动态规划法的结合,一方面,其同蒙特卡罗法一样,不需要对于环境完全了解,而是通过从环境交互中学习,另一方面,其类似于动态规划法,根据前一轮的估计中去更新新一轮的估计,而不需要像蒙特卡罗法通过最终的reward来估计更新。可以看出TD学习仍然是类似于generalized policy iteration (GPI) 过程,相比于蒙特卡罗法和动态规划法,其核心不同点在于价值函数的估计。

1. TD学习的预估

首先我们考虑上一节所讨论的蒙特卡罗法的价值估计函数,将其改下为如下迭代更新过程,即新一轮的估计通过前一轮的估计去更新。此时如果更新因子\alpha设置为固定时,称为固定步长的MC方法。

\\ Q_n(s,a)=\frac{\sum_{k=0}^n \rho_k(s,a)G_k(s,a) }{\sum_{k=0}^n \rho_k(s,a)} \\ =\frac{\sum_{k=0}^{n-1} \rho_k(s,a)G_k(s,a) + \rho_n(s,a)G_n(s,a)}{\sum_{k=0}^{n-1} \rho_k(s,a)}\frac{\sum_{k=0}^{n-1} \rho_k(s,a) }{\sum_{k=0}^{n} \rho_k(s,a)} \\ =(Q_{n-1}(s,a)+\frac{\rho_n(s,a)G_n(s,a)}{\sum_{k=0}^{n-1} \rho_k(s,a)})(1-\frac{\rho_n(s,a)}{\sum_{k=0}^{n} \rho_k(s,a)})\\ =Q_{n-1}(s,a) + \frac{\rho_n(s,a)}{\sum_{k=0}^{n} \rho_k(s,a)}(G_n(s,a)-Q_{n-1}(s,a))\\ =Q_{n-1}(s,a) + \alpha (G_n(s,a)-Q_{n-1}(s,a))

此时再考虑动态规划中求解累积收益G的公式,此时s',a'表示下一状态和动作,R表示reward

G_n(s,a)=R + \gamma Q_\pi (s', a')

此时迭代更新的公式可以改写为

\\ Q_{n}(s,a)=Q_{n-1}(s,a) + \alpha (G_n(s,a)-Q_{n-1}(s,a))\\ =Q_{n-1}(s,a) + \alpha (R+\gamma Q_\pi (s',a')-Q_{n-1}(s,a))

其中Q_\pi (s',a')表示最优决策\pi下,这个是不可知的,因此我们只能用当前已知的Q_{n-1} (s',a')来求解。因此这个之间会存在一定偏差。但是我们可以推出当\gamma <1时,这个偏差是可以收敛的。假设\delta_t = R_{t+1}+\gamma Q(S_{t+1},A_{t+1})-Q(S_{t},A_{t}),此时偏差可以写为:

G(S_t,A_t)-Q(S_t,A_t)=R_{t+1} +\gamma G(S_{t+1},A_{t+1})-Q(S_t,A_t) + \gamma Q(S_{t+1},A_{t+1})-\gamma Q(S_{t+1},A_{t+1})\\ =R_{t+1} +\gamma Q(S_{t+1},A_{t+1})-Q(S_t,A_t) + \gamma (G(S_{t+1},A_{t+1})- Q(S_{t+1},A_{t+1}))\\ =\sum_{k=t}^{T-1} \gamma^{k-1}\delta

特别是当更新因子\alpha设置为较少的值时,这个偏差是近似的,理论证明可以收敛到最优的决策函数。

TD学习其结合了动态规划和蒙特卡罗的优点,一方面其不需要对环境建模,另一方面其不需要像蒙特卡罗法一样,需要等待完整采样一轮样本,因此对于一些一轮时间太长或者成本太高的情况下,采用TD学习能加快学习。 

我们完整描述上述的TD学习方法的初始版本,也称之为Sarsa (on-policy TD control)

2. Off-policy

在上一节我们对于累积收益G的估计是真实下一轮状态s'和动作a'确定的,这种方式称为on-policy策略,实际上我们可以参考上一章中off-policy策略,不采用下一轮真实状态,而根据现有价值函数预估一个状态和动作,一种直观的方式是,这种方式也被称为Q-learning。

G(s,a)=R + \gamma \text{max}_{\hat{a}}\ Q (s', \hat{a})

但是取max会带来所谓的Maximization Bias,其是因为取argmax的值往往会大于其实际期望值,即:

\text{max}_{\hat{a}}\ Q (s', \hat{a})\geq E(Q (s', a))\approx Q_\pi(s',a')

因此一方式是不取最大值,而是取期望,即所谓的Expected Sarsa方法,其相较于前者,可以更好地消除随机选择动作所带来的方差,因此会有更为稳定的效果,但同时求期望也增加了计算成本

G(s,a)=R + \gamma \sum_{\hat{a}}\pi(\hat{a}|s')Q (s', \hat{a})

 还有一种方式称为Double Q-learning,其认为Maximization Bias主要是由于分布所带来(有大于期望概率,必然会有小于期望的概率),因为其通过两个独立的Q分布来扭正这个偏差。

G(s,a)=R + \gamma Q_1 (s', \text{argmax}_{\hat{a}}\ Q_2 (s', \hat{a}))

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/538973.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

opengauss的pull-request

一个pull-request其实是一个分支&#xff0c;而不是一个提交&#xff0c;所以一个pull-request里可以容纳多个提交&#xff0c;pull-request的提交过程原理很像&#xff08;应该就是&#xff09;rebase一个分支&#xff0c;然后将这个分支合入目标分支。 下面是我修改代码并且…

【软件测试】软件测试岗位会越来越少吗?

我的整体意见是测试岗位不会变少&#xff0c;反而相对于其他岗位会变的更重要一些。 首先纠正一个非常非常错误的观念。测试和测试开发是两个岗位&#xff1f;No&#xff0c;不是的。测试开发是属于测试的。 测试开发只不过是使用类似于开发的技术和能力&#xff0c;来达到测…

第十四章 使用Postfix与Dovecot部署邮件系统

文章目录 第十四章 使用Postfix与Dovecot部署邮件系统一、电子邮件系统1、常见的邮件协议2、注意事项 二、部署电子邮件系统1、部署基础的电子邮件系统&#xff08;1&#xff09;、配置服务器主机名称&#xff08;2&#xff09;、配置服务器的DNS地址&#xff08;3&#xff09;…

GDPU C语言 天码行空12 (未完待续)

&#x1f351; C语言实验专栏 编程题 1. 统计文本文件中各类字符的个数 &#x1f351; C语言读写文件 #include <stdio.h> #include<ctype.h> //判断字符类型函数的头文件int main() {FILE *fp1 NULL,*fp2 NULL;fp1 fopen("f1.txt", "w")…

MyBatis练习

阅读教程实例&#xff0c;我们了解原理后可以自己模仿地写一个程序练练手。 1、创建表&#xff0c;然后手动导入数据 create table four kings (id int primary key,name varchar(4) ,idea varchar(20) )CHARSETutf8;; 2、 写一个实体类&#xff0c;对应数据库的表 package …

什么是网络自动化?有多重要?

什么是网络自动化 网络自动化是在网络环境中实现网络和安全自动化的方法&#xff0c;通过减少人力工作量和人为错误来最大限度地提高效率。 网络自动化是自动化每个网络任务&#xff08;如配置管理、备份和监控&#xff09;的过程&#xff0c;以实现管理大型网络基础架构的最…

小红薯评/论数据采集工具

一、小红薯【评/论】采集工具链接&#xff1a; http://106.53.68.168:9920/xhs-comment-spider 二、使用方式 1、打开网页链接后&#xff0c;按照网页各步骤提示进行操作即可。 2、采集数据时&#xff0c;页面右上角显示【RUNNING】代表在运行中&#xff0c;采集结束后&#xf…

【软件测试】初级测试,如何走向中高级软件测试?

关于软件测试这几年是越来越红火&#xff0c;待遇对于其他行业也是非常的高&#xff0c;万八千的待遇很正常&#xff0c;而现在软件测试行业等级越来越专业化&#xff0c;对软件测试工程师的要求也是越来越高&#xff0c;软件测试工程师一般会分为初级软件测试工程师&#xff0…

Web身份验证(WebAuthn)

目录 1、WebAuthn简介 2、FIDO2&#xff1a;客户端到验证器协议&#xff08;CTAP&#xff09; 3、浏览器和平台 4、Web身份验证API 基本流程 5、使用 WebAuthn API 5.1 注册WebAuthn凭据 5.2使用WebAuthn凭据进行身份验证 6、 WebAuthn演示&#xff08;注册和认证&…

IO 与进程线程

IO进程 scanf\printf:终端 IO&#xff1a;input/output&#xff0c;文件 标准IO 文件IO 文件属性获取&#xff1a;ls -l 文件类型 文件权限 链接数 用户名 组名 大小 时间 文件名 目录操作&#xff1a;ls 库 进程 进程&#xff1a;创建进程 线程&#xff1a;创建线程…

36、Adaptive Forms(4)Create Adapt Form

文章目录 36、Adaptive Forms&#xff08;4&#xff09;Create Adapt FormData Model服务配置创建Adapt Form Template创建Adapt Form 36、Adaptive Forms&#xff08;4&#xff09;Create Adapt Form DataModel创建好后&#xff0c;就可以进行数据的获取和存储。 Data Model…

抖音seo源码开发/技术自研底层逻辑

抖音seo霸屏&#xff0c;是一种专为抖音视频创作者和传播者打造的视频批量剪辑&#xff0c;批量分发产品。使用抖音seo霸屏软件&#xff0c;可以帮助用户快速高效的制作出高质量的优质视频。 使用方法&#xff1a;1. 了解用户的行为习惯 2. 充分利用自身资源进行开发 3. 不…

开心档之Java 基本数据类型

Java 基本数据类型 目录 Java 基本数据类型 内置数据类型 实例 实例 类型默认值 实例 引用类型 Java 常量 自动类型转换 自动类型转换 实例 强制类型转换 实例 隐含强制类型转换 变量就是申请内存来存储值。也就是说&#xff0c;当创建变量的时候&#xff0c;需…

4.5.1 虚拟局域网(一)

4.5.1 虚拟局域网&#xff08;一&#xff09; 一、虚拟局域网的划分 虚拟局域网的划分是非常灵活的&#xff0c;可以根据端口进行划分&#xff0c;也可以根据MAC地址进行划分&#xff0c;也可以根据网络层协议进行划分甚至根据IP组播进行划分。 &#xff08;一&#xff09;基…

百度工程师移动开发避坑指南——内存泄漏篇

作者 | 启明星小组 在日常编写代码时难免会遇到各种各样的问题和坑&#xff0c;这些问题可能会影响我们的开发效率和代码质量&#xff0c;因此我们需要不断总结和学习&#xff0c;以避免这些问题的出现。接下来我们将围绕移动开发中常见问题做出总结&#xff0c;以提高大家的开…

【Prompting】ChatGPT Prompt Engineering开发指南(6)

ChatGPT Prompt Engineering开发指南&#xff1a;Expanding/The Chat Format Expanding自定义对客户电子邮件的自动回复提醒模型使用客户电子邮件中的详细信息 The Chat Format总结内容来源 在本教程中&#xff0c;第一部分学习生成客户服务电子邮件&#xff0c;这些电子邮件是…

前端(HTML)

网络传输三大基石:URL,HTTP,HTML 前端使用URL利用HTTP协议去向服务器端发送请求某个资源&#xff0c;服务器端响应浏览器一个HTML页面&#xff0c;浏览器对HTML页面解析 HTML的标准结构: 【1】先用普通文本文档新建一个文本&#xff0c;将文本的后缀改为.html 或者 .htm 我…

chatgpt赋能Python-mac版的python怎么用

Mac版Python的使用指南 Python是一种高级编程语言&#xff0c;常用于Web开发、数据分析、机器学习等领域。在Mac系统上&#xff0c;Python的安装和使用非常方便。本文将介绍如何在Mac上安装和使用Python并演示几个常见的Python用例。 Python在Mac上的安装 Mac电脑自带Python…

springboot+jsp+javaweb学生信息管理系统 05hs

springboot是基于spring的快速开发框架, 相比于原生的spring而言, 它通过大量的java config来避免了大量的xml文件, 只需要简单的生成器便能生成一个可以运行的javaweb项目, 是目前最火热的java开发框架 &#xff08;1&#xff09;管理员模块&#xff1a;系统中的核心用户是管…

蓝牙耳机什么牌子的好用?发烧友实测2023年蓝牙耳机排名

从AirPods入坑蓝牙耳机开始&#xff0c;断断续续已经买过二十多款蓝牙耳机了&#xff0c;我每天都会逛逛数码板块&#xff0c;最近看到了2023年蓝牙耳机排名&#xff0c;为检验是否名副其实&#xff0c;我购入了排名前五的品牌进行了一个月的测试&#xff0c;接下来我就来分享一…