当前位置: 首页 > news >正文

强化学习(二)马尔科夫决策过程(MDP)

1. 简介

  • 马尔可夫决策过程正式地描述了强化学习的环境
  • 其中环境是完全可观测的
  • 即当前状态完全表征了这个过程
  • 几乎所有的强化学习问题都可以形式化为马尔可夫决策过程,例如:
    • 最优控制主要处理连续的马尔可夫决策过程
    • 部分可观察的问题可以转化为马尔可夫决策过程
    • 赌场问题是具有单一状态的马尔可夫决策过程

2. 马尔科夫性(Markov property)

当一个随机过程在给定现在状态及所有过去状态情况下,其未来状态的条件概率分布仅依赖于当前状态;换句话说,在给定现在状态时,它与过去状态(即该过程的历史路径)是条件独立的,那么此随机过程即具有马尔可夫性质。具有马尔可夫性质的过程通常称之为马尔可夫过程。

用式子来表示:

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,\cdots,S_t] P[St+1St]=P[St+1S1,,St]

或者:

P s s ′ = P [ S t + 1 = s ′ ∣ S t = s ] \mathcal{P}_{ss'}=\mathbb{P}[S_{t+1}=s'|S_t=s] Pss=P[St+1=sSt=s]

状态转移矩阵 P \mathcal{P} P 定义了从 s s s 的所有状态到所有后继状态 s ′ s' s 的转移概率,每一行的和都是1

3. 马尔可夫过程(Markov Process)

马尔科夫过程是一个无记忆的随机过程,比如一系列遵循马尔科夫性的随机状态 S 1 , S 2 , ⋯ S_1,S_2,\cdots S1,S2,

定义:马尔可夫过程(也称为马尔可夫链)是一个元组 ⟨ S , P ⟩ \left\langle S,\mathcal{P}\right \rangle S,P,其中:

  • S S S 是一个有限的状态集合
  • P \mathcal{P} P 是一个状态转移矩阵, P s s ′ = P [ S t + 1 = s ′ ∣ S t = s ] \mathcal{P}_{ss'}=\mathbb{P}[S_{t+1}=s'|S_t=s] Pss=P[St+1=sSt=s]

例子:学生马尔可夫链

这个马尔科夫链从 S 1 = C 1 S_1=C1 S1=C1 开始, S 1 , S 2 , ⋯ , S T S_1,S_2,\cdots,S_T S1,S2,,ST 举例如下:

C 1 , C 2 , C 3 , P a s s , S l e e p C1,C2,C3,Pass,Sleep C1,C2,C3,Pass,Sleep
C 1 , F B , F B , C 1 , C 2 , S l e e p C1,FB,FB,C1,C2,Sleep C1,FB,FB,C1,C2,Sleep
C 1 , C 2 , C 3 , P u b , C 2 , C 3 , P a s s , S l e e p C1,C2,C3,Pub,C2,C3,Pass,Sleep C1,C2,C3,Pub,C2,C3,Pass,Sleep
C 1 , F B , F B , C 1 , C 2 , C 3 , P u b , C 1 , F B , F B , F B , C 1 , C 2 , C 3 , P u b , C 2 , S l e e p C1,FB,FB,C1,C2,C3,Pub,C1,FB,FB,FB,C1,C2,C3,Pub,C2,Sleep C1,FB,FB,C1,C2,C3,Pub,C1,FB,FB,FB,C1,C2,C3,Pub,C2,Sleep

学生马尔可夫链的转移矩阵:

4. 马尔可夫奖励过程(Markov Reward Process)

马尔可夫奖励过程是一个元组 ⟨ S , P , R , γ ⟩ \left\langle S,\mathcal{P},\mathcal{R},\gamma\right \rangle S,P,R,γ

  • S S S 是一个有限的状态集合
  • P \mathcal{P} P 是一个状态转移矩阵, P s s ′ = P [ S t + 1 = s ′ ∣ S t = s ] \mathcal{P}_{ss'}=\mathbb{P}[S_{t+1}=s'|S_t=s] Pss=P[St+1=sSt=s]
  • R \mathcal{R} R 是一个奖励函数, R s = E [ R t + 1 ∣ S t = s ] \mathcal{R}_s=\mathbb{E}[R_{t+1}|S_t=s] Rs=E[Rt+1St=s]
  • γ \gamma γ 是一个折扣系数, γ ∈ [ 0 , 1 ] \gamma\in[0,1] γ[0,1]

