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

news2024/10/6 12:29:47

概述

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

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

相关文章

DropNotch for Mac v1.0.1 在 Mac 刘海快速使用 AirDrop

应用介绍 DropNotch 是一款专为Mac设计的应用程序,可以将MacBook的凹口区域(刘海)转换为文件放置区。 功能特点 文件共享: 用户可以将文件拖放到MacBook的凹口区域,并通过AirDrop、邮件、消息等方式轻松共享。多显示器支持: 即…

【经验篇】Spring Data JPA开启批量更新时乐观锁失效问题

乐观锁机制 什么是乐观锁? 乐观锁的基本思想是,认为在大多数情况下,数据访问不会导致冲突。因此,乐观锁允许多个事务同时读取和修改相同的数据,而不进行显式的锁定。在提交事务之前,会检查是否有其他事务…

3.js - 裁剪场景(多个scence)

不给newScence添加background、environment时 给newScence添加background、environment时 源码 // ts-nocheck// 引入three.js import * as THREE from three// 导入轨道控制器 import { OrbitControls } from three/examples/jsm/controls/OrbitControls// 导入lil.gui impor…

leetcode每日一题-3033. 修改矩阵

题目描述: 解题思路:简单题目,思路非常直接。对列进行遍历,记录下最大值,然后再遍历一遍,把-1替换为最大值。需要注意的是进行列遍历和行遍历是不同的。 官方题解: class Solution { public:v…

工控人最爱的PLC触摸屏一体机,有多香

PLC触摸屏一体机是什么 PLC触摸屏一体机,听起来可能有点技术化,但简单来说,它就是一个集成了可编程逻辑控制器(PLC)和触摸屏的智能设备。这种设备不仅能够执行自动化控制任务,还能实时显示和操作设备状态&a…

作业训练二编程题3. 数的距离差

【问题描述】 给定一组正整数,其中最大值和最小值分别为Max和Min, 其中一个数x到Max和Min的距离差定义为: abs(abs(x-Max)-(x-Min)) 其中abs()为求一个数的绝对值 【输入形式】 包括两行,第一行一个数n,表示第二行有n个正整数…

如何在PD虚拟机中开启系统的嵌套虚拟化功能?pd虚拟机怎么用 Parallels Desktop 19 for Mac

PD虚拟机是一款可以在Mac电脑中运行Windows系统的应用软件。使用 Parallels Desktop for Mac 体验 macOS 和 Windows 的最优性能,解锁强大性能和无缝交互。 在ParallelsDesktop(PD虚拟机)中如何开启系统的嵌套虚拟化功能?下面我们…

新手教学系列——前后端分离API优化版

在之前的文章《Vue 前后端分离开发:懒人必备的API SDK》中,我介绍了通过Object对象自动生成API的方法。然而,之前的代码存在一些冗余之处。今天,我将分享一个改进版本,帮助你更高效地管理API。 改进版API SDK 首先,让我们来看一下改进后的代码: import request from …

华为OD机试 - 来自异国的客人(Java 2024 D卷 100分)

华为OD机试 2024D卷题库疯狂收录中,刷题点这里 专栏导读 本专栏收录于《华为OD机试(JAVA)真题(D卷C卷A卷B卷)》。 刷的越多,抽中的概率越大,每一题都有详细的答题思路、详细的代码注释、样例测…

自动控制:反馈控制

自动控制:反馈控制 反馈控制(Feedback Control)是一种在控制系统中通过测量输出信号,并将其与期望信号进行比较,产生误差信号,再根据误差信号调整输入来达到控制目标的方法。反馈控制是自动控制系统中最常…

C#——使用ini-parser第三方操作ini文件

使用ini-parser第三方操作ini文件 IniParser - 一个轻量级的.NET类库,用于读写INI文件。 安装 在NuGet程序包中下载IniParser第三方 使用IniParser第三方操作Ini文件 读取 // 初始化解析器var parser new FileIniDataParser();// 读取INI文件string iniFilePat…

家里老人能操作的电视直播软件,目前能用的免费看直播的电视软件app,适合电视和手机使用!

2024年许多能看电视直播的软件都不能用了,家里的老人也不会手机投屏,平时什么娱乐都没有了,这真的太不方便了。 很多老人并不喜欢去买一个广电的机顶盒,或者花钱拉有线电视。 现在的电视大多数都是智能电视,所以许多电…

如何在忘记密码的情况下解锁Android手机?

您的 Android 设备密码有助于保护您的数据并防止您的个人信息被滥用。但是,如果您被锁定在Android设备之外怎么办?我们知道忘记您的 Android 手机密码是多么令人沮丧,因为它会导致您的设备和数据无法访问。在本技术指南中,我们将向…

AI微电影制作教程:轻松打造高清小人国画面

AI微电影作为一种新兴的视频内容形式,以其独特的视觉效果和制作技术在各大视频平台上取得了显著的流量表现。 2. AI微电影的特点 2.1 高清画质与流畅动作:AI微电影以其高分辨率和流畅的动作给观众带来优质的视觉体验。 2.2 微缩画面效果:独…

CC2530寄存器编程学习笔记_按键中断

目录 无中断按键 第一步 分析原理图 电路工作原理 第二步 配置寄存器 第一步 配置为通用IO口 第二步 配置为输入 第三步 输入模式选择 按键抖动 中断按键 第一步中断寄存器的配置 上升沿 下降沿 第一步 开启总中断使能 第二步 开启端口中断使能 第三步 开启端口引…

VSCode推荐插件:Copy Class Name快速复制html中的类名

插件地址&#xff1a;https://marketplace.visualstudio.com/items?itemNamemouday.copy-class-name 复制Vue和React中HTML代码的类名&#xff0c;实现快速复制 使用方式&#xff1a; 选中代码&#xff0c;右键复制类名&#xff0c;再粘贴到文件中即可 示例 <div clas…

苹果电脑能玩赛博朋克2077吗 如何在mac上运行赛博朋克2077 crossover能玩什么游戏

各位喜欢赛博朋克风的一定不能错过《赛博朋克2077》。那么《赛博朋克2077》是一款什么样的游戏&#xff1f;《赛博朋克2077》在苹果电脑上可以运行吗&#xff1f;一起来看看介绍吧。 一、《赛博朋克2077》是一款什么样的游戏&#xff1f; 《赛博朋克2077》是一款由CD Projekt …

NVIDIA RTX Remix开源 让AI驱动的经典游戏重制复兴

游戏开发商往往会让激动的粉丝们在游戏发布后等待数年&#xff0c;以获得他们喜爱的游戏的重制版。不过&#xff0c;这个问题可能很快就会成为过去。NVIDIA 宣布其 RTX Remix 工具包将开放源代码&#xff0c;这将为钟情于经典游戏的玩家带来惊喜。 RTX Remix 是 NVIDIA 的修改套…

计算机组成原理学习笔记(一)

计算机组成原理 [类型:: [[计算机基础课程]] ] [来源:: [[B站]] ] [主讲人:: [[咸鱼学长]] ] [评价:: ] [知识点:: [[系统软件]] & [[应用软件]] ] [简单解释:: 管理计算机系统的软件&#xff1b; 按照任务需要编写的程序 ] [问题:: ] [知识点:: [[机器字长]] ] [简单…

外泌体相关基因肝癌临床模型预测——2-3分纯生信文章复现——4.预后相关外泌体基因确定之森林图(3)

内容如下&#xff1a; 1.外泌体和肝癌TCGA数据下载 2.数据格式整理 3.差异表达基因筛选 4.预后相关外泌体基因确定 5.拷贝数变异及突变图谱 6.外泌体基因功能注释 7.LASSO回归筛选外泌体预后模型 8.预后模型验证 9.预后模型鲁棒性分析 10.独立预后因素分析及与临床的…