马尔可夫决策过程

马尔可夫决策过程

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

1. 马尔可夫性质

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

2. 马尔可夫过程

image

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

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

P=[0.90.100000.500.50000000.600.400000.30.700.20.30.500000001]

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

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

image

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

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

1. 回报

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

image

取折扣因子 γ=0.5,那么s1 的回报

G1=0.50×(1)+0.51×(2)+0.52×(2)+0.53×(0)=1+0.5×(2)+0.52×(2)=2.5

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

2. 价值函数

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

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

V(s)=r(s)+γsSp(s|s)V(s)


PS:可能有人会对贝尔曼期望方程推导的这一步感到困惑:

image

其实这么转换的依据是 「全期望公式」

image

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

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

image

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

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

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

image

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

image

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

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

image

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

Qπ(s,a)=r(s,a)+γsSP(s|s,a)Vπ(s)

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

Vπ(s)=nAπ(a|s)Qπ(s,a)

1. 贝尔曼期望方程

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

image

5. 蒙特卡洛法求解 V

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

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

image

6. 占用度量

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

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

Ptπ(s) 表示采取策略 π 使得智能体在时刻状态 t 时刻状态为 s 的概率,那么

vπ(s)=(1γ)t=0γtPtπ(s)

注意,根据等比数列求和公式可知, t=0γt=11γ,所以乘上 (1γ) 进行归一化。

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

vπ(s)=(1γ)t=0γtPtπ(s)π(a|s)

7. 最优策略

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

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

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

1. 贝尔曼最优方程

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

image
posted @   狐王驾虎  阅读(194)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· 推荐几款开源且免费的 .NET MAUI 组件库
· 实操Deepseek接入个人知识库
· 易语言 —— 开山篇
· Trae初体验
点击右上角即可分享
微信分享提示