例子:学生马尔可夫奖励过程(Student MRP)

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} + \cdots = \sum_{k=0}^{\infty} \gamma^k R_{t+k+1} Gt=Rt+1+γRt+2+γ2Rt+3+=k=0γkRt+k+1 代表收获(return),是一个MDP中从某一个状态 S t S_t St 开始采样直到终止状态时所有奖励的有衰减的和。

其中:

  • 折扣系数(或者叫衰减系数) γ ∈ [ 0 , 1 ] \gamma\in[0,1] γ[0,1] 是未来奖励的当下价值
  • k + 1 k+1 k+1 个时间步后获得奖励的价值为 γ k R \gamma^kR γkR
  • 即时奖励的价值高于延迟奖励:
    • γ \gamma γ 接近0会导致“近视”评估
    • γ \gamma γ 接近1会导致“远视”评估

大多数马尔可夫奖励和决策过程是带有折扣的。为什么?

  • 数学上折扣奖励更方便
  • 避免循环马尔可夫过程中出现无限回报
  • 对未来的不确定性可能无法完全表示
  • 如果奖励是金钱,即时奖励可能比延迟奖励赚取更多利息
  • 动物/人类行为表现出对即时奖励的偏好
  • 有时可以使用不带折扣的马尔可夫奖励过程(即 γ = 1 \gamma=1 γ=1),比如所有的序列都一定会终止

例子:Student MRP Returns

初始状态为 S 1 = C 1 S_1=C1 S1=C1 γ = 1 2 \gamma=\frac{1}{2} γ=21

G 1 = R 2 + γ R 3 + ⋯ + γ T − 2 R T G_1=R_2+\gamma R_3+\cdots+\gamma^{T-2}R_T G1=R2+γR3++γT2RT

γ = 0 \gamma=0 γ=0 时学生MRP的状态价值函数:

γ = 0.9 \gamma=0.9 γ=0.9 时学生MRP的状态价值函数:

γ = 1 \gamma=1 γ=1 时学生MRP的状态价值函数:

马尔科夫奖励过程的贝尔曼方程

状态价值函数可以被分解为两部分:

  • 即时奖励 R t + 1 R_{t+1} Rt+1
  • 后续状态的折扣价值 γ v ( S t + 1 ) \gamma v(S_{t+1}) γv(St+1)

v ( s ) = E [ G t ∣ S t = s ] = E [ R t + 1 + γ R t + 2 + γ 2 R t + 3 + … ∣ S t = s ] = E [ R t + 1 + γ ( R t + 2 + γ R t + 3 + … ) ∣ S t = s ] = E [ R t + 1 + γ G t + 1 ∣ S t = s ] = E [ R t + 1 + γ v ( S t + 1 ) ∣ S t = s ] \begin{align*} v(s) &= \mathbb{E} [G_t \mid S_t = s] \\ &= \mathbb{E} [R_{t+1} + \gamma R_{t+2} + \gamma^2 R_{t+3} + \ldots \mid S_t = s] \\ &= \mathbb{E} [R_{t+1} + \gamma (R_{t+2} + \gamma R_{t+3} + \ldots) \mid S_t = s] \\ &= \mathbb{E} [R_{t+1} + \gamma G_{t+1} \mid S_t = s] \\ &= \mathbb{E} [R_{t+1} + \gamma v(S_{t+1}) \mid S_t = s] \end{align*} v(s)=E[GtSt=s]=E[Rt+1+γRt+2+γ2Rt+3+St=s]=E[Rt+1+γ(Rt+2+γRt+3+)St=s]=E[Rt+1+γGt+1St=s]=E[Rt+1+γv(St+1)St=s]

马尔科夫奖励过程(MRPs)的贝尔曼方程:

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

