强化学习(一)——马尔可夫决策过程MDP

文章目录

  • 1. 马尔可夫过程(Markov Process)
    • 1.1 马尔可夫性质(Markov Property)
    • 1.2 状态转移矩阵(State Transition Matrix)
    • 1.3 马尔可夫过程(MP)
  • 2. 马尔可夫奖励过程(Markov Reward Process)
    • 2.1 回报与折扣因子(Return and Discount)
      • 问题:为什么需要折扣因子?
    • 2.2 状态价值函数(Value Function)
    • 2.3 马尔可夫奖励过程的贝尔曼方程(Bellman Equation for MRPs)
    • 2.4 计算马尔可夫奖励过程的迭代算法
  • 3. 马尔可夫决策过程(MDP)
    • 3.1 策略(Policy)
    • 3.2 价值函数(Value Function)
    • 3.3 马尔可夫决策过程的贝尔曼期望方程(Bellman Expectation Equation For MDPs)
    • 3.4 最优策略(Optimal Policy)
    • 3.5 贝尔曼最优方程(Bellman Optimality Equation)
    • 3.6 策略评估(value prediction)
  • Reference

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

1.1 马尔可夫性质(Markov Property)

未来只取决于当前状态,而与过去的历史无关。

The future is independent of the past given the present.

P ( S t + 1 ∣ S t ) = P ( S t + 1 ∣ S 1 , S 2 , ⋯   , S t ) P(S_{t+1}|S_t)=P(S_{t+1}|S_1,S_2,\cdots,S_t) P(St+1St)=P(St+1S1,S2,,St)

1.2 状态转移矩阵(State Transition Matrix)

状态转移概率
P s s ′ = P ( S t + 1 = s ′ ∣ S t = s ) P_{ss'}=P(S_{t+1}=s'|S_t=s) Pss=P(St+1=sSt=s)

状态转移矩阵
由状态转移概率组成的大小为 n ∗ n n*n nn的矩阵。它每一行描述了从一个节点到达其他节点的概率。
P = [ p 11 , ⋯   , p 1 n ⋮ , ⋯   , ⋮ p n 1 , ⋯   , p n n ] P= \begin{bmatrix} p_{11},&\cdots, &p_{1n} \\ \vdots,&\cdots, &\vdots \\ p_{n1},&\cdots, &p_{nn} \end{bmatrix} P= p11,,pn1,,,,p1npnn

给定一个马尔科夫链后,对这个链状态的采样,可以生成很多的轨迹。

1.3 马尔可夫过程(MP)

强化学习(一)——马尔可夫决策过程MDP_第1张图片

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

定义
马尔科夫奖励过程(Markov Reward Process)是马尔可夫过程再加上了一个奖励函数。它由一个四元组构成: < S , P , R , γ > <S,P,R,γ>

  • S为有限状态空间集, s i s_i si表示时间i的状态。
  • P为状态转移矩阵
  • R为奖励函数, R S = E [ R t + 1 ∣ S t = S ] = ∑ P S S ′ R S ′ R_S=E[R_{t+1}|S_t=S]=\sum P_{SS'}R_{S'} RS=E[Rt+1St=S]=PSSRS
  • γ \gamma γ为折扣因子, γ ∈ [ 0 , 1 ] \gamma \in [0,1] γ[0,1]
    注意:奖励 R S R_S RS是实时奖励,当发生状态转移时就会得到奖励。
    强化学习(一)——马尔可夫决策过程MDP_第2张图片

2.1 回报与折扣因子(Return and Discount)

(1)回报
回报是一次抽样轨迹的总折扣奖励。因为我们更希望得到现有的奖励,所以就要把未来奖励打折扣。对于每一个轨迹,我们都可以计算得到它的回报。
G t = R t + 1 + γ R t + 2 + ⋯ γ k R t + 1 + k = ∑ k = 0 ∞ γ k R t + 1 + k G_t=R_{t+1}+\gamma R_{t+2}+\cdots \gamma^kR_{t+1+k}=\sum_{k=0}^{\infty} \gamma^k R_{t+1+k} Gt=Rt+1+γRt+2+γkRt+1+k=k=0γkRt+1+k

其中, γ \gamma γ为折扣因子,介于 [ 0 , 1 ] [0,1] [0,1]之间。认为距离当前时间步越远的奖励,其重要性就越低。当 γ \gamma γ为0时,只考虑当前奖励。当未来奖励可以提前获得,则不需要折扣计算,令 γ = 1 \gamma=1 γ=1

