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


前言

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

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

在学习马尔科夫决策过程之前需要复习一下马尔科夫相关基础
1、马尔科夫性描述的是每个状态的性质。即定义系统的下一状态S t + 1 S_{t+1}St+1与当前状态S t S_tSt有关,而与以前的状态无关
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 SS是有限状态集合,P PP是状态转移概率。状态转移概率矩阵为:
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}P11P 12 P_{12}P12P 13 P_{13}P13P 14 P_{14}P14P 15 P_{15}P15
S ( 2 ) S^{(2)}S(2)P 21 P_{21}P21P 22 P_{22}P22P 23 P_{23}P23P 24 P_{24}P24P 25 P_{25}P25
S ( 3 ) S^{(3)}S(3)P 31 P_{31}P31P 32 P_{32}P32P 33 P_{33}P33P 34 P_{34}P34P 35 P_{35}P35
S ( 4 ) S^{(4)}S(4)P 41 P_{41}P41P 42 P_{42}P42P 43 P_{43}P43P 44 P_{44}P44P 45 P_{45}P45
S ( 5 ) S^{(5)}S(5)P 51 P_{51}P51P 52 P_{52}P52P 53 P_{53}P53P 54 P_{54}P54P 55 P_{55}P55

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


一、定义

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

二、MDP动态特性

马尔科夫动态特性是在马尔科夫链的基础上增加了R RR(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}=rRt+1=r代表了处于状态s ss的决策a aa所提供的奖励值

马尔科夫决策过程简图
由此可得状态转移函数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 ss,对应三种动作(action):a 1 , a 2 , a 3 a_1,a_2,a_3a1,a2,a3,但是当我在进行决策时,只要处在当前状态s ss,我只选择动作a 1 a_1a1,那么此时制定策略已经与时间无关而与状态相关。

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

1.2、随机性策略

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

s ss
a 1 a_1a10.8
a 2 a_2a20.1
a 3 a_3a30.1

策略2:

s ss
a 1 a_1a10.5
a 2 a_2a20.3
a 3 a_3a30.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_tSt时,对于每一个动作(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_tGt理论上可作为判别策略优劣的依据。

3、价值函数(value function)

但是我们回过头来应该想想这么一个问题:
将上述流程图中某一部分进行拆解后得到假设的一张图,也称回溯图
将上部分图中某一部分进行拆解出来进行详细讲解,此图称为回溯图
假设当前状态为S t = s S_t=sSt=s,此时状态S t S_tSt有动作集合:
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 ss状态时回报的期望计算

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,as,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 ss无约束,因为在q π ( s , a ) q_\pi(s,a)qπ(s,a)中,s , a s,as,a均为自变量,并无成对关系(映射),而在v π ( s ) v_\pi(s)vπ(s)中存在映射关系,对所有状态都有关系。即:v π ( s ) v_\pi(s)vπ(s)在进行下一步动作a aa的选择时,需要受到随机性策略π ( s ∣ a ) \pi(s|a)π(sa)的约束,例如:

s ss
a 1 a_1a10.8
a 2 a_2a20.1
a 3 a_3a30.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|*1s1
理论上说有多少个状态就有多少个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_tGt类似,并不能直接用于策略价值计算,故仍需引用期望的概念实现策略价值评估
引入q与v后的回溯图

回到这张引入q , v q,vq,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 ss具有动态随机性,当我们在反复走从状态s ss到状态s 3 s_3s3时的R = r R=rR=r的值是会改变的,它也有动态随机性,是从( s , a ) (s,a)(s,a)( s ′ , r ) (s',r)(s,r)的过程,读者可将从a 3 → s 3 a_3→s_3a3s3过程中的回报值想象成为无数条线。这样就把回报的随机性r rr表示出来了

那么如何用r , γ r,\gammar,γ表示这个动态过程呢。现在先将公式引出,再慢慢解释:
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 rr为当选定走这条回报值的路径时,所给到的回报值
γ 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'aS 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))]

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


版权声明:本文为qq_44704784原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。