强化学习的数学原理:时序差分算法

概述

之前第五次课时学习的 蒙特卡洛 的方法是全课程当中第一次介绍的第一种 model-free 的方法,而本次课的 Temporal-Difference Learning 简称 TD learning (时序差分算法)就是第二种 model-free 的方法。而对于 蒙特卡洛方法其是一种 non-incremental 的方法,而 TD 则是一种 incremental 的方法。

另外下一节课讲 Value Function Approximation 值函数近似 这一节时,也是基于本节课要讲的 TD 方法,只不过本节课的 TD 方法是基于 table 的,即 tabular representation(表格表示法)。而下一节课的则是基于 function 的 representation。非常经典的 Deep Q learning 也会在下一节课中介绍。

本节课大纲如下:

在这里插入图片描述

Motivating examples

在这一部分我们会考虑几个例子,然后使用上节课中的 RM 算法来进行求解,这是为了建立上节课和这节课之间的关系,这样就不会在学习 TD 算法的时候觉得唐突了。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

小结一下:

在这里插入图片描述

TD learning of state values

接下来我们介绍第一种 TD 算法,对于 TD 算法我们首先要明确它是在干嘛,它是在求解一个给定的策略 Π 的 state value,为什么要求解这个 state value 呢?是因为求解出来之后我们就做了 policy evaluation,那么之后和 policy improvement 相结合,我们就可以去找最优的策略了。

首先要注意的是,TD 算法其实既可以指一大类的这样一个算法,像本节课讲的所有算法都属于 TD 算法,包括 Q-learning,但是我们接下来要讲的这个 TD 算法是最经典最原始的一种 TD 算法,其就是用来估计 state value 的,有一个非常明确的表达式,所以这个时候的 TD 算法指的是一个特定的算法,要注意区分。

直接给出该算法,然后再慢慢分析:

在这里插入图片描述

可以看见上图中 TD 算法有两个式子,其中第一个表达式后面会说,先看第二个表达式,第二个式子的意思是在 t 时刻的时候不是已经访问了 st 了吗?那么所有其它的状态都没有被访问,那所有没被访问的话它的 v 是保持不动的,所以 V(t+1)(s) = V(t)。实际上平时在其它地方看到 TD 算法的时候是看不到第二个式子的,因为第二个式子是隐含掉了。

那么接下来仔细分析一下第一个式子:

在这里插入图片描述

接下来我们分析 TD target 和 TD error 该怎么理解。

在这里插入图片描述

在这里插入图片描述

下面是 TD 算法的一些基本的性质:

在这里插入图片描述

TD 算法究竟在干一个什么事情呢?它实际上就是我要给定一个策略,然后我要估计出它的 state value,所以我们刚才介绍的这个 TD 算法它只是来估计 state value,只是来做 policy evaluation 这个事情,那么它不能做什么呢?它不能来估计 action value,它也不能直接搜索到最优的策略。

但是在这个基础之上,我们马上会介绍一系列的 TD 算法,然后它们能够来估计 action value,并且和 policy improvement 的这一个步骤相结合,就能够来搜索最优的策略。

因此刚才所介绍的这个 TD 算法虽然非常简单,但是它是后面一系列算法的基础。

最后再从数学上来看一下 TD 算法到底在干什么:

在这里插入图片描述

其实就是为了解决在没有模型的情况下求解一个给定策略 Π 的贝尔曼公式。

接下来就是一些数学证明:

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

TD learning of action values:Sarsa

在这里插入图片描述

在上一小节当中我们介绍的 TD 算法是用来估计一个给定策略的 state value。我们知道在我们要去改进策略的时候我们是需要估计出 action value 的,这样哪一个 action value 大我们就选择哪一个作为新的策略。而上一节中的 TD 算法显然不能估计 action value,因此我们使用到 Sarsa 算法来完成这个事情。

Sarsa 估计出来 action value 之后其实际上在做的也就是 policy evaluation,就是你给我一个策略我怎么把策略的 action value 给估计出来,但这个还是不能找到最优的策略,而强化学习的目的是要找到最优的策略,怎么办?可以把 Sarsa policy evaluation 这个算法和 policy improvement 那个算法相结合起来,这样就可以找到最优的策略。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

下面就是将 Sarsa 和 policy improvement 结合起来实现的伪代码:

在这里插入图片描述

大多数情况下大家听到的 Sarsa 算法基本都是把 policy evaluation 和 policy improvement 这两个结合之后的方法。

在这里插入图片描述

例子例证 Sarsa:

在这里插入图片描述

在这里插入图片描述