问题:为什么需要折扣因子?

① 马尔可夫过程可能带环,我们想避免无穷的奖励
模型的不确定性,对未来的评估是不一定准确的。
③ 希望得到立即奖励,所以就要把未来奖励打折扣。

2.2 状态价值函数(Value Function)

价值函数表示状态s的长期价值,被定义为回报的期望值。
强化学习(一)——马尔可夫决策过程MDP_第3张图片

问题:如何利用一些轨迹的回报计算状态的价值函数呢?
方法一:蒙特卡洛采样(MC)算法:
选择初始进入的某个状态s,产生很多轨迹然后把这些轨迹的回报跌加起来。最后取平均作为状态s的价值。

方法二:Bellman Equation

2.3 马尔可夫奖励过程的贝尔曼方程(Bellman Equation for MRPs)

贝尔曼方程(Bellman Equation)定义了当前状态和未来状态间的迭代关系:当前状态价值 = 即时奖励 + 有折扣的未来价值。
V ( s ) = E ( R t + 1 + γ V ( s t + 1 ) ∣ S t = s ) = R s + γ × ∑ s ′ ∈ S P s s ′ V ( s ′ ) V(s) = E(R_{t+1}+\gamma V(s_{t+1})|S_t=s) \\ = R_s+\gamma \times \sum_{s' \in S}P_{ss'}V(s') V(s)=E(Rt+1+γV(st+1)St=s)=Rs+γ×sSPssV(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 + 1 + γ R t + 2 + ⋯ + γ k R t + 1 + k ∣ S t = s ] =E[R_{t+1}+\gamma R_{t+2}+\cdots+\gamma^k R_{t+1+k}|S_t=s] =E[Rt+1+γRt+2++γkRt+1+kSt=s]
= E [ R t + 1 ] + γ E [ R t + 2 + ⋯ + γ k − 1 R t + 1 + k ∣ S t = s ] =E[R_{t+1}]+\gamma E[R_{t+2}+\cdots+\gamma^{k-1} R_{t+1+k}|S_t=s] =E[Rt+1]+γE[Rt+2++γk1Rt+1+kSt=s]
= R ( s ) + γ ∑ s ′ ∈ S P s s ′ E [ R t + 2 + ⋯ + γ k − 1 R t + 1 + k ∣ S t = s , S t + 1 = s ′ ] =R(s)+\gamma \sum_{s' \in S}P_{ss'}E[R_{t+2}+\cdots+\gamma^{k-1} R_{t+1+k}|S_t=s,S_{t+1}=s'] =R(s)+γsSPssE[Rt+2++γk1Rt+1+kSt=s,St+1=s]
= R ( s ) + γ ∑ s ′ ∈ S P s s ′ E [ R t + 2 + ⋯ + γ k − 1 R t + 1 + k ∣ S t + 1 = s ′ ] =R(s)+\gamma \sum_{s' \in S}P_{ss'}E[R_{t+2}+\cdots+\gamma^{k-1} R_{t+1+k}|S_{t+1}=s'] =R(s)+γsSPssE[Rt+2++γk1Rt+1+kSt+1=s]
= R ( s ) + γ ∑ s ′ ∈ S P s s ′ V ( s ′ ) =R(s)+\gamma \sum_{s' \in S}P_{ss'}V(s') =R(s)+γsSPssV(s)

当前状态的价值函数由即时奖励与未来奖励的折扣总和相加获得

  • R s R_s Rs:即时奖励
  • ∑ s ′ ∈ S P s s ′ V ( s ′ ) \sum_{s' \in S}P_{ss'}V(s') sSPssV(s):未来奖励的折扣总和

矩阵形式
[ V ( s 1 ) V ( s 2 ) ⋮ V ( s N ) ] = [ R ( s 1 ) R ( s 2 ) ⋮ R ( s N ) ] + γ [ P s 1 s 1 , P s 1 s 2 , ⋯   , P s 1 s N P s 2 s 1 , P s 2 s 2 , ⋯   , P s 2 s N ⋮ , ⋮ , ⋯   , ⋮ P s N s 1 , P s N s 2 , ⋯   , P s N s N ] [ V ( s 1 ) V ( s 2 ) ⋮ V ( s N ) ] \begin{bmatrix} V(s_1) \\ V(s_2) \\ \vdots \\ V(s_N) \end{bmatrix} = \begin{bmatrix} R(s_1) \\ R(s_2) \\ \vdots \\ R(s_N) \end{bmatrix} + \gamma \begin{bmatrix} P_{s_1s_1},&P_{s_1s_2},&\cdots,&P_{s_1s_N} \\ P_{s_2s_1},&P_{s_2s_2},&\cdots,&P_{s_2s_N} \\ \vdots,&\vdots,&\cdots,&\vdots \\ P_{s_Ns_1},&P_{s_Ns_2},&\cdots,&P_{s_Ns_N} \end{bmatrix} \begin{bmatrix} V(s_1) \\ V(s_2) \\ \vdots \\ V(s_N) \end{bmatrix} V(s1)V(s2)V(sN) = R(s1)R(s2)R(sN) +γ Ps1s1,Ps2s1,,PsNs1,Ps1s2,Ps2s2,,PsNs2,,,,,Ps1sNPs2sNPsNsN V(s1)V(s2)V(sN)

将贝尔曼方程写成矩阵形式后,可以直接求解:
V = R + γ P V V = ( 1 − γ P ) − 1 R V = R+\gamma PV \\ V=(1-\gamma P)^{-1}R V=R+γPVV=(1γP)1R

因此可以通过矩阵求逆把V价值直接求出来。但时间复杂度为 O ( N 3 ) O(N^3) O(N3),当状态非常多时矩阵求逆很困难。因此解析法求V价值只适用于很小量的马尔可夫奖励过程。
例子
强化学习(一)——马尔可夫决策过程MDP_第4张图片
注意在MRP中,即时奖励仅与当前状态相关。 期望值计算如图所示,根据价值函数公式可知,某一状态S的状态函数 V ( S ) V(S) V(S)由奖励函数 R S R_S RS和可转移状态价值函数 V ( S ′ ) V(S') V(S)的期望决定。假设 γ = 1 \gamma=1 γ=1,则 4.3 = − 2 + 0.6 ∗ 10 + 0.4 ∗ 0.8 4.3 = -2 + 0.6*10+0.4*0.8 4.3=2+0.610+0.40.8

2.4 计算马尔可夫奖励过程的迭代算法

可以通过动态规划算法、蒙特卡洛采样、时序差分法学习等方法,求解大型马尔科夫奖励过程
(1)蒙特卡洛模拟
选择初始状态后生成大量轨迹。当生成一定轨迹后,直接用 G t G_t Gt除以轨迹数量,将轨迹的回报期望作为状态价值。
强化学习(一)——马尔可夫决策过程MDP_第5张图片
(2)动态规划法
将贝尔曼方程变成一个贝尔曼更新(Bellman update),通过不停的迭代更新每个状态的价值,最终达到收敛而获得每个状态的价值。
强化学习(一)——马尔可夫决策过程MDP_第6张图片

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

定义
MDP就是MRP多引入了动作因子。由于引入了动作,奖励函数 将不再只与状态相关,还与动作相关。现在的奖励函数是初始状态为s下,采取动作a所获得的即时奖励。同时状态转移概率 也发生了变化,表示初始状态s下,采取动作a,状态变为s’的概率。
强化学习(一)——马尔可夫决策过程MDP_第7张图片

马尔可夫决策过程与马尔可夫奖励过程的区别
MDP相对于MRP在当前状态跟未来状态转移过程中多了一层决策性。
强化学习(一)——马尔可夫决策过程MDP_第8张图片

3.1 策略(Policy)

定义:
策略 π \pi π表示在某个状态下,可采取动作的概率分布。
强化学习(一)——马尔可夫决策过程MDP_第9张图片

  • 状态转移矩阵

P s , s ′ π = ∑ a ∈ A t π ( a ∣ s ) P s s ′ a P_{s,s'}^\pi = \sum_{a \in A_t} \pi(a|s)P_{ss'}^a Ps,sπ=aAtπ(as)Pssa

  • 奖励函数

R S π = ∑ a ∈ A t π ( a ∣ s ) R s a R_S^\pi = \sum_{a \in A_t}\pi(a|s)R_s^a RSπ=aAtπ(as)Rsa

3.2 价值函数(Value Function)

(1)状态价值函数(state-value function)
初始状态为s,并遵循策略 π \pi π,所能获得的回报的期望。
强化学习(一)——马尔可夫决策过程MDP_第10张图片

对比MRP的状态价值函数: v ( s ) = E [ G t ∣ S t = s ] v(s)=E[G_t|S_t=s] v(s)=E[GtSt=s]

(2)动作价值函数(action-value function)
初始状态为s,采取动作a,并遵循策略 π \pi π,所能获得的回报的期望。
强化学习(一)——马尔可夫决策过程MDP_第11张图片

3.3 马尔可夫决策过程的贝尔曼期望方程(Bellman Expectation Equation For MDPs)

(1)v函数-q函数
在状态s下,根据策略 π \pi π可以选择不同的动作。因此状态价值函数等于所有可选动作的动作价值的平均值。
强化学习(一)——马尔可夫决策过程MDP_第12张图片

(2)q函数-v函数
在初始状态为s,采取动作a后,可以获得立即奖励 R s a R_s^a Rsa。同时根据状态转移概率 P s a P_s^a Psa可以到达不同的下一状态s’。因此动作价值函数等于立即奖励+折扣后的所有可能下一状态价值的平均值。
强化学习(一)——马尔可夫决策过程MDP_第13张图片

(3)状态价值函数的贝尔曼方程
将(2)中的q-v关系带入到(1)中便可以获得V函数的贝尔曼方程。
强化学习(一)——马尔可夫决策过程MDP_第14张图片

(4)状态动作价值函数的贝尔曼方程
将(1)中的v-q关系带入到(2)中便可以获得Q函数的贝尔曼方程。
强化学习(一)——马尔可夫决策过程MDP_第15张图片

(5)举例
V → π → R + γ P V Q → R + γ P π Q V \to \pi \to R+ \gamma PV \\ Q \to R + \gamma P\pi Q VπR+γPVQR+γPπQ
强化学习(一)——马尔可夫决策过程MDP_第16张图片

3.4 最优策略(Optimal Policy)

(1)最优策略
若存在一个策略 π ∗ \pi_* π,它的每一个状态下的价值函数都比其他策略高。则策略 π ∗ \pi_* π为最佳策略。
强化学习(一)——马尔可夫决策过程MDP_第17张图片
(2)寻找最优策略
状态s下的根据最优策略采取的动作应该是最大状态动作价值函数所对应的动作。因此一个固定的最佳策略可以将它最大q值所对应的动作的概率设置为1,同时将其他可能动作的概率设置为0.
强化学习(一)——马尔可夫决策过程MDP_第18张图片

3.5 贝尔曼最优方程(Bellman Optimality Equation)

(1)v-q
最优策略 π ∗ \pi_* π下,最大Q值的动作的概率为1,其余为0.
强化学习(一)——马尔可夫决策过程MDP_第19张图片

(2)q-v
强化学习(一)——马尔可夫决策过程MDP_第20张图片
(3)贝尔曼最优方程
强化学习(一)——马尔可夫决策过程MDP_第21张图片
强化学习(一)——马尔可夫决策过程MDP_第22张图片
(4)举例
v → m a x { R + γ P v } v \to max\{R+\gamma Pv \} vmax{R+γPv}
强化学习(一)——马尔可夫决策过程MDP_第23张图片

3.6 策略评估(value prediction)

(1)定义
知道一个马尔可夫决策过程以及要采取的决策 π \pi π,计算价值函数 v π ( s ) v^\pi(s) vπ(s)的过程。

(2)价值预测(value prediction)
通过贝尔曼期望方程,不停的迭代,直到所有状态价值收敛。收敛过后,状态的值便是其价值。
v π ( s ) = ∑ a ∈ A t π ( a ∣ s ) ( R ( s , a ) + ∑ s ′ ∈ S P ( s ′ ∥ s , a ) v π ( s ′ ) ) v^\pi(s)=\sum_{a \in A_t}\pi(a|s)(R(s,a)+\sum_{s' \in S}P(s' \|s,a)v^\pi(s')) vπ(s)=aAtπ(as)(R(s,a)+sSP(ss,a)vπ(s))

Reference

[1] 莫凡Python:https://www.bilibili.com/video/BV13W411Y75P?p=13
[2] 强化学习笔记:https://www.jianshu.com/p/fb33231ac3a8
[3] https://github.com/datawhalechina/easy-rl
[4] David_Silver:https://www.davidsilver.uk/teaching/

你可能感兴趣的:(强化学习,机器学习,强化学习)