强化学习第1天:马尔可夫过程

在这里插入图片描述

☁️主页 Nowl

🔥专栏 《强化学习》

📑君子坐而论道,少年起而行之

​​

在这里插入图片描述

一、介绍

什么是马尔可夫过程?马尔可夫过程是马尔可夫决策过程的基础,而马尔可夫决策过程便是大部分强化学习任务的抽象过程,本文将从马尔可夫过程开始,一步步带读者理解马尔可夫决策过程

二、马尔可夫过程

1.状态变化过程

我们知道强化学习是一个状态转移的过程,状态发生变化的原因可能取决于当前状态,也可能取决于先前的许多状态,我们把当前状态设为
S t S_{t} St
则下一个状态的概率与之前所有状态有关可表示为
P ( S t + 1 ) = P ( S t + 1 ∣ S t , . . . , S 1 ) P(S_{t+1}) = P(S_{t+1}|S_{t},...,S_{1}) P(St+1)=P(St+1St,...,S1)
下图为某一个状态变化过程图,箭头表示由某个状态变化到另一个状态的概率

在这里插入图片描述

2.马尔可夫性质

当且仅当某时刻的状态只取决于上一时刻的状态时,这个过程就具有马尔可夫性质,即
P ( S t + 1 ) = P ( S t + 1 ∣ S t ) P(S_{t+1}) = P(S_{t+1}|S_{t}) P(St+1)=P(St+1St)
可以知道,若某过程满足马尔可夫性质,则我们只需要知道当前状态就可以预测下一个状态,而不是要了解之前所有的状态

通俗一点可以用下图来说明
无论这两个人之前吃了什么水果,做了什么事,当12点的时候他们都会去睡觉,即睡觉这件事只与12点有关
和之前的行为没有关系

在这里插入图片描述

3.马尔可夫过程描述

我们通常用一个元组
< S , P > <S,P> <SP>
来描述一个马尔可夫过程

  • S是有限的状态集合
  • P是状态转移矩阵,它记录了状态之间变化的概率

三、马尔可夫奖励过程

1.马尔可夫奖励过程描述

我们知道马尔可夫过程可以由元组<S,P>来描述,那么马尔可夫奖励过程就可以用元组
< S , P , r , γ > <S,P,r,γ> <SPrγ>
来描述

  • r是奖励函数,r(s)即代表转移到状态s可获得的奖励
  • γ是折扣因子,取值范围为[0,1),我们将在下文感受到折扣因子的作用

2.回报

在一个马尔可夫奖励过程中,从当前状态开始,到终止状态,所有奖励之和为回报
G = R t + γ R t + 1 + γ 2 R t + 2 + . . . + γ k R t + k G = R_{t}+γR_{t+1}+γ^{2}R_{t+2}+...+γ^{k}R_{t+k} G=Rt+γRt+1+γ2Rt+2+...+γkRt+k
在这里我们可以看到折扣因子的作用了,折扣因子越接近1,就代表模型更注重长期利益,越接近0,就代表模型更注重短期利益

3.价值函数

在马尔可夫奖励过程中,一个状态的期望回报被称为这个状态的价值,价值函数即是以状态为自变量,价值为因变量的函数,定义如下
V ( s ) = E [ G t ∣ S t = s ] V(s)=E[G_{t}|S_{t}=s] V(s)=E[GtSt=s]
它表示了所有状态回报之和的一种平均,可能这里有些人对这个期望不是很理解,既然我的S固定了,那G不也就固定了吗,为什么还要加上一个期望呢,想到这点的说明有自己的思考了,S确实固定了,这时我们去看G,G这时真的是固定值吗?

在这里插入图片描述
理解了价值函数之后,我们接着往下看

4.贝尔曼方程

