首页 > 其他分享 >「马尔可夫决策过程」学习笔记

「马尔可夫决策过程」学习笔记

时间:2024-03-04 21:45:07浏览次数:26  
标签:状态 函数 决策 笔记 马尔可夫 pi 过程 gamma

马尔可夫决策过程

个人在学习「马尔可夫过程」时(基于这本教材,强烈推荐),做了些总结,并将遇到了一些感到困惑自我解答了,在此整理并记录一下。

1. 马尔可夫性质

简单的一句话:当前状态 只取决于上一时刻 的状态。这个视频很生动地解释了这一性质。

2. 马尔可夫过程

image

「马尔可夫过程」也叫「马尔可夫链」,可以用元组 \((S, P)\) 来表示,也就是组成马尔可夫过程的这些东西。

图中 绿圈 表示的 $s_1, s_2, s_3 …… $ 就是状态(state),所有的状态就组成了 状态集合 \(S\)
图中 蓝色 的那些数字与它所在的箭头就表示了「状态之间的转移概率」。将状态视为节点,转移概率视为单向边,看得出来它就是图结构。用「邻接矩阵」表示就得到了 状态转移矩阵 \(P\)

\[P = \begin{bmatrix} 0.9 & 0.1 & 0 & 0 & 0 & 0 \\ 0.5 & 0 & 0.5 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0.6 & 0 & 0.4 \\ 0 & 0 & 0 & 0 & 0.3 & 0.7 \\ 0 & 0.2 & 0.3 & 0.5 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 & 1 \end{bmatrix}\]

所以,我们可以像寻路(图搜索)一样,从一个状态出发去往某个状态,途径节点所构成的「路径」我们称为 「状态转移序列」,例如从 \(s_2\) 出发,可以有这样的序列:\(s_2 \to s_3 \to s_4 \to s_6\),我们也将寻路的这个步骤称为 「采样」

3. 马尔可夫奖励过程(MRP)

image

在「马尔可夫过程」的基础上添加 \(r 和 \gamma\),构成了「马尔可夫奖励过程」,可以用 \((S, P, r, \gamma)\) 表示。

其中 \(r\) 是 「奖励函数」,表示 到达状态时 获得的奖励期望。图中用红色数字就表示了每个状态的 \(r\) 。
\(\gamma\) 是一个 0 ~ 1 的数字,表示 「折扣因子」, 是对远期收益的采取的限制,在计算状态序列的「回报」时会用到。

1. 回报

计算「回报」需要通过「状态转移序列」,而且计算出来的这个「回报」是指这个 序列起点状态的回报 。比如下图红线标出的选中的序列 \(s_1 \to s_2 \to s_3 \to s_6\):

image

取折扣因子 \(\gamma = 0.5\),那么\(s_1\) 的回报

\[ \begin{aligned} G_1 &= 0.5^0 \times (-1) + 0.5^1 \times (-2) + 0.5 ^2 \times(-2) + 0.5^3 \times (0) \\ & = -1 + 0.5 \times (-2) + 0.5^2 \times (-2)\\ & = -2.5 \end{aligned} \]

回报的计算过程可以用「秦九昭算法」进行简化,这也是开篇提及的那本教材中的做法(代码部分)。

2. 价值函数

以一个状态作为起点所生成的「状态转移序列」可以有很多,而且从一个状态转移到另外一个状态是有概率的,把这点考虑在内后,我们可以求得 从一个状态开始执行的所有可能状态转移序列的累积期望回报(这也是蒙特卡洛法的依据),这个期望值就称为起点状态的 「价值」

所有状态的价值就组成了 「价值函数」,用 \(V\) 表示,它允许我们输入一个状态,就返回其对应的「价值」。根据「价值函数」的计算过程(不细说了),我们可以得出 贝尔曼方程