v ( s ) = R s + γ ∑ s ′ ∈ S P s s ′ v ( s ′ ) v(s)=\mathcal{R}_s+\gamma \sum_{s'\in\mathcal{S}}\mathcal{P}_{ss'}v(s') v(s)=Rs+γsSPssv(s)

例子:Student MRP的贝尔曼方程

这里的 γ = 1 \gamma=1 γ=1,并且已经知道了Pub的状态价值为0.8,Pass的状态价值为10

贝尔曼方程的矩阵形式:

v = R + γ P v v=\mathcal{R}+\gamma \mathcal{P}v v=R+γPv

其中 v v v 是每个状态都有一个对应元素的列向量:

求解贝尔曼方程:

贝尔曼方程是一个线性方程,可以被直接求解:

v = R + γ P v ( I − γ P ) v = R v = ( I − γ P ) − 1 R \begin{align*} v &= \mathcal{R} + \gamma \mathcal{P} v \\ (I - \gamma \mathcal{P}) v &= \mathcal{R} \\ v &= (I - \gamma \mathcal{P})^{-1} \mathcal{R} \end{align*} v(IγP)vv=R+γPv=R=(IγP)1R

对于n个状态的计算复杂度为 O ( n 3 ) O(n^3) O(n3)

因为计算复杂度比较大,直接求解只可能在小规模的马尔科夫奖励过程中实现,在大规模马尔科夫奖励过程中可以使用很多迭代的方法,比如:

  • 动态规划(Dynamic Programming)
  • 蒙特卡洛法(Monte-Carlo evaluation)
  • 时序差分法(Temporal-Difference)

5. 马尔科夫决策过程 Markov Decision Process

马尔科夫决策过程(MDP)就是带有决策的马尔科夫奖励过程(MRP),它是一个所有状态都符合马尔科夫性质的环境。

马尔科夫决策过程是一个元组 ⟨ S , A , P , R , γ ⟩ \left\langle \mathcal{S},\mathcal{A},\mathcal{P},\mathcal{R},\gamma\right \rangle S,A,P,R,γ

  • S \mathcal{S} S是一个有限的状态集合
  • A \mathcal{A} A 是一个有限的动作集合
  • P \mathcal{P} P 是一个状态转移概率矩阵, P s s ′ a = P [ S t + 1 = s ′ ∣ S t = s , A t = a ] \mathcal{P}_{ss'}^{a}=\mathbb{P}[S_{t+1}=s'|S_t=s,A_t=a] Pssa=P[St+1=sSt=s,At=a]
  • R \mathcal{R} R 是一个奖励函数, R = E [ R t + 1 ∣ S t = s , A t = a ] \mathcal{R}=\mathbb{E}[R_{t+1}|S_t=s,A_t=a] R=E[Rt+1St=s,At=a]
  • γ \gamma γ 是一个折扣率, γ ∈ [ 0 , 1 ] \gamma\in[0,1] γ[0,1]

例子:学生马尔科夫决策过程

策略 π \pi π是给定状态下动作的概率分布

π ( a ∣ s ) = P [ A t = a ∣ S t = s ] \pi(a|s)=\mathbb{P}[A_t=a|S_t=s] π(as)=P[At=aSt=s]

  • 策略完全定义了一个agent的行为
  • MDP的策略只依赖当前状态(不依赖历史状态)
  • 比如,策略是静态的,与时间无关, A t ∼ π ( ⋅ ∣ S t ) , ∀ t > 0 A_t \sim \pi(\cdot \mid S_t), \forall t > 0 Atπ(St),t>0

给定一个MDP ⟨ S , A , P , R , γ ⟩ \left\langle \mathcal{S},\mathcal{A},\mathcal{P},\mathcal{R},\gamma\right \rangle S,A,P,R,γ 和一个策略 π \pi π,状态序列 S 1 , S 2 , ⋯ S_1,S_2,\cdots S1,S2, 是一个马尔科夫过程 ⟨ S , P π ⟩ \left\langle \mathcal{S}, \mathcal{P}^{\pi} \right \rangle S,Pπ,状态和奖励序列 S 1 , R 2 , S 2 , ⋯ S_1,R_2,S_2,\cdots S1,R2,S2, 是一个马尔科夫奖励过程 ⟨ S , P π , R π , γ ⟩ \left\langle \mathcal{S},\mathcal{P}^{\pi},\mathcal{R}^{\pi},\gamma\right \rangle S,Pπ,Rπ,γ,则有:

P s , s ′ π = ∑ a ∈ A π ( a ∣ s ) P s s ′ a \mathcal{P}^\pi_{s,s'} = \sum_{a \in \mathcal{A}} \pi(a \mid s) \mathcal{P}^a_{ss'} Ps,sπ=aAπ(as)Pssa

R s π = ∑ a ∈ A π ( a ∣ s ) R s a \mathcal{R}^\pi_s = \sum_{a \in \mathcal{A}} \pi(a \mid s) \mathcal{R}^a_s Rsπ=aAπ(as)Rsa

价值函数:

一个MDP的状态价值函数 v π ( s ) v_{\pi}(s) vπ(s) 是从状态 s s s 开始依据策略 π \pi π 的收获( G t G_t Gt)的期望:

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

动作价值函数 q π ( s , a ) q_{\pi}(s,a) qπ(s,a) 是是从状态 s s s 开始依据策略 π \pi π 采取动作 a a a 的期望:

q π ( s , a ) = E π [ G t ∣ S t = s , A t = a ] q_{\pi}(s,a)=\mathbb{E}_{\pi}[G_t|S_t=s,A_t=a] qπ(s,a)=Eπ[GtSt=s,At=a]

例子:Student MDP的状态价值函数

Bellman期望方程 Bellman Expectation Equation

MDP下的状态价值函数和动作价值函数与MRP下的价值函数类似,可以改用下一时刻状态价值函数或动作价值函数来表达,具体方程如下:

v π ( s ) = E π [ R t + 1 + γ v π ( S t + 1 ) ∣ S t = s ] v_\pi(s) = \mathbb{E}_\pi \left[ R_{t+1} + \gamma v_\pi(S_{t+1}) \mid S_t = s \right] 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) = \mathbb{E}_\pi \left[ R_{t+1} + \gamma q_\pi(S_{t+1}, A_{t+1}) \mid S_t = s, A_t = a \right] qπ(s,a)=Eπ[Rt+1+γqπ(St+1,At+1)St=s,At=a]

