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

概述

之前第五次课时学习的 蒙特卡洛 的方法是全课程当中第一次介绍的第一种 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.mfbz.cn/a/782186.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

使用大漠插件进行京东联盟转链

由于之前开发了一套使用api转链的接口在前面几个月失效了。因为京东联盟系统升级,导致之前可以转的链接现在必须要升级权限才可以。但是升级条件对于我们这些自己买东西转链想省点钱的人来说基本上达不到。 所以,基于这种情况。我之前研究过大漠插件&am…

数据库的学习(4)

一、题目 1、创建数据表qrade: CREATE TABLE grade(id INT NOT NULL,sex CHAR(1),firstname VARCHAR(20)NOT NULL,lastname VARCHAR(20)NOT NULL,english FLOAT,math FLOAT,chinese FLOAT ); 2、向数据表grade中插入几条数据: (3,mAllenwiiliam,88.0,92.0 95.0), (4,m,George&…

第七篇——攻谋篇:兵法第一原则——兵力原则,以多胜少

目录 一、背景介绍二、思路&方案三、过程1.思维导图2.文章中经典的句子理解3.学习之后对于投资市场的理解4.通过这篇文章结合我知道的东西我能想到什么? 四、总结五、升华 一、背景介绍 微观层面上,也有很多值得深度思考的问题 二、思路&方案 …

用ThreadLocal解决线程隔离问题

存在的以下代码所示的线程隔离问题: package study.用ThreadLocal解决线程隔离问题;/*线程隔离 - 在多线程并发场景下,每个线程的变量都应该是相互独立的线程A:设置(变量1) 获取(变量1)线程B&a…

瑞芯微rk356x TF卡烧写选择指定的屏幕打印烧写的过程

rk356x中TF卡烧写屏幕选择 1、开发环境2、问题描述3、解决办法4、总结5、 图片展示1、开发环境 系统:linux系统 芯片:356x 显示:多屏显示(HDMI, MIPI, LVDS, EDP) 2、问题描述 由于在多屏显示的情况下,HDMI屏在LVDS、MIPI或者EDP协同下,默认情况下,在TF卡烧录过程中…

论文润色最强最实用ChatGPT提示词指令

大家好,感谢关注。我是七哥,一个在高校里不务正业,折腾学术科研AI实操的学术人。关于使用ChatGPT等AI学术科研的相关问题可以和作者七哥(yida985)交流,多多交流,相互成就,共同进步&a…

C++语言相关的常见面试题目(二)

1.vector底层实现原理 以下是 std::vector 的一般底层实现原理: 内存分配:当创建一个 std::vector 对象时,会分配一块初始大小的连续内存空间来存储元素。这个大小通常会随着 push_back() 操作而动态增加。 容量和大小:std::vec…

【Linux】进程间的通信----管道

💐 🌸 🌷 🍀 🌹 🌻 🌺 🍁 🍃 🍂 🌿 🍄🍝 🍛 🍤 📃个人主页 :阿然成长日记 …

妈妈带女儿美在心里

在这个充满温情与惊喜的午后,阳光温柔地洒落在每一个角落,仿佛连空气弥漫着幸福的味道。就在这样一个平凡的时刻,一段关于爱与成长的温馨画面,悄然在网络上绽放,引爆了无数人的心弦——#奚梦瑶2岁女儿身高#&#xff0c…

在 VS Code 中自动化 Xcode 项目编译和调试

在 VS Code 中自动化 Xcode 项目编译和调试 在日常的开发工作中,Xcode 是 macOS、iOS、watchOS 和 tvOS 应用程序开发的主要工具。为了提高工作效率,许多开发者选择在 Visual Studio Code (VS Code) 中编辑代码,并希望能够直接从 VS Code 启…

【vue组件库搭建06】组件库构建及npm发包

一、格式化目录结构 根据以下图片搭建组件库目录 index.js作为入口文件,将所有组件引入,并注册组件名称 import { EButton } from "./Button"; export * from "./Button"; import { ECard } from "./Card"; export * fr…

网络通信总体框架

目录 网络通信 一、网络通信的定义与基本原理 二、网络通信的组成要素 三、网络通信的应用与发展 网络体系结构 一、网络体系结构的定义与功能 二、OSI七层参考模型 三、网络体系结构的重要性 网络核心与边缘 一、网络核心 1. 定义与功能 2. 组成部分 3. 技术特点 …

昇思25天学习打卡营第19天|LSTM+CRF序列标注

概述 序列标注指给定输入序列,给序列中每个Token进行标注标签的过程。序列标注问题通常用于从文本中进行信息抽取,包括分词(Word Segmentation)、词性标注(Position Tagging)、命名实体识别(Named Entity Recognition, NER)等。 条件随机场&#xff08…

01:spring

文章目录 一:常见面试题1:什么是Spring框架?1.1:spring官网中文1.2:spring官网英文 2:谈谈自己对于Spring IOC和AOP的理解2.1:IOCSpring Bean 的生命周期主要包括以下步骤: 2.2&…

国产化新标杆:TiDB 助力广发银行新一代总账系统投产上线

随着全球金融市场的快速发展和数字化转型的深入推进,金融科技已成为推动银行业创新的核心力量。特别是在当前复杂多变的经济环境下,银行业务的高效运作和风险管理能力显得尤为重要。总账系统作为银行会计信息系统的核心,承载着记录、处理和汇…

MySQL-行级锁(行锁、间隙锁、临键锁)

文章目录 1、介绍2、查看意向锁及行锁的加锁情况3、行锁的演示3.1、普通的select语句,执行时,不会加锁3.2、select * from stu where id 1 lock in share mode;3.3、共享锁与共享锁之间兼容。3.4、共享锁与排他锁之间互斥。3.5、排它锁与排他锁之间互斥3…

离线开发(VSCode、Chrome、Element)

一、VSCode 扩展 使用能联网的电脑 A,在VSCode官网下载安装包 使用能联网的电脑 A,从扩展下载vsix扩展文件 将VSCode安装包和vsix扩展文件通过手段(u盘,刻盘 等)导入到不能联网的离线电脑 B 中 在离线电脑 B 中安装…

计算机网络之无线局域网

1.无线局域网工作方式 工作方式:每台PC机上有一个无线收发机(无线网卡), 它能够向网络上的其他PC机发送和接受无线电信号。 与有线以太网相似,无线局域网也是打包方式发送数据的。每块网卡都有一个永久的、唯一的ID号…

springboot配置扫描生效顺序

文章目录 举例分析项目结构如下noddles-user-backend 两个配置文件noddles-user-job 配置文件noddles-user-server 配置文件问题:server和Job启动时对应加载的数据库配置为哪一个? 总结 在微服务架构中,backend模块会定义一个基础的配置文件,…

java集合(2)

目录 一. Map接口下的实现类 1. HashMap 1.1 HashMap常用方法 2. TreeMap 2.1 TreeMap常用方法 3. Hashtable 3.1 Hashtable常用方法 4.Map集合的遍历 4.1 根据键找值 4.2 利用map中的entrySet()方法 二.Collections类 1.Collections类中的常用方法 三. 泛型 1. 为什…