首先我们给出贝尔曼方程的定义
V ( s ) = r ( s ) + γ ∑ s ′ P ( s ′ ∣ s ) V ( s ′ ) V(s)=r(s)+γ\sum_{s^{'}}P(s^{'}|s)V(s^{'}) V(s)=r(s)+γsP(ss)V(s)
可以看到左边就是一个价值函数,那是怎么推导过来的呢,看以下过程,我们将价值函数拆开
V ( s ) = E [ G t ∣ S t = s ] V(s)=E[G_{t}|S_{t}=s] V(s)=E[GtSt=s]
= E [ R t + γ R t + 1 + γ 2 R t + 2 + . . . ∣ S t = s ] =E[R_{t}+γR_{t+1}+γ^{2}R_{t+2}+...|S_{t}=s] =E[Rt+γRt+1+γ2Rt+2+...∣St=s]
= E [ R t + γ ( R t + 1 + γ R t + 2 + . . . ) ∣ S t = s ] =E[R_{t}+γ(R_{t+1}+γR_{t+2}+...)|S_{t}=s] =E[Rt+γ(Rt+1+γRt+2+...)St=s]
= E [ R t + γ G t + 1 ∣ S t = s ] =E[R_{t}+γG_{t+1}|S_{t}=s] =E[Rt+γGt+1St=s]
= E [ R t + γ V ( S t + 1 ) ∣ S t = s ] =E[R_{t}+γV(S_{t+1})|S_{t}=s] =E[Rt+γV(St+1)St=s]
其中
r ( s ) = E [ R t ∣ S t = s ] r(s)=E[R_{t}|S_{t}=s ] r(s)=E[RtSt=s]
而根据条件期望的定义可以得到
γ ∑ s ′ P ( s ′ ∣ s ) V ( s ′ ) = E [ γ V ( S t + 1 ) ∣ S t = s ] γ\sum_{s^{'}}P(s^{'}|s)V(s^{'})=E[γV(S_{t+1})|S_{t}=s] γsP(ss)V(s)=E[γV(St+1)St=s]
即证贝尔曼方程
V ( s ) = r ( s ) + γ ∑ s ′ P ( s ′ ∣ s ) V ( s ′ ) V(s)=r(s)+γ\sum_{s^{'}}P(s^{'}|s)V(s^{'}) V(s)=r(s)+γsP(ss)V(s)

四、马尔可夫决策过程

1.马尔可夫决策过程描述

我们已经知道了马尔可夫过程和马尔可夫奖励过程(MDP)的描述,接下来我们描述马尔可夫决策过程(MAP),使用元组描述
< S , A , P , r , γ > <S,A,P,r,γ> <SAPrγ>

  • A是动作,这时多出来的东西可不只有动作,还有抉择做什么动作的策略
  • 此时r(s)变为了r(s,a),因为奖励此时不仅与状态有关,还与动作有关
  • 同理,P也与动作联系起来了,因此它不再是一个二维数组矩阵,而是变成了一个三维矩阵

在描述马尔可夫决策过程的元组中,我们发现了许多强化学习中的元素:状态,奖励,动作,可以看到我们逐渐与我们的目的——强化学习越来越近了!

由于新加入的动作因子所产生的策略因子,我们优化一下价值函数变为状态价值函数
V π ( s ) = E π [ G t ∣ S t = s ] V^{\pi}(s)=E_{\pi}[G_{t}|S_{t}=s] Vπ(s)=Eπ[GtSt=s]
我们把π定义为策略,则更新后的价值函数可以这样描述:从状态s出发遵循策略π可以获得的期望回报

定义好了状态价值函数,我们再来定义动作价值函数,动作价值函数是遵循策略π时,在当前状态下采取动作a能得到的期望回报
Q π ( s , a ) = E π [ G t ∣ S t = s , A t = a ] Q^{\pi}(s,a)=E_{\pi}[G_{t}|S_{t}=s,A_{t}=a] Qπ(sa)=Eπ[GtSt=sAt=a]
我们直观理解一下

在这里插入图片描述

发现了其中的区别了吗,状态价值函数的第一个状态是固定的,而动作价值函数的第一,第二个状态都是固定的,回到定义,因为动作价值函数规定了当前状态所做出的动作,所以第二个状态也是固定的

所以状态价值函数与动作价值函数的联系公式如下
V π ( s ) = ∑ a π ( a ∣ s ) Q π ( s , a ) V^{\pi}(s)=\sum_{a}\pi(a|s)Q^{\pi}(s,a) Vπ(s)=aπ(as)Qπ(sa)

展开动作价值函数的贝尔曼方程如下
Q π ( s , a ) = r ( s , a ) + γ ∑ s ′ P ( s ′ ∣ s , a ) V π ( s ′ ) Q^{\pi}(s,a)=r(s,a)+γ\sum_{s^{'}}P(s^{'}|s,a)V^{\pi}(s^{'}) Qπ(sa)=r(sa)+γsP(ssa)Vπ(s)

2.贝尔曼期望方程

动作价值函数贝尔曼期望方程
Q π ( s , a ) = E π [ R t + γ Q π ( s ′ , a ′ ) ∣ S t = s , A t = a ] Q^{\pi}(s,a)=E_{\pi}[R_{t}+γQ^{\pi}(s^{'},a^{'})|S_{t}=s,A_{t}=a] Qπ(sa)=Eπ[Rt+γQπ(sa)St=sAt=a]
= r ( s , a ) + γ ∑ s ′ P ( s ′ ∣ s , a ) ∑ a ′ π ( a ′ ∣ s ) Q π ( s ′ , a ′ ) =r(s,a)+γ\sum_{s^{'}}P(s^{'}|s,a)\sum_{a^{'}}\pi(a^{'}|s)Q^{\pi}(s^{'},a^{'}) =r(sa)+γsP(ssa)aπ(as)Qπ(sa)
状态价值函数贝尔曼期望方程
V π ( s ) = E π [ R t + γ V π ( s ′ ) ∣ S t = s ] V^{\pi}(s)=E_{\pi}[R_{t}+γV^{\pi}(s^{'})|S_{t}=s] Vπ(s)=Eπ[Rt+γVπ(s)St=s]
= ∑ a π ( a ∣ s ) { r ( s , a ) + γ ∑ s ′ P ( s ′ ∣ s , a ) V π ( s ′ ) } =\sum_{a}\pi(a|s)\{r(s,a)+γ\sum_{s^{'}}P(s^{'}|s,a)V^{\pi}(s^{'})\} =aπ(as){r(sa)+γsP(ssa)Vπ(s)}
贝尔曼方程是强化学习中很重要的部分,之后很多方法都是由此推导而来,请一定好好理解并尝试推导

五、蒙特卡洛方法

1.介绍

蒙特卡洛方法的思想来自于概率论与数理统计,主要步骤是先进行重复随机抽样,然后运用概率统计方法来获得我们想要的数值特征

如下是一个简单的例子,使用蒙特卡洛方法求圆的面积,我们已知三角形的面积,则先随机选取多个点,然后就可以通过比例计算出圆形的面积

在这里插入图片描述

2.在强化学习中的应用

那么如何在强化学习中应用蒙特卡洛方法呢,我们试着求状态价值,我们知道状态价值是状态的期望回报,这个回报由许多条序列计算而来,那我们就可以选取多条序列,将通过选取的序列所算出来的期望回报近似为真正的状态价值
V π ( s ) = E π [ G t ∣ S t = s ] ≈ 1 N ∑ i N G t ( i ) V^{\pi}(s)=E_{\pi}[G_{t}|S_{t}=s]\approx\frac{1}{N}\sum^{N}_{i}G_{t}^{(i)} Vπ(s)=Eπ[GtSt=s]N1iNGt(i)

根据大数定律可以知道,当选取的序列够多时,这两个值就越近似

3.为什么要使用蒙特卡洛方法

我们要明白,虽然我们知道了求解期望的公式,但在真实情况中,很多条件是不知道的,例如不清楚某个状态的所有序列,这时我们就只能使用蒙特卡洛方法来通过局部估计总体了

最优策略

作了这么多基础铺垫,再回到强化学习上来吧,强化学习的目标就是找到一个策略,来获得最高的期望回报,从初始状态出发到达最终目的可能有很多策略,但很容易知道,一定有一个策略,得到的期望不低于其他所有策略,这个策略就是最优策略,找到它就是强化学习的目标

我们将最优策略表示为
π ∗ ( s ) \pi^{*}(s) π(s)
再定义最优状态价值函数
V ∗ ( s ) = m a x π V π ( s ) V^{*}(s)=max_{\pi}V^{\pi}(s) V(s)=maxπVπ(s)
和最优动作价值函数
Q ∗ ( s , a ) = m a x π Q π ( s , a ) Q^{*}(s,a)=max_{\pi}Q^{\pi}(s,a) Q(sa)=maxπQπ(sa)

贝尔曼最优方程

前文介绍了最重要的贝尔曼方程,这里给出它的最优形式
Q ∗ ( s , a ) = r ( s , a ) + γ ∑ s ′ P ( s ′ ∣ s , a ) m a x a ′ Q ∗ ( s ′ , a ′ ) Q^{*}(s,a)=r(s,a)+γ\sum_{s^{'}}P(s^{'}|s,a)max_{a^{'}}Q^{*}(s^{'},a^{'}) Q(sa)=r(sa)+γsP(ssa)maxaQ(sa)
V ∗ ( s ) = m a x a ( r ( s , a ) + γ ∑ s ′ P ( s ′ ∣ s , a ) V ∗ ( s ′ ) ) V^{*}(s)=max_{a}(r(s,a)+γ\sum_{s^{'}}P(s^{'}|s,a)V^{*}(s^{'})) V(s)=maxa(r(sa)+γsP(ssa)V(s))

在这里插入图片描述

感谢阅读,觉得有用的话就订阅下《强化学习》专栏吧,有错误也欢迎指出

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

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

相关文章

206. 反转链表(Java)

题目描述&#xff1a; 给你单链表的头节点 head &#xff0c;请你反转链表&#xff0c;并返回反转后的链表。 输入&#xff1a; head [1,2,3,4,5] 输出&#xff1a; [5,4,3,2,1] 代码实现&#xff1a; 1.根据题意创建一个结点类&#xff1a; public class ListNode {int val…

Python pip 常用指令

前言 Python的pip是一个强大的包管理工具&#xff0c;它可以帮助我们安装、升级和管理Python的第三方库。以下是一些常用的pip指令。 1. 安装第三方库 使用pip安装Python库非常简单&#xff0c;只需要使用pip install命令&#xff0c;后面跟上库的名字即可。 # 安装virtuale…

苍穹外卖Day01——解决总结1中存在的问题

前序章节&#xff1a; 苍穹外卖Day01——总结1 解决总结1中存在的问题 1. 什么是JWT2. POJO、Entity、VO、DTO3. Nginx&#xff08;反向代理&#xff09;4. Data注解 1. 什么是JWT JWT&#xff08;JSON Web Token&#xff09;是一种用于在网络应用间传递信息的开放标准&#…

MongoDB多文档事务详解

事务简介 事务&#xff08;transaction&#xff09;是传统数据库所具备的一项基本能力&#xff0c;其根本目的是为数据的可靠性与一致性提供保障。而在通常的实现中&#xff0c;事务包含了一个系列的数据库读写操作&#xff0c;这些操作要么全部完成&#xff0c;要么全部撤销。…

Mysql是怎么运行的(上)

文章目录 Mysql是怎么运行的Mysql处理一条语句的流程连接管理解析与优化存储引擎 基本配置配置文件系统变量状态变量字符集四种重要的字符集MySQL中的utf8和utf8mb4各级别的字符集和比较规则MySQL中字符集的转换排序规则产生的不同的排序结果 InnoDB存储引擎介绍COMPACT行格式介…

LLM大模型和数据标注

对于那些不精通机器学习的人来说&#xff0c;像 ChatGPT 所基于的 GPT-3.5 这样的大型语言模型似乎是自给自足的。这些模型通过无监督或自我监督学习进行训练。简而言之&#xff0c;只需极少的人工干预&#xff0c;就能生成一个能像人类一样对话的模型。 这就引出了一个问题--…

性能分析与调优: Linux 文件系统观测工具

目录 一、实验 1.环境 2.mount 3.free 4.top 5.vmstat 6.sar 7.slabtop 8.strace 9.opensnoop 10.filetop 11.cachestat 二、问题 1.Ftrace实例如何实现 2.Function trace 如何跟踪实例 3.function_graph Trace 如何跟踪实例 4.trace event 如何跟踪实例 5.未…

ESP32-S3 使用内置USB下载程序、调试、LOG相关问题总结

目录 Preface&#xff1a; &#xff08;一&#xff09;为电脑安装USB驱动 &#xff08;二&#xff09;Platformio工程 &#xff08;三&#xff09;相关文章 &#xff08;四&#xff09;总结 Preface&#xff1a; esp32-s3有一个built-in的usb-jtag&#xff0c;可以用来下载…

Linux环境vscode clang-format格式化:vscode clang format command is not available亲测有效!

问题现象 vscode安装了clang-format插件&#xff0c;但是使用就报错 问题原因 设置中配置的clang-format插件工具路径不正确。 解决方案-亲测有效&#xff01; 确认本地安装了clang-format工具&#xff1a;终端输入clang-format&#xff08;也可能是clang-format-13等版本…

软件测试|MySQL CROSS JOIN:交叉连接的详细解析

简介 在 MySQL 数据库中&#xff0c;CROSS JOIN 是一种用于生成两个或多个表的笛卡尔积的连接方法。CROSS JOIN 不需要任何连接条件&#xff0c;它将左表的每一行与右表的每一行进行组合&#xff0c;从而生成一个包含所有可能组合的结果集。本文将详细介绍 MySQL 中的 CROSS J…

故事生成动漫解说视频,用Artflow AI做英语口语故事

大家好我是在看&#xff0c;记录普通人学习探索AI之路。 今天&#xff0c;我将再次为大家精心策划一个使用Artflow AI制作动漫解说视频的详尽教程&#xff0c;这个教程专为初学者设计。通过这款强大的Artflow AI工具&#xff0c;用户能够一键自动化完成从图像生成、视频剪辑到配…

性能测试LoadRunner解决动态验证码问题

对于这个问题&#xff0c;通常我们可以采取以下三个途径来解决该问题&#xff1a; 1、第一种方法&#xff0c;也是最容易想到的&#xff0c;在被测系统中暂时屏蔽验证功能&#xff0c;也就是说&#xff0c;临时修改应用&#xff0c;无论用户输入的是什么验证码&#xff0c;都…

【hcie-cloud】【21】容器详解【容器网络说明、容器存储说明、容器镜像说明、dockerfile详述、缩略词】【下】

文章目录 容器介绍&#xff0c;容器工作机制、容器常用命令说明容器网络容器网络简介容器常用网络类型 - Bridge容器常用网络类型 - Host容器常用网络类型 - None其他容器网络类型【Macvlan、Overlay、IPvlan】容器网络相关配置 容器存储容器中应用数据的存储容器持久化存储配置…

2024.1.8每日一题

LeetCode 回旋镖的数量 447. 回旋镖的数量 - 力扣&#xff08;LeetCode&#xff09; 题目描述 给定平面上 n 对 互不相同 的点 points &#xff0c;其中 points[i] [xi, yi] 。回旋镖 是由点 (i, j, k) 表示的元组 &#xff0c;其中 i 和 j 之间的距离和 i 和 k 之间的欧式…

Python - 深夜数据结构与算法之 Two-Ended BFS

目录 一.引言 二.双向 BFS 简介 1.双向遍历示例 2.搜索模版回顾 三.经典算法实战 1.Word-Ladder [127] 2.Min-Gen-Mutation [433] 四.总结 一.引言 DFS、BFS 是常见的初级搜索方式&#xff0c;为了提高搜索效率&#xff0c;衍生了剪枝、双向 BFS 以及 A* 即启发式搜索…

【办公技巧】Word中如何对齐选择题中的ABCD选项?

使用word文件制作试卷&#xff0c;如何将ABCD选项全部设置对齐&#xff1f;除了一直按空格或者Tab键以外&#xff0c;还有其他方法吗&#xff1f;今天分享如何将ABCD选项对齐。 首先&#xff0c;我们打开【替换和查找】&#xff0c;在查找内容输入空格&#xff0c;然后点击全部…

2024年工信部AI人工智能证书“计算机视觉工程师”证书报考中!

为进一步贯彻落实中共中央印发《关于深化人才发展体制机制改革的意见》和国务院印发《关于“十四五”数字经济发展规划》等有关工作的部署求&#xff0c;深入实施人才强国战略和创新驱动发展战略&#xff0c;加强全国数字化人才队伍建设&#xff0c;持续推进人工智能专业人员能…

视频做成二维码查看?多格式视频二维码生成器的使用方法

现在音视频是工作和生活中经常需要使用的一种内容表现形式&#xff0c;很多人都通过这种方式来查看视频内容&#xff0c;比如产品介绍、使用说明、安装教程等。通过一个二维码就可以来承载视频内容&#xff0c;与传统的方式相比拥有更快的内容传播速度&#xff0c;简化用户获取…

2023年全国职业院校技能大赛(高职组)“云计算应用”赛项赛卷⑧

2023年全国职业院校技能大赛&#xff08;高职组&#xff09; “云计算应用”赛项赛卷8 目录 需要竞赛软件包环境以及备赛资源可私信博主&#xff01;&#xff01;&#xff01; 2023年全国职业院校技能大赛&#xff08;高职组&#xff09; “云计算应用”赛项赛卷8 模块一 …

创业只有破釜沉舟才能成功吗?2024个人创业做什么?2024普通人如何创业?

第一次创业必须零成本&#xff0c;千万别被那些砸锅卖铁、卖车卖房创业最后发了大财的鸡汤故事洗了脑&#xff0c;否则你一定会血本无归&#xff0c;妻离子散。 如果你要创业&#xff0c;请记住这组数据&#xff0c;全国能活过三年的创业公司只有10%&#xff0c;这10%不等于已经…