强化学习(2): 马尔可夫过程

article/2025/8/22 1:41:52

前言

本文重点介绍MDP,因为MDP是目前最适合表征强化学习问题的模型。

一个具体的赌徒例子,来说明强化学习的算法如何与MDP构建联系,并且求解出最优策略。链接如下:link

一、马尔可夫性

其假设未来的状态仅取决与当前的状态。过去与未来无关。
P [ S t + 1 ∣ S t ] = P [ S t + 1 ∣ S 1 , . . . , S t ] P[S_{t+1}|S_t]=P[S_{t+1}|S_1,...,S_t] P[St+1St]=P[St+1S1,...,St]

二、马尔可夫过程

马尔可夫过程是满足马尔可夫性的随机过程,由二元组 M = ( S , P ) M=(S,P) M=(S,P)组成。

  1. S S S表示有限状态集合;
  2. P P P表示状态转移概率矩阵。

如下图所示的一个马尔可夫过程:
在这里插入图片描述
对应的状态转移矩阵为:

在这里插入图片描述

根据是否考虑动作与状态是否完全可观,我们可以将马尔可夫过程做如下分类:

状态可观状态不完全可观
不考虑动作马尔科夫链(MC)隐马尔可夫模型(HMM)
考虑动作马尔可夫决策过程(MDP)部分可观马尔科夫决策过程(POMDP)

1. 马尔可夫奖励过程MRP

MRP由四元组组成:
M = ( S , P , R , γ ) M=(S,P,R,\gamma) M=(S,P,R,γ)

  1. S S S代表所有状态集合
  2. P P P描述状态转移矩阵
  3. R R R表示奖励函数
  4. γ \gamma γ表示衰减因子discounted factor, γ ∈ [ 0 , 1 ] \gamma\in[0, 1] γ[0,1] γ \gamma γ越接近1,智能体越侧重考虑长远收益。

同样的用状态转移图做表示:

在这里插入图片描述

价值函数

价值函数给出了某一状态或某一行为的长期价值。

定义:一个马尔科夫奖励过程中某一状态的价值函数为从该状态开始的马尔可夫链收获的期望

v ( s ) = E ( G t ∣ S t = s ) v(s)=E(G_t|S_t = s) v(s)=E(GtSt=s)

收获 G t G_t Gt为在一个马尔科夫奖励链上从t时刻开始往后所有的奖励的有衰减的总和.
G t = R t + 1 + γ R t + 2 + γ 2 R t + 3 + . . . = ∑ k = 0 ∞ γ k R t + k + 1 G_t=R_{t+1}+\gamma R_{t+2}+\gamma ^2R_{t+3}+...=\sum^{\infty}_{k=0}\gamma^kR_{t+k+1} Gt=Rt+1+γRt+2+γ2Rt+3+...=k=0γkRt+k+1

价值可以仅描述状态,也可以描述某一状态下的某个行为,在一些特殊情况下还可以仅描述某个行为。通常用状态价值函数或价值函数来描述针对状态的价值;用行为价值函数来描述某一状态下执行某一行为的价值,严格意义上说行为价值函数是“状态行为对”价值函数的简写。

如何合理求解各状态的价值,也就是寻找一个价值函数(从状态到价值的映射)很重要,强化学习中很多问题可以归结为求价值函数问题。

面向MRP的贝尔曼方程

在这里插入图片描述
上述推导中,关键的是最后一步, G t + 1 = v ( S t + 1 ) G_{t+1} = v(S_{t+1}) Gt+1=v(St+1),收货的期望的期望 = 收货的期望。

继续做如下推导:
在这里插入图片描述
其中 s ′ s' s为s的下一个任意可能的状态.

矩阵形式的表述:
在这里插入图片描述

贝尔曼方程的求解

对于小规模state的贝尔曼方程,我们可以直接做如下求解:

在这里插入图片描述
可以看到,在求解v的时候,如果知道 γ 、 P 、 R \gamma 、P、R γPR就能求得。
对于大规模MRP问题,可以用迭代方法求解,比如:

  • 动态规划
  • 蒙特卡洛估计
  • 时序差分法

2. 马尔可夫决策过程MDP

相比MRP,MDP多了一个动作A,用五元组表示:
M = ( S , A , P , R , γ ) M=(S,A,P,R,\gamma) M=(S,A,P,R,γ)

  1. S S S代表所有状态集合
  2. A A A表示决策过程中的动作集合
  3. P P P描述状态转移矩阵
  4. R R R表示奖励函数
  5. γ \gamma γ表示衰减因子discounted factor, γ ∈ [ 0 , 1 ] \gamma\in[0, 1] γ[0,1]

