强化学习笔记(1):马尔科夫决策过程(MDP)


前言

最近在看强化学习相关课程,自己也在一边学习中一边理解,想想写篇文章以后万一忘了可以回来在看着复习一下,在学习过程中推荐大家看的相关视频与文章如下:
【强化学习】马尔科夫决策过程【白板推导系列】
强化学习入门 第一讲 MDP

= = = = = = = = = = = = = = = 分 隔 符 = = = = = = = = = = = = = = = ===============分隔符=============== ==============================

在学习马尔科夫决策过程之前需要复习一下马尔科夫相关基础
1、马尔科夫性描述的是每个状态的性质。即定义系统的下一状态 S t + 1 S_{t+1} St+1与当前状态 S t S_t St有关,而与以前的状态无关
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,...,S_t] P[St+1St]=P[St+1S1,S2,...,St]
2、马尔科夫过程是一个二元组 ( S , P ) (S,P) (S,P),且满足: S S S是有限状态集合, P P P是状态转移概率。状态转移概率矩阵为:
P = [ P 11 . . . P 1 N . . . . . . P N 1 . . . P N N ] P=\begin{bmatrix} P_{11}&...&P_{1N}\\ .&.&.&\\.&.&.&\\ P_{N1}&...&P_{NN}\end{bmatrix} P=P11..PN1........P1N..PNN
假若 S t ∈ [ S ( 1 ) , S ( 2 ) , S ( 3 ) , S ( 4 ) , S ( 5 ) ] S_t∈[S^{(1)},S^{(2)},S^{(3)},S^{(4)},S^{(5)}] St[S(1),S(2),S(3),S(4),S(5)],且 S ( i ) S^{(i)} S(i)均有概率 P i j P_{ij} Pij进行状态转移,通过表格列出转移矩阵:

S ( 1 ) S^{(1)} S(1) S ( 2 ) S^{(2)} S(2) S ( 3 ) S^{(3)} S(3) S ( 4 ) S^{(4)} S(4) S ( 5 ) S^{(5)} S(5)
S ( 1 ) S^{(1)} S(1) P 11 P_{11} P11 P 12 P_{12} P12 P 13 P_{13} P13 P 14 P_{14} P14 P 15 P_{15} P15
S ( 2 ) S^{(2)} S(2) P 21 P_{21} P21 P 22 P_{22} P22 P 23 P_{23} P23 P 24 P_{24} P24 P 25 P_{25} P25
S ( 3 ) S^{(3)} S(3) P 31 P_{31} P31 P 32 P_{32} P32 P 33 P_{33} P33 P 34 P_{34} P34 P 35 P_{35} P35
S ( 4 ) S^{(4)} S(4) P 41 P_{41} P41 P 42 P_{42} P42 P 43 P_{43} P43 P 44 P_{44} P44 P 45 P_{45} P45
S ( 5 ) S^{(5)} S(5) P 51 P_{51} P51 P 52 P_{52} P52 P 53 P_{53} P53 P 54 P_{54} P54 P 55 P_{55} P55

其中 P i j P_{ij} Pij S ( i ) S^{(i)} S(i)状态向 S ( j ) S^{(j)} S(j)状态转移时的概率


一、定义

马尔科夫决策过程由元组 ( S , A , P , R , γ ) (S,A,P,R,γ) (S,A,P,R,γ)描述,其中:
S S S:有限状态集
A A A:有限动作集
P P P:状态转移的概率(动态特性)
R R R:回报函数
γ γ γ:折扣因子,用来计算累计回报

二、MDP动态特性

马尔科夫动态特性是在马尔科夫链的基础上增加了 R R R(reward space)与 A ( s ) A(s) A(s)(action space)参量

马尔科夫决策过程是包含动作的,称为动态函数,也可以称为MDP的动态特性,即:
P : p [ s ′ , r ∣ s , a ] = P r [ S t + 1 = s ′ , R t + 1 = r ∣ S t = s , A t = a ] P:p[s',r|s,a]=P_r[S_{t+1}=s',R_{t+1}=r|S_t=s,A_t=a] P:p[s,rs,a]=Pr[St+1=s,Rt+1=rSt=s,At=a]
其中的 R t + 1 = r R_{t+1}=r Rt+1=r代表了处于状态 s s s的决策 a a a所提供的奖励值

马尔科夫决策过程简图
由此可得状态转移函数 p [ s ′ ∣ s , a ] = ∑ r ∈ R p [ s ′ , r ∣ a , s ] p[s'|s,a]=∑_{r∈R}p[s',r|a,s] p[ss,a]=rRp[s,ra,s]

三、MDP价值函数