根据动作价值函数 q π ( s , a ) q_{\pi}(s,a) qπ(s,a) 和状态价值函数 v π ( s ) v_{\pi}(s) vπ(s) 的定义,我们很容易得到他们之间的转化关系公式:

利用上贝尔曼方程,我们也很容易用状态价值函数表示动作价值函数
,即:

当然,也可以做一层推算:

例子:Student MDP的贝尔曼期望方程

图中计算Pass的状态价值所用方程:

v π ( s ) = ∑ a ∈ A π ( a ∣ s ) ( R s a + γ ∑ s ′ ∈ S P s s ′ a v π ( s ′ ) ) v_\pi(s) = \sum_{a \in \mathcal{A}} \pi(a \mid s) \left( \mathcal{R}^a_s + \gamma \sum_{s' \in \mathcal{S}} \mathcal{P}^a_{ss'} v_\pi(s') \right) vπ(s)=aAπ(as)(Rsa+γsSPssavπ(s))

因为不是从Pub来推理Pass,而是从Pub的上一层 Class 1,Class 2和Class 3来推理,所以不用知道Pub的状态价值就可以计算。同理因为Sleep没有上一层,所以只需要用它的奖励就可以计算Pass的价值。

贝尔曼期望方程的矩阵形式:

Bellman期望方程可以用诱导MRP简洁地表示:

v π = R π + γ P π v π v_{\pi}=\mathcal{R}^{\pi}+\gamma \mathcal{P}^{\pi}v_{\pi} vπ=Rπ+γPπvπ

可以直接求解:

v π = ( I − γ P π ) − 1 R π v_\pi = (I - \gamma \mathcal{P}^\pi)^{-1} \mathcal{R}^\pi vπ=(IγPπ)1Rπ

6. 最优价值函数

定义:

最优状态价值函数 v ∗ ( s ) v_{*}(s) v(s) 指的是在所有策略产生的状态价值函数中,使状态s价值最大的那个函数:

v ∗ ( s ) = max ⁡ π v π ( s ) v_*(s) = \max_{\pi} v_{\pi}(s) v(s)=πmaxvπ(s)

最优动作价值函数 q ∗ ( s , a ) q_{*}(s,a) q(s,a) 指的是在所有策略产生的动作价值函数中,使状态动作对 ⟨ s , a ⟩ \left\langle s,a \right \rangle s,a价值最大的那个函数:

q ∗ ( s , a ) = max ⁡ π q π ( s , a ) q_*(s,a) = \max_{\pi} q_{\pi}(s,a) q(s,a)=πmaxqπ(s,a)

最优价值函数明确了MDP的最优可能表现,当我们知道了最优价值函数,也就知道了每个状态的最优价值,这时便认为这个MDP得到了解决。

例子:Student MDP的最优价值函数

例子:Student MDP的最优动作价值函数

最优策略

定义策略的部分排序:

π ≥ π ′ if  v π ( s ) ≥ v π ′ ( s ) , ∀ s \pi \geq \pi' \ \text{if} \ v_{\pi}(s) \geq v_{\pi'}(s),\ \forall s ππ if vπ(s)vπ(s), s

定理:

对于任意马尔可夫决策过程(Markov Decision Process, MDP):

  • 存在一个最优策略 π ∗ \pi_{*} π,它优于或等于所有其他策略,即 π ∗ ≥ π , ∀ π \pi_{*}\geq\pi,\ \forall \pi ππ, π
  • 所有最优策略都能达到最优状态价值函数,即 v π ∗ ( s ) = v ∗ ( s ) v_{\pi_{*}}(s)=v_{*}(s) vπ(s)=v(s)
  • 所有最优策略都能达到最优动作-价值函数,即 q π ∗ ( s , a ) = q ∗ ( s , a ) q_{\pi}{*}(s,a)=q_{*}(s,a) qπ(s,a)=q(s,a)

寻找最优策略

可以通过最大化最优行为价值函数来找到最优策略:

π ∗ ( a ∣ s ) = { 1 if  a = arg ⁡ max ⁡ a ∈ A q ∗ ( s , a ) 0 otherwise \pi_*(a|s) = \begin{cases} 1 & \text{if } a = \underset{a \in \mathcal{A}}{\arg\max}\ q_*(s, a) \\ 0 & \text{otherwise} \end{cases} π(as)= 10if a=aAargmax q(s,a)otherwise

  • 对于任何MDP问题,总存在一个确定性的最优策略;
  • 如果我们得到了最优动作价值函数 q ∗ ( s , a ) q_{*}(s,a) q(s,a),则表明我们已经找到了最优策略。

例子:Student MDP的最优策略

v ∗ v_{*} v的贝尔曼最优方程

最优值函数通过贝尔曼最优方程递归关联

Q ∗ Q_{*} Q的贝尔曼最优方程

v ∗ v_{*} v的贝尔曼最优方程(2)

Q ∗ Q_{*} Q的贝尔曼最优方程(2)

例子:Student MDP的贝尔曼最优方程

求解贝尔曼最优方程:

尔曼最优方程是非线性的,(一般情况下)没有封闭解,但有许多迭代求解方法来解决:价值迭代(Value Iteration)、策略迭代(Policy Iteration)、Q学习(Q-learning)、Sarsa等

还有一些马尔可夫决策过程(MDPs)的扩展,比如:

  • 无限和连续的马尔可夫决策过程(Infinite and continuous MDPs)
  • 部分可观测的马尔可夫决策过程(Partially observable MDPs)
  • 无折扣、平均奖励的马尔可夫决策过程(Undiscounted, average reward MDPs)

这里不做一一讲解

http://www.xdnf.cn/news/220357.html

相关文章:

  • java AsyncTool
  • ACTF2025 - WEB Excellent-Site
  • 第十章:CrewAI - 面向流程的多 Agent 结构化协作
  • Andorid车机UI适配,AndroidUI图px的单位,如何适配1920x720,PPI100的屏幕设备
  • 【GESP】C++三级练习 luogu-B2117 整理药名
  • Rockchip Android平台打开GKI无法开机问题
  • 应用服务器-IIS
  • 推荐系统中 Label 回收机制之【时间窗口设计】
  • 基于Lucene的多场景检索系统开发指南
  • [按键安卓ios脚本辅助插件开发]数组排序函数例子
  • 明远智睿SSD2351开发板:开启嵌入式开发新篇程
  • C#实现对达索(Dassault)SolidWorks中3D图纸转化为手机可直接查看预览图纸格式
  • 高级项目管理
  • 巧记英语四级单词 Unit6-下【晓艳老师版】
  • C++程序退出时的对象析构陷阱:深度解析与避坑指南
  • mysql 事务中如果有sql语句出错,会导致自动回滚吗?
  • 力扣刷题总表
  • 【Vue】 实现TodoList案例(待办事项)
  • Java高频面试之并发编程-10
  • C++之string
  • 如何在本地部署小智服务器:从源码到全模块运行的详细步骤
  • CA校验主辅小区配置及UE能力
  • 首发记忆行车方案与座舱智能管家,佑驾创新“抢跑”驾舱融合市场
  • 恒流恒压直流充电测试负载设计:构建精准化检测体系
  • 计算机基础:二进制基础14,二进制加法
  • 如何将二叉树展开为链表?两种Java实现方法对比
  • FPGA 38 ,FPGA 网络通信协议栈基础,ARP 协议深度解析与模块划分( ARP与以太网帧,以及ARP模块常用文件 )
  • 细说STM32单片机FreeRTOS互斥量及其编程实例
  • C# 导入EXCEL 报错外部表不是预期的格式错误指南方案
  • C++中的vector和list有什么区别?