MDP与MC以及MRP的关系:

对于MDP,任意一条状态转移链: S 1 , S 2 , S 3 , . . . S_1, S_2, S_3,... S1,S2,S3,...就是一个马尔科夫链;

对于给定的MDP以及确定的policy π \pi π,MDP就是MRP

MDP描述智能体与环境交互的过程。整个过程是在不断寻找reward最大化的过程。下图中,s表示状态,a表示动作,r表示奖励。
在这里插入图片描述

MDP的价值函数推导

状态价值函数

MDP下的基于策略 π \pi π的状态价值函数,表示从状态s开始,遵循当前策略时所获得的收获的期望。

v π ( s ) = E π [ G t ∣ S t = s ] v_{\pi}(s)=E_{\pi}[G_t|S_t=s] vπ(s)=Eπ[GtSt=s]

上述中的 π \pi π是固定的。变化的是在当前state,依据policy产生的action。

行为价值函数

行为价值函数,表示在执行策略 π \pi π时,对当前状态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π(s,a)=Eπ[GtSt=s,At=a]

状态价值函数对应的贝尔曼方程

v π ( s ) = E π [ R t + 1 + γ v π ( S t + 1 ) ∣ S t = s ] v_{\pi}(s)=E_{\pi}[R_{t+1}+\gamma v_{\pi}(S_{t+1})|S_t=s] vπ(s)=Eπ[Rt+1+γvπ(St+1)St=s]

行为价值函数对应的贝尔曼方程

q π ( s , a ) = E π [ R t + 1 + γ q π ( S t + 1 , A t + 1 ) ∣ S t = s , A t = a ] q_{\pi}(s,a)=E_{\pi}[R_{t+1}+\gamma q_{\pi}(S_{t+1}, A_{t+1})|S_t=s, A_t=a] qπ(s,a)=Eπ[Rt+1+γqπ(St+1,At+1)St=s,At=a]

状态价值函数与行为价值函数之间的关系

  1. 从状态价值角度来理解:
    在这里插入图片描述
    如上图所示,空圈表示状态,黑圈表示action。当我们要求在某种策略 π \pi π下当前state对应的value,相当于,当前状态依据策略 π \pi π所有可能采取的动作的概率 π ( a ∣ s ) \pi(a|s) π(as)乘以该动作对应的行为价值 q π ( s , a ) q_{\pi}(s,a) qπ(s,a)之和。

  2. 从行为价值的角度来理解:
    在这里插入图片描述
    某个行为action对应的value,其实是当前状态的reward + 执行该action所有可能抵达的状态价值之和。

  3. 将状态与行为价值合并:
    在这里插入图片描述
    当然,我们也可以用另外一种推导办法,将action作为tree的root:

在这里插入图片描述

求解MDP:价值函数的最优化

最优状态价值函数

v ∗ ( s ) = m a x ( v π ( s ) ) v_*(s)=max(v_{\pi}(s)) v(s)=max(vπ(s))

所有可能的策略中,使得当前state对应的value最大的 π \pi π

最优行为价值函数

q ∗ ( s , a ) = m a x ( q π ( s , a ) ) q_*(s,a)=max(q_{\pi}(s,a)) q(s,a)=max(qπ(s,a))

所有可能的策略中,使得当前**状态行为对<s,a>**对应value最大的 π \pi π

求解MDP问题,就是在寻找q*.

最优策略

在MDP中,总是至少有一个最优policy

在这里插入图片描述
如果我们每次选取使得 q ∗ q_* q最大的action,这就是一种最优策略。

所以,如果我们知道最优行为价值函数,则表明我们找到了最优策略。

整个求解过程就可以表述为寻找最大回报 V ∗ ( s ) V^*(s) V(s)以及对应最优策略的 π ∗ ( s ) \pi^*(s) π(s)

贝尔曼最优方程