马尔科夫决策过程最重要的关键是决策或策略(policy),而策略是由一个个动作(action)构成,每一动作都有对应的状态(state)。

1、策略(policy)

1.1、确定性策略

假设当前状态为 s s s,对应三种动作(action): a 1 , a 2 , a 3 a_1,a_2,a_3 a1,a2,a3,但是当我在进行决策时,只要处在当前状态 s s s,我只选择动作 a 1 a_1 a1,那么此时制定策略已经与时间无关而与状态相关。

定义: a = π ( s ) a=π(s) a=π(s)
对于确定性策略,可以如此理解,将某一动作 a i a_i ai的概率设置为1时对应的策略

1.2、随机性策略

假设当前状态为 s s s,对应三种动作(action): a 1 , a 2 , a 3 a_1,a_2,a_3 a1,a2,a3,每当处在当前状态 s s s时,三种动作都会有一定的概率实现,则此时制定策略与时间有关,且具有随机性,例如
策略1:

s s s
a 1 a_1 a10.8
a 2 a_2 a20.1
a 3 a_3 a30.1

策略2:

s s s
a 1 a_1 a10.5
a 2 a_2 a20.3
a 3 a_3 a30.2

这就是随机性策略,用 π ( a ∣ s ) π(a|s) π(as)来表示

定义: π ( a ∣ s ) = P r [ A i = a ∣ S i = s ] π(a|s) = P_r[A_i=a|S_i=s] π(as)=Pr[Ai=aSi=s]

2、回报(reward)

为避免上下翻页造成阅读困难,继续以上图为例进行讲解马尔科夫决策过程简图
当我们要衡量一种策略是否为好时,我们需要引入一种回报(reward)机制。处于 S t S_t St时,对于每一个动作(action),我们可以直观判断回报越大一定是越好的。但是我们选择了一种action时,它的reward是具有后效性/延迟性的,假如使用 A t A_{t} At时对应的回报为 R t + 1 R_{t+1} Rt+1,而后的下一次回报 R t + 2 R_{t+2} Rt+2不仅仅与其对应状态 S t + 1 S_{t+1} St+1所在的动作空间 A t + 1 A_{t+1} At+1有关,也与当前 S t S_{t} St状态下的 A t A_{t} At相关。
所以我们要寻求一种关系式可以将 S t S_{t} St状态时选择动作 A t A_{t} At对应后续的回报之和进行计算求解。
在此引出累计回报公式
G t = R t + 1 + γ R t + 2 + γ 2 R t + 3 + ⋅ ⋅ ⋅ = ∑ k = 0 ∞ γ k R t + k + 1 G_t = R_{t+1} + γ R_{t+2} +\gamma ^2R_{t+3}+···= ∑_{k=0}^{∞}\gamma^k R_{t+k+1} Gt=Rt+1+γRt+2+γ2Rt+3+=k=0γkRt+k+1
γ ∈ [ 0 , 1 ] \gamma∈[0,1] γ[0,1]可以这样理解,随着时间的流失,回报值reward会随着时间而大打折扣,故称其为折扣因子(discount)。此时 G t G_t Gt理论上可作为判别策略优劣的依据。

3、价值函数(value function)

但是我们回过头来应该想想这么一个问题:
将上述流程图中某一部分进行拆解后得到假设的一张图,也称回溯图
将上部分图中某一部分进行拆解出来进行详细讲解,此图称为回溯图
假设当前状态为 S t = s S_t=s St=s,此时状态 S t S_t St有动作集合:
A ( s ) = [ a 1 , a 2 , a 3 ] A(s)=[a_1,a_2,a_3] A(s)=[a1,a2,a3]
且每个状态对应三种不同的状态,当转移到下一状态 S t + 1 = s ′ S_{t+1}=s' St+1=s时又有对应的状态集
S t + 1 = [ s 1 , s 2 , s 3 , ⋅ ⋅ ⋅ , s 8 , s 9 ] S_{t+1}=[s_1,s_2,s_3,···,s_8,s_9] St+1=[s1,s2,s3,,s8,s9]
我们需要将每个
G t = [ G t 1 , G t 2 , ⋅ ⋅ ⋅ , G t 9 ] G_t=[G_t^{1},G_t^{2},···,G_t^{9}] Gt=[Gt1,Gt2,,Gt9]
进行计算,并进行概率(加权)平均,所以我们不能单纯的通过 G t i G_t^{i} Gti对每一条策略进行评估。

在此引入 价值函数(value function) 的定义:
v π ( s ) = E π [ G t ∣ S t = s ] v_π(s)=E_\pi[G_t|S_t=s] vπ(s)=Eπ[GtSt=s]
可以这样理解这个函数:在 π \pi π策略下, s s s状态时回报的期望计算