TD learning of action values: Expected Sarsa

在这里插入图片描述

在这里插入图片描述

TD learning of action values: N-step Sarsa

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

TD learning of action values: Q-Learning

接下来就来到了 Q-learning,万众瞩目的时刻,Q-learning 是非常非常经典的一种算法,直到今天Q-learning也在被广泛地使用,当然指的是 Deep Q-learning,也就是 Q-learning 的一种变形。

Q-learning 和 Sarsa 以及之前介绍的算法主要有什么区别呢?

从数学上说,Q-learning 是直接估计 optimal action value,所以它不需要去做 policy evaluation 和 policy improvement 这两个之间来回交替运行,因为它直接就把最优的 action value 给估计出来了。

在这里插入图片描述

在这里插入图片描述

Q-learning 求解的是贝尔曼最优方程,但是这个贝尔曼最优方程和之前所介绍的贝尔曼最优方程不一样,这里面第一个是它有一个 expectation,第二个是它不是基于 state value 而是基于 action value的。尽管如此,但它依然是一个贝尔曼最优方程,证明可以参考赵老师的书籍。

我们只要知道 Q-learning 实际上就是求解这样一个贝尔曼最优公式就行了,其最后求解得到的 q 值并非是说哪一个策略的 q 值而是最优的 q 值。当然这个最优的 q 值是对应的最优的那个策略。

下面再介绍一些 Q-learning 的性质:

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

Q-learning 的伪代码实现:

在这里插入图片描述

在这里插入图片描述

举几个例子:

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

A unified point of view

Q-learning 是 off-policy 的,我们也通过例子看了怎么使用 off-policy 的 Q-learning 来学习最优的策略。

实际上 off-policy 的性质是非常重要的,之后我们会学习 Deep Q-learning,为什么将神经网络和 TD 算法相结合的时候会选择 Q-learning 呢,这里面的 off-policy 的性质其实发挥了非常重要的作用。

这一节就是简单对所有的 TD 算法做个小总结:

在这里插入图片描述
在这里插入图片描述

这些 TD 方法从本质上说是来求解一个给定策略的贝尔曼公式,但是我怎么让它来搜索最优的策略呢?其实就是我把这个 policy evaluation 这个步骤和 policy improvement 相结合我就可以来得到一个搜索最优策略的这样一个算法。

而对于蒙特卡洛算法其实也是来求解这么一个式子,这个式子其实你可以说它是贝尔曼公式,实际上它是 action value 的一个最基本的定义。

Summary

没啥好总结的了,基本就是各个章节的内容,因为介绍的都是各种算法嘛。

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

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

相关文章

QWidget窗口抗锯齿圆角的一个实现方案(支持子控件)2

QWidget窗口抗锯齿圆角的一个实现方案(支持子控件)2 本方案使用了QGraphicsEffect,由于QGraphicsEffect对一些控件会有渲染问题,比如列表、表格等,所以暂时仅作为研究,优先其他方案 在之前的文章中&#…

论文辅助笔记:ST-LLM

1 时间嵌入 2 PFA(Partial Frozen Architecture) 3 ST_LLM 3.1 初始化 3.2 forward

Idea新增Module报错:sdk ‘1.8‘ type ‘JavaSDK‘ is not registered in ProjectJdkTable

文章目录 一,创建Module报错二,原因分析三,解决方案1,点击上图的加号,把JDK8添加进来即可2,点击左侧[Project],直接设置SDK为JDK8 四,配置检查与验证 一,创建Module报错 …

【Linux】:进程创建与终止

朋友们、伙计们,我们又见面了,本期来给大家解读一下有关Linux程序地址空间的相关知识点,如果看完之后对你有一定的启发,那么请留下你的三连,祝大家心想事成! C 语 言 专 栏:C语言:从…

dell Vostro 3690安装win11 23h2 方法

下载rufus-4.5.exe刻U盘去除限制 https://www.dell.com/support/home/zh-cn/product-support/product/vostro-3690-desktop/drivers dell官网下载驱动解压到U盘 https://dl.dell.com/FOLDER09572293M/2/Intel-Rapid-Storage-Technology-Driver_88DM9_WIN64_18.7.6.1010_A00_01…

【鸿蒙学习笔记】创建自定义组件

官方文档:创建自定义组件 目录标题 [Q&A] 如何自定义组件?1・struct 自定义组件名 {...}2・build()函数:3・@Component4・Entry5・Reusable 自定义组件的参数 buil…

GD32 MCU ADC采样率如何计算?