同样的,有两种途径给出公式求解,分别是通过状态价值函数最优和行为价值最优。

  1. 状态价值最优:
    在这里插入图片描述
    其中 m a x a R s a \mathop{max}\limits_{a}R^a_s amaxRsa是从state到最优action得到的reward;

    γ ∑ s ′ ∈ S P s s ′ a v ∗ ( s ′ ) \gamma \sum\limits_{s'\in S}P^a_{ss'}v_*(s') γsSPssav(s)是最优action到所有可能state的概率value之和

  2. 行为价值最优:
    在这里插入图片描述
    同样的行为价值也可以推导出来。这里不再详细说明。

求解贝尔曼最优方程的方法

在这里插入图片描述

3. MDP的变种

除了如下列出来的两种外,还有平均奖励MDP、Ergodic MDP等等。

a. 无限状态或连续空间下的MDP

在这里插入图片描述

b. POMDP

在这里插入图片描述

参考文献

[1] https://leovan.me/cn/2020/05/markov-decision-process/#fn:sutton2018reinforcement
[2] http://lanbing510.info/2015/11/17/Master-Reinforcement-Learning-MDP.html
[3] https://tianshou.readthedocs.io/zh/latest/_static/thesis.pdf
[4] https://www.davidsilver.uk/wp-content/uploads/2020/03/MDP.pdf


http://chatgpt.dhexx.cn/article/pSUGd6Nu.shtml

相关文章

贝叶斯网络、马尔可夫模型、马尔可夫过程、马尔可夫链、马尔可夫网络基本概念

知识储备与简要概括 可数集【Countable set】&#xff1a; 是指每个元素都能与自然数集N的每个元素之间能建立一一对应的集合。如果将可数集的每个元素标上与它对应的那个自然数记号&#xff0c;那么可数集的元素就可以按自然数的顺序排成一个无穷序列a1&#xff0c;a2&#…

强化学习笔记:马尔可夫过程 马尔可夫奖励过程

1 马尔可夫性质 &#xff08;Markov Property&#xff09; 我们设状态的历史为&#xff08;包含了之前的所有状态&#xff09; 如果一个状态转移是符合马尔可夫性质的&#xff0c;也就是满足如下条件&#xff1a; 也就是说&#xff0c;从当前状态转移到状态的概率&#xff0c;就…

马尔可夫性质、马尔可夫链和马尔可夫过程

关注&#xff1a;灰质&#xff0c;有趣有料的AI技术分享 前言 研究决策问题就一定听说过马尔可夫过程&#xff08;Markov Process&#xff09;&#xff0c;这是一类非常重要的方法。现在非常热门的强化学习都是基于马尔可夫过程方法建立的。马尔可夫决策过程是研究随机序贯决策…

1.3 马尔可夫过程

之前介绍的奖励、智能体、动作、观察和环境可以看成RL的一级概念。以此为基础&#xff0c;我们将探索RL的二级概念&#xff0c;包括状态&#xff08;state&#xff09;、事件&#xff08;episode&#xff09;、历史&#xff08;history&#xff09;、价值&#xff08;value&…

一文看懂马尔科夫过程

1.马尔科夫决策过程(MDPs)简介 马尔科夫决策过程是对强化学习(RL)问题的数学描述。几乎所有的RL问题都能通过MDPs来描述: 最优控制问题可以用MDPs来描述;部分观测环境可以转化成POMDPs;赌博机问题是只有一个状态的MDPs;注:虽然大部分DL问题都能转化为MDPs,但是以下所描述…

马尔可夫Markov决策过程 MDP、马尔可夫奖励过程MRP

引言 在概率论及统计学中&#xff0c;马尔可夫过程&#xff08;英语&#xff1a;Markov process&#xff09;是一个具备了马尔可夫性质的随机过程&#xff0c;因为俄国数学家安德雷马尔可夫得名。马尔可夫过程是不具备记忆特质的&#xff08;memorylessness&#xff09;。换言…

零基础学习python数据分析,需要掌握哪些技能?

对于刚刚入行的小白同学来说&#xff0c;在学习python的过程中&#xff0c;一定会遇到一些疑问。比如说&#xff1a; 学习Python需要多久&#xff1f; 学习Python需要达到什么样的程度&#xff1f; 学Python的书籍有哪些&#xff1f; 为了处理数据集&#xff0c;我需要精通…

Python数据分析期末复习归纳

python数据分析期末复习归纳&#xff08;更新中&#xff09; 文章目录 python数据分析期末复习归纳&#xff08;更新中&#xff09;前言一、python语言基础二、内建数据结构、函数、文件&#xff08;重点&#xff09;元组列表内建序列函数字典函数 三、Numpy基础&#xff08;重…

Python数据分析师特训营84节

刚看完了小破站的一个数据分析的课程&#xff1a; “2020年Python数据分析师特训营全套84节视频完结版&#xff08;就业向/零基础友好)” 趁着热乎劲儿&#xff0c;想记录一下课程讲到的关于python的基础知识&#xff0c;还有numpy、pandas、matplotlib(数据分析三大利器)工具…

Python数据分析:混淆矩阵

【小白从小学Python、C、Java】 【Python全国计算机等级考试】 【Python数据分析考试必会题】 ● 标题与摘要 Python数据分析 混淆矩阵 ● 选择题 以下关于混淆矩阵说法错误的是&#xff1a; A TP是被正确分类的正例个数 B FN是被错误分类的正例个数 C 主对角元素是不同类别样例…

Python数据分析和处理

数据的维度 从一个数据到一组数据:一个数据表达一个含义&#xff0c;一组数据表达一个或多个含义 维度&#xff1a;一组数据的组织形式 一维数据&#xff1a;由对等关系的有序或无序数据构成。采用线性方式组织 二维数据&#xff1a;由多个一维数据组成&#xff0c;是一维数…

Python数据分析之理论知识

文章目录 Python数据分析概述一、数据分析的概念1.广义数据分析2.数据挖掘 二、数据分析流程1. 需求分析&#xff1a;2. 数据获取3.数据预处理4.分析与建模5.模型评价与优化6. 分类模型评价指标7.回归模型8.部署 三、数据分析应用场景四、总思维导图 Python数据分析概述 一、数…

如何用Python进行数据分析,详细流程讲解!

1&#xff1a;为什么选择Python进行数据分析? Python是一门动态的、面向对象的脚本语言&#xff0c;同时也是一门简约&#xff0c;通俗易懂的编程语言。Python入门简单&#xff0c;代码可读性强&#xff0c;一段好的Python代码&#xff0c;阅读起来像是在读一篇外语文章。Pyt…

如何用Python进行数据分析?

本文为CDA数据分析研究院原创作品,转载需授权 1.为什么选择Python进行数据分析? Python是一门动态的、面向对象的脚本语言,同时也是一门简约,通俗易懂的编程语言。Python入门简单,代码可读性强,一段好的Python代码,阅读起来像是在读一篇外语文章。Python这种特性称为“伪…

Python做数据分析需要学什么?

下面分别从这四个方面来带大家学习数据分析&#xff1a; 第一&#xff0c;做数据分析要精通Python吗&#xff1f;第二&#xff0c;数据分析流程是什么&#xff1f;学什么&#xff1f;第三&#xff0c;如何培养数据分析思维&#xff1f;第四&#xff0c;数据分析书籍推荐 一、…

Python大作业——爬虫+可视化+数据分析+数据库(数据分析篇)

个人博客 Python大作业——爬虫可视化数据分析数据库&#xff08;简介篇&#xff09; Python大作业——爬虫可视化数据分析数据库&#xff08;爬虫篇&#xff09; Python大作业——爬虫可视化数据分析数据库&#xff08;可视化篇&#xff09; Python大作业——爬虫可视化数…

用python进行数据分析(入门学习)

做笔记啦&#xff01;&#xff01;&#xff01;这几天突击了一下使用python进行数据分析&#xff0c;觉得还是梳理一遍比较好&#xff0c;不然学得快忘得也快[捂脸] 所以&#xff0c;今天这篇文章就主要介绍一下用python进行数据分析中常用到的三个库&#xff1a;numpy、pandas…

111个Python数据分析实战项目,代码已跑通,数据可下载

写在前面&#xff1a; 这里整理了111个数据分析的案例&#xff0c;每一个都进行了严格的筛选&#xff0c;筛选标准如下&#xff1a; 1. 有干货&#xff1a;杜绝纯可视化、统计性分析&#xff0c;有一定比例的讲解性文字 2. 可跑通&#xff1a;所有代码均经过测试&#xff0c;…

一文看懂怎么用 Python 做数据分析

常遇到两类朋友。一类是会爬虫但不知道如何进一步做数据分析的&#xff0c;一类是平常用 Excel 做分析但不太会用 Python 分析的。如果和你很像&#xff0c;那下面这篇系统长文会很适合你&#xff0c;建议先收藏。 Excel 是数据分析中最常用的工具&#xff0c;本文通过 Python…

数据结构—顺序表

目录 顺序表介绍 创建顺序表类型 初始化顺序表 销毁顺序表 打印顺序表 增加数据 头插 尾插 删除数据 头删 尾删 查找数据 修改指定下标的数据 整体代码 顺序表介绍 什么是顺序表&#xff1f; 顺序表是用一段物理地址连续的存储单元依次存储数据元素的线性结构&a…