\[V(s) = r(s) + \gamma \sum_{s'\in S} p(s'|s)V(s') \]

对于小型的马尔可夫链,可以直接通过矩阵运算将上述式子硬解出 \(V\),这也就是 「解析法」

4. 马尔可夫决策过程(MDP)

image

「马尔可夫过程」和「马尔可夫奖励过程」都是 自发改变 的随机过程;而如果有「外力」来共同改变这个随机过程,就有了「马尔可夫决策过程」。在「马尔可夫奖励过程」的基础上,再添加作为「外力」的 动作集合 \(A\) 就得到「马尔可夫决策过程」,用 \((S, A, P, r, \gamma)\) 表示。

图中黄色圆圈就表示「动作」,可以看出,在马尔可夫决策过程中,状态之间的切换必须通过动作。

通过与「马尔可夫奖励过程」的对比,来看看一些新概念:

image

二者都有蓝色虚线箭头,表示单向转移的概率(「决策过程」没有标出数字的蓝色箭头,是因为从那个动作出发只有一根箭头,概率为1);但明显「马尔可夫决策过程」还有一种黑色实线箭头,而且也没有标注表示概率的数字,是因为没有概率吗?

非也,这个黑色箭头也是要有概率的,只不过具体概率的多少是人为给定的,所有这样人为制定的从「状态」到「动作」的概率就称为 「策略」,用 \(\pi\) 表示,例如,针对上面的决策过程,给出一个「策略」\(\pi_2\) ,那么决策过程就相当于这样:

image

还可以看到一个明显的不同,奖励过程中的 \(r\) 标在状态上,而决策过程的 \(r\) 标在动作上。更具体地,奖励过程中的奖励函数只取决于状态,可记为 \(r(s)\);决策过程的奖励函数同时取决于状态和动作,记为 \(r(s, a)\)。

既然「奖励函数」在动作身上,那我们也可以像「马尔可夫奖励过程」一样求得动作的「价值函数」,只不过这个「价值函数」表示的是,在策略 \(\pi\) 下,从起点状态 \(s\) 通过执行动作 \(a\) 所得的期望回报,我们称其为 「动作价值函数」,用 \(Q^\pi(s, a)\) 表示:

\[Q^\pi(s,a)=r(s,a)+\gamma\sum_{s'\in S}P(s'|s,a)V^\pi(s') \]

通过「动作价值函数」可以进一步求得「从状态 \(s\) 出发遵循策略 \(\pi\) 能获得的期望回报」,也就是 「状态价值函数」,用 \(V^\pi(s)\) 表示。它等于在该状态下基于策略 \(\pi\) 采取所有动作的概率与相应的价值相乘再求和的结果:

\[V^\pi(s)=\sum_{n \in A}\pi(a|s)Q^\pi(s,a) \]

1. 贝尔曼期望方程

通过上述两个价值函数,可以得出各自的 贝尔曼期望方程

image

5. 蒙特卡洛法求解 \(V\)

解析法的时间复杂度是 \(O(n^3)\),难以用于普遍情况。蒙特卡洛法对于每个状态都进行大量「采样」,各自得到大量状态转移序列,再分别求出这些序列的「回报」的平均值作为各自状态的「价值」,从而求出「价值函数」。听起来很无脑,但却是合理的,因为这就是在模拟获取状态的所有可能序列,与「价值」的定义相符。

再求平均值时,推荐使用 增量式 方法:

image

6. 占用度量

即便是同一个「马尔可夫决策过程」,策略 \(\pi\) 不同,就会导致「价值函数」不同。

我们可以定义 「状态访问概率」,顾名思义,表示在执行某个策略时,状态 被访问到的概率。这意味着它告诉我们在与MDP交互并执行某个策略时,智能体会花费多少时间在每个状态上,或者说智能体会以多大的概率处于每个状态。

设 \(P_t^\pi(s)\) 表示采取策略 \(\pi\) 使得智能体在时刻状态 \(t\) 时刻状态为 \(s\) 的概率,那么

\[v^\pi(s) = (1-\gamma)\sum_{t=0}^\infty\gamma^tP_t^\pi(s) \]

注意,根据等比数列求和公式可知, \(\sum_{t=0}^\infty\gamma^t = \frac{1}{1-\gamma}\),所以乘上 \((1-\gamma)\) 进行归一化。

同样,我们定义 「占用度量」,它表示执行某个策略时,行动 被访问到的概率:

\[v^\pi(s) = (1-\gamma)\sum_{t=0}^\infty\gamma^tP_t^\pi(s)\pi(a|s) \]

7. 最优策略

强化学习的目标通常是找到一个策略,使得智能体从初始状态出发能获得最多的期望回报。

因此,我们希望能找到一个最好的策略 \(\pi\),对于任一的状态 \(s\),都能使得 $V^\pi(s) \ge V^\pi{'}(s) \((\)\pi'$指其它策略),那这个策略就称为 「最优策略」,用 \(\pi^*\) 表示。

对应的,最优策略下得到的「状态价值函数」也用 \(V^{*}(s)\) 表示,意为「最优状态价值函数」。「动作价值函数」同理:「最优动作价值函数」\(Q^{*}(s,a)\)。

1. 贝尔曼最优方程

同样,我们可以写出这两个状态函数的 贝尔曼最优方程

image

标签:状态,函数,决策,笔记,马尔可夫,pi,过程,gamma
From: https://www.cnblogs.com/OwlCat/p/18052770

相关文章

  • 王概凯架构漫谈学习笔记
    一,什么是架构-架构实际上解决的是人的问题架构产生源于每个人不能自己完成所有哦生活必须品的生产。为了解决人类的延续的问题,自然而然就有男女群居出现,这个时候就出现了分工了,男性和女性所做的事情就会有一定的分工,可是人每天生活的基本需求没有发生变化,还是衣食住行等生活必须......
  • 道路交通安全法实施条例-学习笔记
    1.初次申领机动车号牌、行驶证的,应当向机动车所有人住所地的公安机关交通管理部门申请注册登记。 申请机动车注册登记,应当交验机动车,并提交以下证明、凭证: (一)机动车所有人的身份证明; (二)购车发票等机动车来历证明; (三)机动车整车出厂合格证明或者进口机动车进口凭证;......
  • 红日靶场01多角度打靶笔记
    红日靶场01这个笔记主要是利用这个靶场环境,对内网渗透的思路进行整合一下,因此过程中会涉及多个攻击方式和思路。环境搭建windows7是靶机01Windowsserver2008R2是靶机02Windowsserver2003是靶机03Windows10是攻击01kali是攻击02(cs服务端和msf都在上面)这个靶......
  • Mysql基本语法笔记
    DDL--操作数据库1.查询SHOWDATABASES;2.创建CREATEDATABASE数据库名称CHARACTERSETutf8;如果不存在创建CREATEDATABASEIFNOTEXISTS数据库名称;3.删除DROPDATABASE数据库名称;如果存在删除DROPDATABASEIFEXISTS数据库名称;4.使用数据库查看当前数......
  • st 算法学习笔记
    前言在看这篇文章之前,请先自行了解以下几项东西:1.倍增思想。2.动态规划思想。3.乘方位运算实现如有错误,欢迎各位dalao批评指出。什么是\(st\)算法?st算法是一种解决RMQ问题的算法。RMQ及RangeMinimum/MaximumQuery,即区间最大最小值查询。该算法采用了......
  • 【个人前端笔记】web性能优化:连接复用
    一、连接复用keep-alive当我们去连接www.baidu.com的时候,会经历以下过程(没有连接复用)连接过程:发起TCP连接---->请求资源----->下载资源---->关闭TCP连接---->再次发起TCP连接.....如果有多个资源需要请求,我们就要发起tcp然后关闭tcp连接,然后再发起和关闭如果可以发起一次tcp......
  • 黑马程序员JavaWeb学习笔记-过滤器
    过滤器--Filter过滤器Filter快速入门Filter拦截路径过滤器链Filter——流程importcom.alibaba.fastjson.JSONObject;importcom.itheima.pojo.Result;importlombok.extern.slf4j.Slf4j;importorg.springframework.util.StringUtils;importjavax.servlet.*;im......
  • 黑马程序员JavaWeb学习笔记-拦截器
    拦截器--Interceptor--快速入门@Component注解交给ioc容器管理--注册配置拦截器@Configuration注解用来标识当前是Spring当中的一个配置类//Interceptor拦截所有("/**")//Filter拦截所有("/*")//WebConfig需要在包下新建一个config包与controller同级//.excl......
  • 黑马程序员JavaWeb学习笔记-文件上传
    文件上传https://www.bilibili.com/video/BV1m84y1w7Tb/?p=150&spm_id_from=pageDriver&vd_source=62f4901d4d947272c439194b87ec6698当报错500时,服务端出现错误,因为默认最大为1M在application.properties里面修改文件上传的几个函数本地存储Controller层的代码import......
  • 【个人前端笔记】Event loop和微任务与宏任务
    一、EventloopEventloop是指在node.js的事件循环,不是在浏览器中二、Eventloopd各个阶段┌───────────────────────┐┌─>│timers│timers阶段:这个阶段执行setTimeout和setInterval的回调函数。│└───────......