3.1、状态动作函数

定义: 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 ) v_\pi(s) vπ(s)多给定了动作参量,再以上面那张回溯图举例
在这里插入图片描述

给定 s , a s,a s,a,可以写出三种状态动作函数:
q π ( s , a 1 ) , q π ( s , a 1 ) , q π ( s , a 3 ) q_\pi(s,a_1),q_\pi(s,a1),q_\pi(s,a_3) qπ(s,a1),qπ(s,a1),qπ(s,a3)
此处 π \pi π s s s无约束,因为在 q π ( s , a ) q_\pi(s,a) qπ(s,a)中, s , a s,a s,a均为自变量,并无成对关系(映射),而在 v π ( s ) v_\pi(s) vπ(s)中存在映射关系,对所有状态都有关系。即: v π ( s ) v_\pi(s) vπ(s)在进行下一步动作 a a a的选择时,需要受到随机性策略 π ( s ∣ a ) \pi(s|a) π(sa)的约束,例如:

s s s
a 1 a_1 a10.8
a 2 a_2 a20.1
a 3 a_3 a30.1

只能选择一定概率的动作,而状态动作函数可不受约束进行期望计算。

3.2、推导过程

对于 ⋁ s ∈ S t , v π ( s ) \bigvee s∈S_t,v_\pi(s) sSt,vπ(s)可以通过向量
v π ( s ) = [ v π ( s 1 ) , v π ( s 2 ) , v π ( s 3 ) , ⋅ ⋅ ⋅ , v π ( s n ) ] v_\pi(s)=[v_\pi(s_1),v_\pi(s_2),v_\pi(s_3),···,v_\pi(s_n)] vπ(s)=[vπ(s1),vπ(s2),vπ(s3),,vπ(sn)]
表示,其大小为 ∣ s ∣ ∗ 1 |s|*1 s1
理论上说有多少个状态就有多少个 v π ( s ) v_\pi(s) vπ(s)
在回溯图中,若已经定义了三种状态动作函数:
q π ( s , a 1 ) , q π ( s , a 1 ) , q π ( s , a 3 ) q_\pi(s,a_1),q_\pi(s,a1),q_\pi(s,a_3) qπ(s,a1),qπ(s,a1),qπ(s,a3)
对应其随机性策略也有三种:
π ( a 1 ∣ s ) , π ( a 2 ∣ s ) , π ( a 3 ∣ s ) \pi(a_1|s),\pi(a_2|s),\pi(a_3|s) π(a1s),π(a2s),π(a3s)
此时将状态动作函数与对应的随机性策略进行乘积并求和,可得价值函数公式:
v π ( s ) = π ( a 1 ∣ s ) ∗ q π ( s , a 1 ) + π ( a 2 ∣ s ) ∗ q π ( s , a 2 ) + v_\pi(s)=\pi(a_1|s)*q_\pi(s,a_1)+\pi(a_2|s)*q_\pi(s,a_2)+ vπ(s)=π(a1s)qπ(s,a1)+π(a2s)qπ(s,a2)+
π ( a 3 ∣ s ) ∗ q π ( s , a 3 ) \pi(a_3|s)*q_\pi(s,a_3) π(a3s)qπ(s,a3)
= ∑ k = 0 3 π ( a k ∣ s ) ∗ q π ( s , a k ) =∑_{k=0}^{3}\pi(a_k|s)*q_\pi(s,a_k) =k=03π(aks)qπ(s,ak)
推广到无穷时可以表示为:
v π ( s ) = ∑ a ∈ A ( s ) π ( a ∣ s ) ∗ q π ( s , a ) v_\pi(s)=∑_{a∈A(s)}\pi(a|s)*q_\pi(s,a) vπ(s)=aA(s)π(as)qπ(s,a)
其实质为 v π ( s ) v_π(s) vπ(s) q π ( s , a ) q_π(s,a) qπ(s,a)的加权平均值
由此可得最终价值函数可以表示为:
v a l u e f u n c t i o n : { v π ( s ) = E π [ G t ∣ S t = s ] q π ( s , a ) = E π [ G t ∣ S t = s , A t = a ] value function: \left\{ \begin{aligned} v_π(s)&=E_\pi[G_t|S_t=s] \\ q_\pi(s,a)&=E_\pi[G_t|S_t=s,A_t=a] \\ \end{aligned} \right. valuefunction:{vπ(s)qπ(s,a)=Eπ[GtSt=s]=Eπ[GtSt=s,At=a]
v π ( s ) ≤ m a x ( q π ( s , a ) ) v_π(s)≤max(q_\pi(s,a)) vπ(s)max(qπ(s,a)) ,当且只当平均值=最大值时等号成立

三、贝尔曼方程

1、贝尔曼期望方程

由于 q π ( s , a ) q_\pi(s,a) qπ(s,a)具有概率性的存在,与 G t G_t Gt类似,并不能直接用于策略价值计算,故仍需引用期望的概念实现策略价值评估
引入q与v后的回溯图

回到这张引入 q , v q,v q,v的回溯图,对于上面所提到的马尔科夫决策过程的动态特性补充一种观点:

P : p [ s ′ , r ∣ s , a ] = P r [ S t + 1 = s ′ , R t + 1 = r ∣ S t = s , A t = a ] P:p[s',r|s,a]=P_r[S_{t+1}=s',R_{t+1}=r|S_t=s,A_t=a] P:p[s,rs,a]=Pr[St+1=s,Rt+1=rSt=s,At=a]
注意:此过程中,不仅仅是 s s s具有动态随机性,当我们在反复走从状态 s s s到状态 s 3 s_3 s3时的 R = r R=r R=r的值是会改变的,它也有动态随机性,是从 ( s , a ) (s,a) (s,a) ( s ′ , r ) (s',r) (s,r)的过程,读者可将从 a 3 → s 3 a_3→s_3 a3s3过程中的回报值想象成为无数条线。这样就把回报的随机性 r r r表示出来了

那么如何用 r , γ r,\gamma r,γ表示这个动态过程呢。现在先将公式引出,再慢慢解释:
q π ( s , a ) = ∑ r , s ′ p ( s ′ , r ∣ s , a ) ∗ ( r + γ v π ( s ′ ) ) q_\pi(s,a)=∑_{r,s'}p(s',r|s,a)*(r+\gamma v_\pi(s')) qπ(s,a)=r,sp(s,rs,a)(r+γvπ(s))
式中: p ( s ′ , r ∣ s , a ) p(s',r|s,a) p(s,rs,a)为动态特性概率,即走每条回报值的概率是多大
r r r为当选定走这条回报值的路径时,所给到的回报值
γ v π ( s ′ ) \gamma v_\pi(s') γvπ(s)为在状态 s ′ s' s时所得到折扣后的价值

由此可以推出 v π ( s ) , v π ( s ′ ) v_\pi(s),v_\pi(s') vπ(s),vπ(s)之间的关系为:
v π ( s ) = ∑ a ∈ A ( s ) π ( a ∣ s ) ∗ q π ( s , a ) v_\pi(s)=∑_{a∈A(s)}\pi(a|s)*q_\pi(s,a) vπ(s)=aA(s)π(as)qπ(s,a)
= ∑ a ∈ A ( s ) π ( a ∣ s ) ∗ ∑ r , s ′ p ( s ′ , r ∣ s , a ) ∗ ( r + γ v π ( s ′ ) ) =∑_{a∈A(s)}\pi(a|s)*∑_{r,s'}p(s',r|s,a)*(r+\gamma v_\pi(s')) =aA(s)π(as)r,sp(s,rs,a)(r+γvπ(s))
q π ( s , a ) , q π ( s ′ , a ′ ) q_\pi(s,a),q_\pi(s',a') qπ(s,a),qπ(s,a)之间的关系为:
q π ( s , a ) = ∑ r , s ′ p ( s ′ , r ∣ s , a ) ∗ ( r + γ v π ( s ′ ) ) q_\pi(s,a)=∑_{r,s'}p(s',r|s,a)*(r+\gamma v_\pi(s')) qπ(s,a)=r,sp(s,rs,a)(r+γvπ(s))
= ∑ r , s ′ p ( s ′ , r ∣ s , a ) ∗ [ r + γ ∑ a ∈ A ( s ) π ( a ′ ∣ s ′ ) ∗ q π ( s ′ , a ′ ) ] =∑_{r,s'}p(s',r|s,a)*[r+\gamma ∑_{a∈A(s)}\pi(a'|s')*q_\pi(s',a')] =r,sp(s,rs,a)[r+γaA(s)π(as)qπ(s,a)]
补充: a ′ a' a S t + 1 S_{t+1} St+1时的对应动作集的某一动作

贝尔曼期望方程:
{ v π ( s ) = ∑ a ∈ A ( s ) π ( a ∣ s ) ∗ ∑ r , s ′ p ( s ′ , r ∣ s , a ) ∗ ( r + γ v π ( s ′ ) ) q π ( s , a ) = ∑ r , s ′ p ( s ′ , r ∣ s , a ) ∗ [ r + γ ∑ a ∈ A ( s ) π ( a ′ ∣ s ′ ) ∗ q π ( s ′ , a ′ ) ] \left\{ \begin{aligned} v_π(s)&=∑_{a∈A(s)}\pi(a|s)*∑_{r,s'}p(s',r|s,a)*(r+\gamma v_\pi(s')) \\ q_\pi(s,a)&=∑_{r,s'}p(s',r|s,a)*[r+\gamma ∑_{a∈A(s)}\pi(a'|s')*q_\pi(s',a')]\\ \end{aligned} \right. vπ(s)qπ(s,a)=aA(s)π(as)r,sp(s,rs,a)(r+γvπ(s))=r,sp(s,rs,a)[r+γaA(s)π(as)qπ(s,a)]

2、贝尔曼最优方程

引出贝尔曼最优方程,需要引出最优价值函数:

{ v ∗ ( s ) = m a x π ( v π ( s ) ) q ∗ ( s , a ) = m a x π ( q π ( s , a ) ) \left\{ \begin{aligned} v_*(s)=max_\pi(v_\pi(s)) \\ q_*(s,a)=max_\pi(q_\pi(s,a))\\ \end{aligned} \right. {v(s)=maxπ(vπ(s))q(s,a)=maxπ(qπ(s,a))
由最优价值函数 v ∗ ( s ) = m a x π ( v π ( s ) ) v_*(s)=max_\pi(v_\pi(s)) v(s)=maxπ(vπ(s))可知当找到最优策略 π \pi π时,价值函数也会得到最优值。同理状态动作函数也会找到最优值。
在一般情况下,最优策略可能不止一个,此处我们仅假设只有一个最优策略。即:

π ∗ = a r g m a x π ( v π ( s ) ) = a r g m a x π ( q π ( s , a ) ) \pi_* =argmax_\pi(v_\pi(s))=argmax_\pi(q_\pi(s,a)) π=argmaxπ(vπ(s))=argmaxπ(qπ(s,a))
v ∗ ( s ) = m a x π ( v π ( s ) ) = v π ∗ ( s ) v_*(s)=max_\pi(v_\pi(s))=v_{\pi_*}(s) v(s)=maxπ(vπ(s))=vπ(s)
q ∗ ( s , a ) = m a x π ( q π ( s , a ) ) = q π ∗ ( s , a ) q_*(s,a)=max_\pi(q_\pi(s,a))=q_{\pi_*}(s,a) q(s,a)=maxπ(qπ(s,a))=qπ(s,a)

此时不要忘了上一章末尾曾经写过的一个公式:
v π ( s ) ≤ m a x a ( q π ( s , a ) ) v_π(s)≤max_a(q_\pi(s,a)) vπ(s)maxa(qπ(s,a))
当策略为最优策略时有:
v ∗ ( s ) = m a x ( q ∗ ( s , a ) ) v_*(s)=max(q_*(s,a)) v(s)=max(q(s,a))
q ∗ ( s , a ) = ∑ r , s ′ p ( s ′ , r ∣ s , a ) ∗ [ r + γ v ∗ ( s ′ ) ] q_*(s,a)=∑_{r,s'}p(s',r|s,a)*[r+\gamma v_*(s')] q(s,a)=r,sp(s,rs,a)[r+γv(s)]
此处取最优策略时,代表了此时平均值 v π ( s ) v_π(s) vπ(s)与最大值 m a x a ( q π ( s , a ) ) max_a(q_\pi(s,a)) maxa(qπ(s,a))相等
证明过程可看b站视频,此处不再赘述。
当已知最优价值函数时,根据贝尔曼期望方程可以推出贝尔曼最优方程为:
{ v ∗ ( s ) = m a x a ( ∑ r , s ′ p ( s ′ , r ∣ s , a ) ∗ [ r + γ v ∗ ( s ′ ) ] ) q ∗ ( s , a ) = ( ∑ r , s ′ p ( s ′ , r ∣ s , a ) ∗ [ r + γ m a x a ′ ( q ∗ ( s ′ , a ′ ) ) ] \left\{ \begin{aligned} v_*(s)=max_a(∑_{r,s'}p(s',r|s,a)*[r+\gamma v_*(s')]) \\ q_*(s,a)=(∑_{r,s'}p(s',r|s,a)*[r+\gamma max_{a'}(q_*(s',a'))]\\ \end{aligned} \right. v(s)=maxa(r,sp(s,rs,a)[r+γv(s)])q(s,a)=(r,sp(s,rs,a)[r+γmaxa(q(s,a))]

错误之处请海涵、指导 谢谢!

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值