大家在使用ADC采样的时候是否计算过ADC的采样率,这个问题非常关键! 以下为GD32F303系列MCU中有关ADC的参数,其中ADC时钟最大值为40MHz,12位分辨率下最大采样率为2.86MSPS.如果ADC时钟超频的话,可能会造成ADC采样异常&…

SAP_MM模块-采购信息记录变更文档的三种查询方式

最近有用户在问采购信息记录变更的信息怎么去查找,想要看看是谁更改了价格,于是就给她查了一下,顺便做个记录,SAP中的业务数据或者主数据的变更信息查询方法,都是比较类似的,学会了这三个方法,其…

商家店铺电商小程序模板源码

橙色通用的商家入驻,商户商家,商家店铺,购物商城,商家购物平台app小程序网页模板。包含:商家主页、优先商家、商品详情、购物车、结算订单、个人中心、优惠券、会员卡、地址管理等功能页面。 商家店铺电商小程序模板源…

SSM高校教师教学质量评估系统-计算机毕业设计源码03344

摘要 在高等教育中,教学质量是培养优秀人才的关键。为了提高教学质量,高校需要建立一套科学、有效的教师教学质量评估系统。本研究采用 SSM技术框架,旨在开发一款高校教师教学质量评估系统。 SSM框架作为一种成熟的Java开发框架,具…

Centos新手问题——yum无法下载软件

起因:最近在学习centos7,在VM上成功安装后,用Secure进行远程登陆。然后准备下载一个C编译器,看网络上的教程,都是用yum来下载,于是我也输入了命令: yum -y install gcc* 本以为会自动下载&…

DevEco Studio无法识别本地模拟器设备的解决方法

目录 场景 解决办法 方式1 方式2 场景 有很多小伙伴遇到过安装了手机模拟器, 但是开发工具设备栏不识别手机设备的问题, 如下图,明明模拟器都安装了,并启动, 但为什么设备栏不显示呢? 解决后的截图,应该是这样(其实跟 android 类似 )

阶段三:项目开发---搭建项目前后端系统基础架构:任务11:搭建项目后台系统基础架构

任务描述 1、了解搭建民航后端框架 2、使用IDEA创建基于SpringBoot、MyBatis、MySQL、Redis的Java项目 3、以原项目为参照搭建项目所涉及到的各个业务和底层服务 4、以原项目为例,具体介绍各个目录情况并参照创建相关文件夹 任务指导 1、讲框架的选择和原理 …

数据库系统原理练习 | 作业1-第1章绪论(附答案)

整理自博主本科《数据库系统原理》专业课完成的课后作业,以便各位学习数据库系统概论的小伙伴们参考、学习。 *文中若存在书写不合理的地方,欢迎各位斧正。 专业课本: 目录 一、选择题 二:简答题 三:综合题 一、选择…

『古籍自有答案』古风H5案例赏析

「古籍自有答案」,一部由新京报与字节跳动公益联合打造的古风H5,以诗意盎然的开篇引领用户穿梭于千年文脉。 part1. 创意定位 "人生有惑问先贤,先贤答案存古籍",在这里,每一个灵魂的探问,都能在…

【电商系统开发实用接口指南】包含国内国外多电商平台商品数据对接(附文档)

关于电商数据接口 开发电商系统的朋友对于电商平台API肯定不陌生,API接口即应用程序编程接口,电商平台开放部分API接口,供商家和服务商调用,以满足电商业务管理需求。随着电商市场需求的日益增长以及技术手段的不断成熟&#xf…

推荐3款【王炸级别】的效率软件,免费无广告,你一定要收藏

Temp Cleaner Temp Cleaner 是一款专为 Windows 操作系统设计的临时文件清理工具。它的主要功能是安全且快速地清理磁盘上的临时文件和系统缓存,从而释放磁盘空间。该软件体积小巧(仅有826KB),并且是无广告的绿色软件,…

77. UE5 RPG 创建角色的技能栏

在前面的文章里,我们实现了角色属性技能和场景。接下来,我们要优化角色显示UI,在屏幕底部显示角色血量,蓝量,技能和经验值。 创建新的用户控件 选择创建新的控件蓝图 父类为我们自定义的RPGUserWidget,这…

CIRKD

环境不好满足,不建议复现

【SOLID原则前端中的应用】里氏替换原则(Liskov Substitution Principle,LSP)- vue3示例

里氏替换原则(Liskov Substitution Principle,LSP)规定,子类对象必须能够替换父类对象,并且程序的行为保持不变。 在Vue 3中,这意味着我们在创建可替换的组件时,应该确保子组件能够完全替代父组…