強化學(xué)習(xí)基礎(chǔ)篇(二)馬爾科夫決策過程(MDP)

強化學(xué)習(xí)基礎(chǔ)篇(二)馬爾科夫決策過程(MDP)

上一篇中主要介紹了強化學(xué)習(xí)的一些主要組成要素(智能體,環(huán)境,獎勵,狀態(tài)以及動作等),以及介紹了強化學(xué)習(xí)的相關(guān)概念。本節(jié)主要介紹強化學(xué)習(xí)的基本數(shù)學(xué)形式,即馬爾科夫決策過程(Markov Decision Processes,MDP)。MDP是序貫決策的經(jīng)典表達(dá)形式,他是強化學(xué)習(xí)在數(shù)學(xué)上的理想化形式,因為在MDP這個框架之下,我們可以進(jìn)行非常精確的理論推導(dǎo)。為了一步步引入MDP,我們將循序漸進(jìn)地從馬爾科夫性質(zhì)(Markov Process),馬爾科夫獎勵過程(Markov Reward Process,MRP),再到馬爾科夫決策過程(Markov Decision Processes,MDP)。在最后對MDP進(jìn)行部分?jǐn)U展,如有限與連續(xù)MDPs(Infinite and continuous MDPs),部分觀測MDP(Partially Observable MDPs,POMDP)以及無折扣或平均獎勵MDPs(Undiscounted, average reward MDPs)。

馬爾科夫決策過程形式上義了強化學(xué)習(xí)的環(huán)境,并且環(huán)境是完全可觀測狀態(tài),即當(dāng)前的環(huán)境狀態(tài)可以完全表示過程。此外幾乎所有的強化學(xué)習(xí)問題都可以轉(zhuǎn)化為馬爾科夫決策過程。比如在最優(yōu)控制(Optimal Control)理論中主要處理連續(xù)馬爾科夫決策過程,部分可觀測問題也可以轉(zhuǎn)換為馬爾科夫決策過程。

1. 馬爾科夫性質(zhì)(Markov Property)

進(jìn)一步了解馬爾科夫決策過程之前,需要先了解馬爾科夫性質(zhì)(Markov Property),馬爾科夫性質(zhì)即未來的狀態(tài)只依賴于當(dāng)前狀態(tài),與過去狀態(tài)無關(guān)。

正式的定義如下:

馬爾科夫性質(zhì)(Markov Property)定義:

在時間步t+1時,環(huán)境的反饋僅取決于上一時間步t的狀態(tài)s和動作a,與時間步t-1以及t-1步之前的時間步都沒有關(guān)聯(lián)性。

\mathbb P[S_{t+1}|S_t]=\mathbb P[S_{t+1}|S_1,...,S_t]

根據(jù)定義,當(dāng)前狀態(tài)捕捉了歷史中所有相關(guān)的信息,所以知道了狀態(tài),歷史(history)就可以完全丟棄。狀態(tài)是未來的充分統(tǒng)計。然而在實際的環(huán)境中,智能體所需完成的任務(wù)不能夠完全滿足馬爾科夫性質(zhì),即在時間步t+1的反饋不一定僅僅依賴于時間步t的狀態(tài)和動作。但是為了簡化問題的求解過程,仍然假設(shè)該任務(wù)滿足馬爾科夫?qū)傩裕∕arkov Property),并通過約束環(huán)境的狀態(tài)使得問題滿足馬爾科夫?qū)傩浴?/p>

2.狀態(tài)轉(zhuǎn)移矩陣(State Transition Matrix)

對于馬爾科夫狀態(tài)s以及后續(xù)的狀態(tài)s',狀態(tài)轉(zhuǎn)移概率可以定義為:
\mathbb P_{ss'}=\mathbb P[S_{s+1}=s'| S_t=s]
狀態(tài)轉(zhuǎn)移矩陣是馬爾科夫過程中狀態(tài)之間轉(zhuǎn)移的概率所組成的矩陣,因此大小是狀態(tài)數(shù)n的平方。他反映了所有當(dāng)前狀態(tài)s以及后續(xù)的狀態(tài)s'的映射,所以他的每行概率之和必定為1。
\mathbb P= \left|\begin{matrix}P_{11} & ...&P_{1n}\\\\. & &.\\\\P_{n1} &... &P_{nn}\end{matrix}\right|

3.馬爾科夫過程(Markov Process)

馬爾科夫過程是一個無記憶的隨機過程。例如滿足馬爾科夫性質(zhì)的狀態(tài)一系列序列S1,S2,S3,...

馬爾科夫過程(Markov Process)定義:

一個馬爾科夫過程(Markov Process),或者馬爾科夫鏈(Markov Chain)由一個二元組構(gòu)成:(S,P)

  • S為有限的狀態(tài)空間集,s_i表示時間步i的狀態(tài),其中S=\{s_1,s_2,...s_n\}
  • P為狀態(tài)轉(zhuǎn)移矩陣,\mathbb P_{ss'}=\mathbb P[S_{s+1}=s'| S_t=s]

接下來舉個例子,這里把上課學(xué)習(xí)過程當(dāng)做是一個簡單的馬爾科夫過程中,包含了馬爾科夫鏈的兩個元素(S,P)

image.png

這個任務(wù)中有7個狀態(tài)(Facebook, Class 1, Class 2, Class 3, Pass, Pub, Sleep)。在每個狀態(tài)對應(yīng)著響應(yīng)的轉(zhuǎn)移概率,比如在Class1狀態(tài)下,有0.5概率繼續(xù)轉(zhuǎn)移到Class2以及0.5的概率轉(zhuǎn)移到Facebook,這里可以注意到每個狀態(tài)轉(zhuǎn)移概率之和為1。

在這里我們?nèi)绻麑@個馬爾科夫過程,從Class1狀態(tài)開始采樣,將會得到很多幕(episode)的采樣數(shù)據(jù)。其中每一幕序列可能為:

  • Class 1, Class 2, Class 3, Pass, Sleep
  • Class 1, Facebook, Facebook, Class 1, Class 2, Sleep
  • Class 1, Class 2, Class 3, Pub, Class 2, Class 3, Pass, Sleep

這里的每一幕數(shù)據(jù)S_1,S_2,...S_T都會有個終點狀態(tài)(這里為Sleeep)。

此外在這個例子中,狀態(tài)轉(zhuǎn)移矩陣為:

image.png

4.馬爾科夫獎勵過程(Markov Reward Process)

4.1 定義

原本的馬爾科夫過程加上獎勵值之后就變成了馬爾科夫獎勵過程,元素由<S,P>變?yōu)?img class="math-inline" src="https://math.jianshu.com/math?formula=%3CS%2CP%2CR%2C%5Cgamma%3E" alt="<S,P,R,\gamma>" mathimg="1">。其中R就是獎勵,\gamma是折扣因子。

馬爾科夫獎勵過程(Markov Reward Process)定義:

一個馬爾科夫獎勵過程(Markov Reward Process),由一個四元組構(gòu)成:<S,P,R,\gamma>

  • S為有限的狀態(tài)空間集,s_i表示時間步i的狀態(tài),其中S=\{s_1,s_2,...s_n\}
  • P為狀態(tài)轉(zhuǎn)移矩陣,\mathbb P_{ss'}=\mathbb P[S_{s+1}=s'| S_t=s]
  • R為獎勵函數(shù),R_s=\mathbb E[R_{t+1}|S_t=s]
  • \gamma為折扣因子,\gamma \in [0,1]

我們可以將之前例子中的馬爾科夫過程相應(yīng)的變成如下的馬爾科夫獎勵過程:

image.png

紅色標(biāo)注的值就是獎勵,注意的是,這里的獎勵是即時獎勵,也就是脫離狀態(tài)時立刻得到的獎勵,這里沒有考慮下個狀態(tài)可能轉(zhuǎn)移到哪里。

4.2 累積獎勵(Return)與折扣因子\gamma

為了找到長期累積獎勵,不僅要考慮當(dāng)前時間步t的獎勵,還需要考慮到未來的獎勵。總獎勵(Total Reward)R的計算公式如下:
R=r_1+r_2+r_3...+r_n
根據(jù)總獎勵R的計算公式可知,長期累積獎勵從當(dāng)前時間步t開始,直到最終狀態(tài)的獎勵r_n,得到未來累積獎勵(Future Cumulative Reward)R_t
R=r_{t+1}+r_{t+2}...+r_n
一般而言,環(huán)境是隨機的或者未知的,這意味著下一個狀態(tài)可能也是隨機的。即由于所處的環(huán)境是隨機的,所以無法確定下一次執(zhí)行相同的動作,以及是否能夠獲得相同的獎勵。向未來探索得越多,可能產(chǎn)生的分歧(不確定性)就越多。因此,在實際任務(wù)中,通常用折扣未來累積獎勵(Discounted Future Cumulative Reward)G_t來代替未來累積獎勵。
G_t=R_{t+1}+\gamma R_{t+2}+...+\gamma^{n}R_n
如果考慮到無限時間的場景,更加通用的表示為(當(dāng)前獲得的獎勵表示為R_{t+1}):
G_t=R_{t+1}+\gamma R_{t+2}+...=\sum_{k=0}^{\infin}\gamma ^k R_{t+k+1}
其中\gamma為折扣因子(Discount Factor),是介于[0,1]的常數(shù)。對于距離當(dāng)前時間步越遠(yuǎn)的獎勵,其重要性就越低。假設(shè)折扣因子\gamma =0,可以認(rèn)為該策略“目光短淺”,只考慮當(dāng)前的及時獎勵r_{t+1}。倘若想平衡當(dāng)前時間的獎勵與未來的獎勵,可設(shè)置\gamma為一個較大的值,比如\gamma =0.9。如果環(huán)境是恒定的,或者說環(huán)境的所有狀態(tài)是已知的(Model-based),那么未來累積獎勵可以提前獲得并不需要進(jìn)行折扣計算,這時候可以簡單的將折扣因子\gamma設(shè)置為1,看起來就像非常“有遠(yuǎn)見“。

大多數(shù)的馬爾科夫獎勵過程(MRP)與馬爾科夫決策過程(MDP)都會使用折扣因子\gamma。主要基于如下幾點考慮:

  • 數(shù)學(xué)上計算的便利性

  • 避免未來進(jìn)入循環(huán)馬爾科夫過程帶來的無限大回報

  • 未來的不可靠性

  • 類比經(jīng)濟(jì)學(xué)中,眼前的利益比未來的利益更加有意義

  • 人類的行為也更加傾向于眼前利益

  • 退一步來說,令\gamma為1,也可以簡單的轉(zhuǎn)化成沒有折扣因子的狀態(tài)

4.3. 價值函數(shù)

價值函數(shù)是狀態(tài)s的長期價值表示。它是上面說的回報的期望。
v(s)= \mathbb E[G_t|S_t=s]
在概率論和統(tǒng)計學(xué)中,數(shù)學(xué)期望是試驗中每次可能的結(jié)果的概率乘以結(jié)果值得總和。這里回報的期望,即價值函數(shù)會會隨著折扣因子的變化而取不同的值,因為回報會因為\gamma的值而改變,期望自然也就會改變。

image.png

上圖是\gamma為1時,例子中的馬爾科夫獎勵過程,紅色的就是狀態(tài)的價值。暫時可以不必糾結(jié)上面的價值是怎么算出來的。通過價值函數(shù)的公式我們可以知道,要想求解一個狀態(tài)的狀態(tài)價值, 需要根據(jù)馬爾科夫鏈把所有的可能列出來。每個可能都在終點終止,但是上面這個馬爾科夫過程其實是有環(huán)的, 可能陷入無限循環(huán)的局面。因為折扣因子還是1,所以會導(dǎo)致回報G無限大,期望也就無限大,狀態(tài)價值V也就無限大。下面引入貝爾曼方程就是為了更好的求解價值函數(shù)的。

4.4 馬爾科夫獎勵過程的貝爾曼方程(Bellman Equation)

貝爾曼方程(Bellman Equation)可以用來方便的表示和計算馬爾科夫獎勵過程,價值函數(shù)可以分為兩個部分;

  • 即時獎勵R_{t+1}
  • 下一狀態(tài)的折扣狀態(tài)價值\gamma v(S_{t+1})

MRP的貝爾曼方程可以進(jìn)行如下簡單的推導(dǎo):
\begin{aligned} v(s) & =\mathbb E[G_t|S_t=s]{} \\\\ &=\mathbb E[R_{t+1}+\gamma R_{t+2} + \gamma ^2R_{t+3}+ ...|S_t=s] \\\\ &=\mathbb E[R_{t+1}+\gamma (R_{t+2} + \gamma R_{t+3}+ ...)|S_t=s] \\\\ &=\mathbb E[R_{t+1}+\gamma G_{t+1}|S_t=s] \\\\ &=\mathbb E[R_{t+1}+\gamma v(S_{t+1})|S_t=s] \\\\ \end{aligned}
貝爾曼方程的推導(dǎo)過程中只是簡單得使用了累積回報G_t,以及狀態(tài)價值函數(shù)v(s)的基本定義。最后即可得出當(dāng)前狀態(tài)價值函數(shù)v(s)的值為,在當(dāng)前狀態(tài)s下,即時獎勵R_{t+1}與下一狀態(tài)的折扣狀態(tài)價值\gamma v(S_{t+1})的期望之和。

其核心即阻礙與表示當(dāng)前狀態(tài)價值函數(shù)v(s)與下一刻狀態(tài)價值函數(shù)v(s_{t+1})之間的遞歸關(guān)系。

我們可以回溯樹的方式更好的理解貝爾曼方程的計算。因回溯圖中的關(guān)系是回溯運算的基礎(chǔ),也是強化學(xué)習(xí)的核心內(nèi)容。通俗的講,回溯操作就是講后續(xù)狀態(tài)的價值信息回傳給當(dāng)前時刻的狀態(tài)。

image.png

其中空心圓表示一個狀態(tài),以狀態(tài)s作為根節(jié)點,智能體依據(jù)狀態(tài)轉(zhuǎn)移概率,可能會到達(dá)兩個后續(xù)狀態(tài)s‘,以及在離開狀態(tài)s時獲得的獎勵r。貝爾曼方程對所有可能性采用其出現(xiàn)概率進(jìn)行了加權(quán)平均。這也就說明了起始狀態(tài)的價值一定等于后續(xù)狀態(tài)的(折扣)期望值加上對應(yīng)收益的期望值。
\begin{aligned} v(s)= \mathbb E[R_{t+1} + \gamma v(S_{t+1})|S_t=s] \end{aligned}

\begin{aligned} v(s)= \mathbb R_s+ \gamma \sum_{s' \in S} \mathbb P_{ss'}v(s') \end{aligned}

這里通過之前的實例可以進(jìn)行直觀的驗證。這里主要觀測圖中Class3狀態(tài)下的狀態(tài)值函數(shù)4.3的計算過程。

image.png

Class3狀態(tài)下的即時獎勵為R=-2,并有兩個后續(xù)狀態(tài)(0.6的概率轉(zhuǎn)移到pass狀態(tài),0.4的概率轉(zhuǎn)移到pub狀態(tài)),同時設(shè)定了折扣系數(shù)\gamma為1。所以可以計算得出:
\begin{aligned} v(Class3) &=即時獎勵R +P_{轉(zhuǎn)移到pass}*v(pass) +P_{轉(zhuǎn)移到pub}*v(pub) \\\\ &= -2 + 0.6 * 10+0.4* 0.8 \end{aligned}

貝爾曼方程的矩陣形式

貝爾曼方程也可以簡單得表示為矩陣的形式:
v= R + \gamma Pv
這里的價值函數(shù)v是關(guān)于每個狀態(tài)的價值函數(shù)的列向量,矩陣形式展開后的表示如下:
\left|\begin{matrix}v_{1}\\\\.\\\\v_{n}\end{matrix}\right| = \left|\begin{matrix}R_{1}\\\\.\\\\R_{n}\end{matrix}\right|+ \gamma \left|\begin{matrix}P_{11} & ...&P_{1n}\\\\. & &.\\\\P_{n1} &... &P_{nn}\end{matrix}\right|\left|\begin{matrix}v_{1}\\\\.\\\\v_{n}\end{matrix}\right|

貝爾曼方程的求解

既然已經(jīng)能夠?qū)⒇悹柭匠瘫硎緸榫仃囆问剑⑶移錇榫€性方程,那么就可以直接進(jìn)行求解:
v=R + \gamma Pv \\ (1-\gamma P)v=R \\ v=(1- \gamma P)^{-1}R
對于一些低復(fù)雜度的MRP問題,這樣直接計算解析解是非常快的,但是由于要計算矩陣的逆,其計算復(fù)雜度為O(n^3)。所以并不適用與復(fù)雜的計算場景,針對復(fù)雜MRP問題,一般用迭代的方式求解貝爾曼方程,例如:

  • 動態(tài)規(guī)劃(Dynamic programming)
  • 蒙特卡洛方法(Monte-Carlo evaluation)
  • 差分學(xué)習(xí)法(Temporal-Difference learning)

5.馬爾科夫決策過程(Markov Decision Processes,MDP)

5.1 馬爾科夫決策過程(Markov DecisionProcess)定義

到目前為止其實我們都沒有講到強化學(xué)習(xí),因為我們雖然對原始的馬爾科夫過程(Markov Process,MP)引入了獎勵R而引入馬爾科夫獎勵過程(Markov Reward Process,MRP),可是我們并沒有決策的部分,強化學(xué)習(xí)本身是一個決策的問題。所以現(xiàn)在我們再引入一個因子,就是動作(Action)。從而將MRP問題變成了.馬爾科夫決策過程(Markov Decision Processes,MDP)。此時才能算得上是強化學(xué)習(xí)。MDP是一個環(huán)境,里面的每個狀態(tài)都滿足馬爾科夫性質(zhì)(Markov Property)。

馬爾科夫決策過程(Markov DecisionProcess)定義:

一個馬爾科夫決策過程(Markov DecisionProcess),由一個五元組構(gòu)成:<S,A,P,R,\gamma>

  • S為有限的狀態(tài)空間集,s_i表示時間步i的狀態(tài),其中S=\{s_1,s_2,...s_n\}
  • A為動作空間集,a_i表示時間步t的動作,其中A=\{a_1,a_2,...,a_n\}
  • P為狀態(tài)轉(zhuǎn)移矩陣,表示在當(dāng)前狀態(tài)s下執(zhí)行動作a后,轉(zhuǎn)移到另一個狀態(tài)s'的概率分布,可以記為 \mathbb P_{ss'}^a=\mathbb P[S_{s+1}=s'| S_t=s,A_t=a]
  • R為獎勵函數(shù),表示在狀態(tài)s下執(zhí)行動作a后轉(zhuǎn)移到另一個狀態(tài)s'獲得的獎勵, R_s^a=\mathbb E[R_{t+1}|S_t=s,A_t=a]
  • \gamma為折扣因子,\gamma \in [0,1]

為了直觀理解MDP過程,還是以之前的例子為例,圖中紅色的部分就是動作(Action)。

image.png

這里需要注意的是,因為有了動作的加入,獎勵不再只和狀態(tài)相關(guān),還和動作有關(guān)。之前的獎勵是離開狀態(tài)就獲取的即時獎勵,現(xiàn)在是
在某個狀態(tài)下采取特定動作后獲取的即時獎勵.

接下來我們將介紹在MDP的框架之下的一些基本要素。

5.1 策略(Policy)

策略是狀態(tài)到動作的映射,在某個狀態(tài)下采取什么樣的動作,可以是確定的策略,也可以是一個隨機策略(概率事件)。其定義如下:
\pi(a|s) =P[A_t=a|S_t=s]

  • 策略完整定義了智能體的所有行為方式。
  • MDP的策略只依賴于當(dāng)前的狀態(tài),不依賴于歷史狀態(tài)。
  • 策略是穩(wěn)態(tài)的,不受時間約束。 即A_t \sim \pi(.|S_t),\forall t\gt 0
  • 在給定一個MDP,M=<S,A,P,R,\gamma>以及一個策略\pi,那么狀態(tài)序列S_1,S_2,...,可以表示的前面章節(jié)描述的馬爾科夫過程(MP)為<S,P^{\pi}>
  • 在給定一個MDP,M=<S,A,P,R,\gamma>以及一個策略\pi,那么狀態(tài)與獎勵序列S_1,R_2,S_2,R_3...,可以表示前面章節(jié)描述的的馬爾科夫獎勵過程(MRP)為<S,P^{\pi},R^{\pi},\gamma>

上述中的狀態(tài)轉(zhuǎn)移矩陣與獎勵函數(shù)定義為:
P_{s,s'}^{\pi} = \sum_{a \in A}\pi (a|s)P_{ss'}^a

R_{s}^{\pi} = \sum_{a \in A}\pi (a|s)R_{s}^a

5.2 價值函數(shù)(Value Function)

MDP的價值函數(shù)和MRP的有一些不同,與策略相關(guān)。正因為有了策略,價值函數(shù)不再單純的只和狀態(tài)s相關(guān)了。采取不同的策略,價值函數(shù)也會不同。因為從貝爾曼方程中我們也能看出,價值的計算和動作相關(guān),而動作的選擇就是策略。但是這里不得不提一下,這里的價值函數(shù)只是策略的價值函數(shù),它的好壞不一定代表真正的狀態(tài)的好壞,它只是根據(jù)你提供的這個策略計算出來的,提供的這個策略不一定是一個好策略,那么自然計算出來的價值不一定具有很強的參考性。

當(dāng)執(zhí)行到某一步時,如果需要評估當(dāng)前智能體在該時間步狀態(tài)的好壞程度,主要由價值函數(shù)(Value Function)來完成。由于價值函數(shù)的輸入分為狀態(tài)s和<狀態(tài),價值>對<s,a>,所以通常,當(dāng)輸入狀態(tài)時統(tǒng)稱為狀態(tài)值函數(shù),輸入<狀態(tài),價值>對<s,a>時統(tǒng)稱為動作值函數(shù),當(dāng)不討論其輸入時,統(tǒng)稱為價值函數(shù)。

一個馬爾科夫決策過程的狀態(tài)值函數(shù)v_{\pi}(s)是對未來獎勵的預(yù)測,表示在狀態(tài)s下,跟隨給定的策略\pi會得到的獎勵期望。
v_{\pi}(s) = E_{\pi}[G_t|S_t=s]
一個馬爾科夫決策過程的動作值函數(shù)q_{\pi}(s,a),表示在狀態(tài)s下,執(zhí)行動作a,并跟隨給定的策略\pi會得到的獎勵期望。
q_{\pi}(s,a) = E_{\pi}[G_t|S_t=s,A_t=a]

5.3 馬爾科夫決策過程的貝爾曼方程(Bellman Equation)

與在馬爾科夫獎勵過程的貝爾曼方程思想相同,狀態(tài)值函數(shù)可以分解為即時獎勵R_{t+1}與下一狀態(tài)的折扣狀態(tài)價值\gamma v(S_{t+1})的期望之和。
v_{\pi}(s) = E_{\pi}[R_{t+1}+\gamma v_{\pi}(S_{t+1})|S_t=s]
同時動作值函數(shù)也可以進(jìn)行類似的分解:
q_{\pi}(s,a) = E_{\pi}[R_{t+1}+\gamma q_{\pi}(S_{t+1},A_{t+1})|S_t=s,A_t=a]
為了方便理解,可以畫出響應(yīng)的狀態(tài)值函數(shù)與動作值函數(shù)的回溯圖。

狀態(tài)值函數(shù)V^{\pi}的回溯圖

我們以根節(jié)點的空心圓表示當(dāng)前的狀態(tài)s,以實心圓表示在當(dāng)前狀態(tài)智能體根據(jù)策略\pi可能采取的動作a

image.png

狀態(tài)值函數(shù)即可表示為對所有可能的動作產(chǎn)生的動作值函數(shù)進(jìn)行了加權(quán)平均。
v_{\pi}(s)=\sum _{a \in A}\pi(a|s)q_{\pi}(s,a)

動作值函數(shù)Q^{\pi}的回溯圖

我們以根節(jié)點的實心圓表示當(dāng)前智能體根據(jù)策略\pi已經(jīng)選取的的動作a,以空心圓表示在當(dāng)前動作之后,智能體可能的下一步狀態(tài)s'。其中也包含了在動作執(zhí)行后得到的獎勵r

image.png

動作值函數(shù)即可表示為,執(zhí)行當(dāng)前動作獲得的獎勵R_s^a,加上對所有可能的未來狀態(tài)的狀態(tài)值函數(shù)進(jìn)行了加權(quán)平均。
q_{\pi}(s,a)=R_s^a+\gamma \sum _{s‘ \in S}P_{ss'}^a v_{\pi}(s')

狀態(tài)值函數(shù)V^{\pi}的二次展開的回溯圖

根據(jù)前面狀態(tài)值函數(shù)V^{\pi}的的溯圖,進(jìn)行下一個時間步的展開,考慮在動作后的狀態(tài)。我們可以得到展開后的回溯圖。

image.png

狀態(tài)值函數(shù)即可表示為對所有可能的動作產(chǎn)生的動作值函數(shù)的詳細(xì)二次分解進(jìn)行了加權(quán)平均。
v_{\pi}(s)=\sum _{a \in A}\pi(a|s)(R_s^a+\gamma \sum _{s‘ \in S}P_{ss'}^a v_{\pi}(s'))

動作值函數(shù)Q^{\pi}的二次展開回溯圖

根據(jù)前面動作值函數(shù)Q^{\pi}的回溯圖,進(jìn)行下一個時間步的展開,考慮在下一狀態(tài)后,根據(jù)策略\pi可能采用的新的動作。我們可以得到展開后的回溯圖。

image.png

動作值函數(shù)即可表示為:
q_{\pi}(s,a)=R_s^a+\gamma \sum _{s‘ \in S}P_{ss'}^a\sum _{a’ \in A}\pi(a‘|s’)q_{\pi}(s‘,a’)

貝爾曼方程求解示例

下面我們順著之前的例子,看看貝爾曼方程的求解過程:

image.png

這里我們需要求解Class3狀態(tài)下的狀態(tài)值函數(shù)v(class3)
\begin{aligned} v(Class3) &=\sum _{a \in A}\pi(a|s)q_{\pi}(s,a) \\\\ &=P_{pub}*q_{\pi}(Class3,pub)+P_{study}*q_{\pi}(Class3,sleep) \\\\ &=P_{pub}*(R_{pub}+v(pub))+P_{study}*(R_{study}+v(sleep)) \\\\ &=P_{pub}*(R_{pub}+P_{pub-class1}*v(class1)+P_{pub-class2}*v(class2)+P_{pub-class3}*v(class3))+P_{study}*(R_{study}+v(sleep)) \\\\ &=0.5*(1+0.2*(-1.3)+0.4*2.7+0.4*7.4)+0.5*(10+0) \\\\ &=7.4 \end{aligned}

MDP下貝爾曼方程的矩陣形式

在馬爾科夫決策過程下的貝爾曼方程的矩陣形式與在馬爾科夫獎勵過程下的矩陣形式類似,只是考慮了策略\pi
v_{\pi}= R^{\pi} + \gamma P^{\pi}v_{\pi}

其直接的解析解為:

v_{\pi}=(1- \gamma P^{\pi})^{-1}R^{\pi}
計算復(fù)雜度為O(n^3)。所以并不適用與復(fù)雜的計算場景,針對復(fù)雜MRP問題,一般用迭代的方式求解貝爾曼方程。

5.3 最優(yōu)值函數(shù)(Optimal Value Function)

由之前的介紹可知,強化學(xué)習(xí)的目標(biāo)就是求解馬爾科夫決策過程的最優(yōu)策略,而值函數(shù)是對最優(yōu)策略\pi ^*的表達(dá)。

最優(yōu)值函數(shù)(Optimal Value Function)分為最優(yōu)狀態(tài)值函數(shù)(optimal state-value function)與最優(yōu)動作值函數(shù)(optimal action_value function),他們的定義如下:

最優(yōu)狀態(tài)值函數(shù)(optimal state-value function)v_*(s)就是在所有策略\pi當(dāng)中,最大的狀態(tài)值函數(shù):
v_*(s)=\max_{\pi}v_{\pi}(s)
最優(yōu)動作值函數(shù)(optimal action_value function)q_*(s,a)就是在所有策略\pi當(dāng)中,最大的動作值函數(shù):
q_*(s,a)=\max_{\pi}q_{\pi}(s,a)

我們更希望的是最優(yōu)值函數(shù),最優(yōu)值函數(shù)是與策略無關(guān)的,根據(jù)最優(yōu)值函數(shù)可以直接得到最優(yōu)策略。只需要沿著狀態(tài)價值函數(shù)大的方向移動就行,這其實也就是強化學(xué)習(xí)中的一個流派,基于值學(xué)習(xí)的(相對于基于策略學(xué)習(xí))。值比較大的狀態(tài)就是好,比如終點前的一個狀態(tài)值一般就比較大,因為下一刻就可以結(jié)束。此處用"一般"是因為考量的是狀態(tài)值,如果這個狀態(tài)不僅和終點相連并且還和幾個失敗點相連,狀態(tài)值不一定大。參考貝爾曼方程計算公式,如果我們使用另一種動作值函數(shù),代表狀態(tài)s下采取特定動作a的價值。那么我們就可以說,終點前一個狀態(tài),采取動作a可以直接到終點,這個q(s,a)一定是一個大值。這也提示了使用q(s,a)值一般比使用狀態(tài)價值v(s)更好,因為考慮了動作。

最優(yōu)值函數(shù)確定了馬爾科夫決策過程中智能體的最優(yōu)的可能表現(xiàn)。獲得了最優(yōu)值函數(shù),也就獲得了么個狀態(tài)的最有價值,那么此時馬爾科夫決策過程的所有變量都為已知的,接下來便能夠很好的求解馬爾科夫決策過程的問題。

5.3 最優(yōu)策略(Optimal Policy)

最優(yōu)策略(Optimal Policy)的定義為:
\pi \ge \pi ’ \ \ \ if \ \ \ v_{\pi}(s) \ge v_{\pi'}(s),\forall s
在狀態(tài)s下,當(dāng)策略\pi的價值函數(shù)優(yōu)于任何其他策略\pi'的價值函數(shù)時,策略\pi即為狀態(tài)s下的最優(yōu)策略。關(guān)于馬爾科夫決策過程的最優(yōu)策略,有如下3個定理:

(1)對于任何馬爾科夫決策過程問題,存在一個最優(yōu)策略\pi^*,其優(yōu)于(至少等于)任何其他策略,即\pi^* \ge \pi

(2)所有最優(yōu)策略下都有最優(yōu)狀態(tài)值函數(shù),即v_{\pi^*}(s) = v^*(s)

(3)所有最優(yōu)策略下都有最優(yōu)動作值函數(shù),即q_{\pi^*}(s,a) = q^*(s,a)

基于上述三個定理,尋找最優(yōu)策略可以通過最優(yōu)狀態(tài)值函數(shù)v_{\pi^*}(s)或者最優(yōu)動作值函數(shù)q_{\pi^*}(s,a)來得到。也就是說如果最優(yōu)值函數(shù)已知,則可以獲得馬爾科夫決策過程的最優(yōu)策略。

因此,可以通過最大化q^*(s,a)得到最優(yōu)策略\pi^*,具體的定義如下:
\pi_{*}(a|s)=\begin{cases} 1,\quad if \ \ a= \max_{a \in A}\ q(s,a) \\\\ 0,\quad 其他 \end{cases}
上式中,a= \max_{a \in A}\ q(s,a)時,\pi(a|s)為1,表明如果動作值函數(shù)的最大值為最優(yōu)策略所選擇的動作,那么智能體已經(jīng)找到最優(yōu)策略\pi^*。只要最優(yōu)動作值函數(shù)q^*(s,a)已知,就可以立即獲得最優(yōu)策略。綜上所述,最優(yōu)策略\pi^*對于任何馬爾科夫決策過程都會有一個對應(yīng)的確定性最優(yōu)策略\pi_{*}(a|s)

到目前為止,最優(yōu)策略的求解問題事實上已經(jīng)轉(zhuǎn)換成為了最優(yōu)值函數(shù)的求解問題。如果已經(jīng)求出最優(yōu)值函數(shù),那么最優(yōu)策略是非常容易得到的,反之同理。通過最優(yōu)策略求解問題的轉(zhuǎn)換,可以將鼓勵的最優(yōu)策略\pi^*、最優(yōu)值函數(shù)v^*(s)、最優(yōu)動作值函數(shù)q^*(s,a)連為一體。需要注意的是,在實際工作中,也可以不求最優(yōu)值函數(shù),而使用其他方法直接求解最優(yōu)策略。

最優(yōu)值函數(shù)的貝爾曼方程與回溯圖

我們?nèi)粢曰厮輬D的形式展示v_*q_*的貝爾曼方程中所進(jìn)行的后續(xù)狀態(tài)和動作的擴展過程。除了在智能體的選擇節(jié)點處加入了弧線表示應(yīng)該在給定策略下取最大值而不是期望值之外,其他都和之前介紹的v_{\pi}以及q_{\pi}的回溯圖相同。

最優(yōu)狀態(tài)值函數(shù)v_*(s)表示如下:

image.png

v_*(s)=\max_aq_*(s,a)
最優(yōu)動作值函數(shù)q_*(s,a)表示如下:
q_{*}(s,a)=R_s^a+\gamma \sum _{s‘ \in S}P_{ss'}^a v_{*}(s')
最優(yōu)狀態(tài)值函數(shù)v_*(s)的二次展開的回溯圖表示如下:

image.png

v_{*}(s)=\max _{a}(R_s^a+\gamma \sum _{s‘ \in S}P_{ss'}^a v_{*}(s'))

最優(yōu)動作值函數(shù)q_*(s,a)的二次展開的回溯圖表示如下:

image.png

q_{*}(s,a)=R_s^a+\gamma \sum _{s‘ \in S}P_{ss'}^a\max _{a’}q_{*}(s‘,a’)

5.4 求解貝爾曼最優(yōu)方程

上面描述的回溯圖過程中已經(jīng)給出了貝爾曼最優(yōu)方程的基本形式,其闡述的一個事實是:最優(yōu)策略下各個狀態(tài)的價值一定等于這個狀態(tài)下最優(yōu)動作的期望回報。我們已經(jīng)知道,

  • 求解強化學(xué)習(xí)問題實際上是求解最優(yōu)策略。
  • 最優(yōu)策略可以通過求解最優(yōu)值函數(shù)得到。
  • 最優(yōu)值函數(shù)的求解就是優(yōu)化貝爾曼方程。

簡而言之,強化學(xué)習(xí)的求解最后演化成了優(yōu)化貝爾曼方程。貝爾曼最優(yōu)方程實際上是一個方程組,每個狀態(tài)對應(yīng)一個方程等式。也就是說,如果有n個狀態(tài),那么有n個含有n個未知量的方程。如果環(huán)境的動態(tài)變化特性p是已知的,那么原則上可以用解非線性方程組的求方法來求解v_*方程組。類似地,我們也可以求得q_*的一組解。對于小規(guī)模的馬爾科夫決策過程,可以直接求解價值函數(shù),對于大規(guī)模的馬爾科夫決策過程,通常非常難以獲得解析解,必須采用迭代的方法優(yōu)化貝爾曼方程。比如:

  • Value Iteration算法
  • Policy Iteration算法
  • Q-learning算法
  • Sarsa算法

6.馬爾科夫決策過程的擴展

除了上述的標(biāo)準(zhǔn)的MDP,還有很多MDP的拓展情形,比如無限的和連續(xù)的MDP(infinite and continuous MDP),部分可觀測的MDP(partially observable MDPs),非折扣的、平均獎勵的MDP等。

6.1 無窮或連續(xù) MDPs (Infinite and continuous MDPs)

如果考慮到動作空間或者狀態(tài)空間的的連續(xù)性,MDP會有如下幾種擴展:

  • 動作空間或狀態(tài)空間的大小為無窮可數(shù)。

  • 動作空間或狀態(tài)空無限不可數(shù)(連續(xù)),這種情況在線性最小二乘(Linear quadratic,LQR)模式中有閉式解。

  • 時間連續(xù)的MDP,可以參考《Adaptive optimal control for continuous-time linear systems based on policy iteration》

6.2 部分可觀測 MDPs(Partially observable MDPs, POMDPs)

我們已經(jīng)知道MDP模型是根據(jù)系統(tǒng)當(dāng)前的實際狀態(tài)做出決策的,MDP的一個重要前提是智能體對環(huán)境的觀察室完備的,而現(xiàn)實世界中智能體只能觀察到部分信息,比如很多情況下,難以獲得系統(tǒng)的精確狀態(tài)。尤其對復(fù)雜的機械系統(tǒng)來說,測量系統(tǒng)狀態(tài)的傳感器信號通常會收到噪聲污染,難以獲得系統(tǒng)的精確狀態(tài)。針對這樣的問題,一個更接近現(xiàn)實世界的模型被提出,即部分可觀測馬爾科夫決策過程(POMDP)。它比MDP更加接近一般的決策過程,除了他的前提是部分可觀測之外,他也基于MDP類似的假設(shè),采用的是最大化期望獎勵的方法。因此POMDP可以被看做是MDP的擴展,他的狀態(tài)空間包括所有定義在對應(yīng)的MDP的狀態(tài)集合上的概率分布,這些概率分布表現(xiàn)了信念狀態(tài)。

POMDP模型

部分可觀測馬爾科夫決策過程(Partially observable MDPs, POMDPs)定義:

一個部分可觀測馬爾科夫決策過程(Partially observable MDPs, POMDPs),由一個七元組構(gòu)成:<S,A,O,P,R,Z,\gamma>

  • S為有限的狀態(tài)空間集,s_i表示時間步i的狀態(tài),其中S=\{s_1,s_2,...s_n\}
  • A為動作空間集,a_i表示時間步t的動作,其中A=\{a_1,a_2,...,a_n\}
  • O為有限的觀察結(jié)果空間集。
  • P為狀態(tài)轉(zhuǎn)移矩陣,表示在當(dāng)前狀態(tài)s下執(zhí)行動作a后,轉(zhuǎn)移到另一個狀態(tài)s'的概率分布,可以記為 \mathbb P_{ss'}^a=\mathbb P[S_{s+1}=s'| S_t=s,A_t=a]
  • R為獎勵函數(shù),表示在狀態(tài)s下執(zhí)行動作a后轉(zhuǎn)移到另一個狀態(tài)s'獲得的獎勵, R_s^a=\mathbb E[R_{t+1}|S_t=s,A_t=a]
  • Z為觀察函數(shù),表明系統(tǒng)狀態(tài)和觀察值之間的關(guān)系,即,智能體在執(zhí)行動作a進(jìn)入環(huán)境狀態(tài)s'后得到的觀察值的概率。Z_{s'o}^{a}=\mathbb P[O_{t+1}=o|S_{t+1}=s',A_t=a]
  • \gamma為折扣因子,\gamma \in [0,1]

注意,O為有限的觀察結(jié)果空間集,比如機器人的傳感器獲得的環(huán)境數(shù)據(jù)。在MDP中,由于智能體完全了解系統(tǒng)狀態(tài),因此O\equiv S,而在部分可觀測環(huán)境中,觀察僅在概率上取決于潛在的環(huán)境狀態(tài)。因為在不同的環(huán)境狀態(tài)中可以得到同樣的觀察,因此確定智能體所處的狀態(tài)變得很困難。

假設(shè)在時刻t,此時的環(huán)境處于狀態(tài)s \in S。智能體采取動作a \in A,根據(jù)狀態(tài)轉(zhuǎn)移矩陣P(s'|s,a)進(jìn)入環(huán)境狀態(tài)s',同時智能體獲得環(huán)境的觀察值o \in O,這取決于環(huán)境的新狀態(tài),概率為Z(o|s',a)。最后智能體得到獎勵值R。重復(fù)上述步驟。整個過程的目的是讓智能體在每個時間步選擇的動作可以最大化未來期望的折扣獎勵:
\mathbb E[\sum_{t=0}^{\infin}\gamma ^tr_t]
其中r_t是在時間步t獲得的獎勵,折扣因子的大小決定了最近的獎勵和未來的獎勵哪個對智能體影響更大。當(dāng)\gamma =0時表示智能體只關(guān)心下一次動作選擇哪個動作可以最大化獎勵,因為之后的收益為0;當(dāng)\gamma =1時表示智能體更關(guān)心接下來所有動作的獎勵之和。

信念狀態(tài)(Belief States)

在POMDP中,智能體不能確信自己處于哪個狀態(tài),因此對于下一步動作的選擇的決策基礎(chǔ)是當(dāng)前所處狀態(tài)的概率,也就是說最有可能處于哪個狀態(tài)。所以,智能體需要通過傳感器收集環(huán)境信息,也就是得到觀察值,來更新自己對當(dāng)前所處狀態(tài)的可信度。“信息收集”的動作并不是直接把智能體導(dǎo)向目標(biāo)點,而是作為一個緩沖,讓智能體先運動到鄰近位置,在這個鄰近位置上收集到的環(huán)境信息加大了智能體對自己所處狀態(tài)的可信度。在非常確信自己所處的狀態(tài)之后,智能體做出的動作決策才是更加有效的。因此,在每個時間周期,智能體雖然無法準(zhǔn)確得知其所處的環(huán)境狀態(tài),但是它可以通過觀察得到當(dāng)前狀態(tài)的不完整信息。通過觀察和動作的歷史來做決策,我們把t時刻觀察和行為的歷史定義為:
h_t=(a_0,o_1,...,o_{t-1},a_{t-1},o_t)
這樣的描述會消耗很大的存儲空間,為了解決這個問題,一些學(xué)者研究了如何對過去的歷史進(jìn)行壓縮表示,即采用較短的歷史代替所有的觀察和行為,Astrom提出用狀態(tài)上的概率,這樣就引入了信念狀態(tài)b(s)的概念,表示智能體對自己當(dāng)前所處狀態(tài)的可信度。
b(h)=(\mathbb P[S_t=s^1|H_t=h],...,\mathbb P[S_t=s^n|H_t=h])
Sondik證明信念狀態(tài)b(s)是對歷史h_t的充分估計,所有狀態(tài)上維護(hù)一個概率分布可以與維護(hù)一個完整歷史提供同樣的信息。以前解決POMDP問題時,需要知道歷史動作才能決定當(dāng)前的操作,這種解決方案是非馬爾科夫鏈,然而引入信念狀態(tài)后,POMDP問題就可以轉(zhuǎn)化為基于信念空間的馬爾科夫鏈來求解。因此簡單的說,我們把POMDP轉(zhuǎn)換為求解信念狀態(tài)函數(shù)和策略問題。

他們之間滿足的馬爾可夫性可以表示為如下的樹形結(jié)構(gòu):

image.png

6.3 無折扣,平均獎勵MDPs(Undiscounted,Average reward MDPs)

遍歷馬爾科夫過程(Ergodic Markov Process)

馬爾可夫鏈的遍歷性通俗的理解就是任意取一個時間段,所有狀態(tài)都有出現(xiàn)的可能。遍歷鏈?zhǔn)欠侵芷诘钠椒€(wěn)馬爾可夫鏈,有長時間尺度下的穩(wěn)態(tài)行為,因此是被廣泛研究和應(yīng)用的馬爾可夫鏈。

  • 周期性(Recurrent):每個狀態(tài)都被訪問了無數(shù)次
  • Aperiodic(非定期的):訪問每個狀態(tài)都沒有任何系統(tǒng)的周期

遍歷馬爾可夫過程具有以下性質(zhì)的極限平穩(wěn)分布:
d^{\pi}(s)=\sum_{s' \in S }d^{\pi}P_{s's}

遍歷馬爾科夫決策過程定義:

如果任何策略引起的馬爾可夫鏈都是遍歷的,則MDP是遍歷的。

An MDP is ergodic if the Markov chain induced by any policy is ergodic.

對于任何策略\pi,遍歷MDP的每個時間步長\rho^{\pi}的平均獎勵與開始狀態(tài)無關(guān)。
\rho ^\pi= \lim_{T \rightarrow \infin}\frac{1}{T} \mathbb E[\sum_{t=1}^{T}R_t]

平均獎勵的值函數(shù)(Average Reward Value Function)

  • undiscounted, ergodic MDP(未打折的遍歷MDP)的價值函數(shù)可以用平均獎勵來表示。
  • \hat v_{\pi}是從狀態(tài)s開始的額外獎勵。

\hat v_{\pi}= \mathbb E[\sum_{k=1}^{\infin}(R_{t+k}-\rho^{\pi})|S_t=s]

有著相應(yīng)的平均獎勵貝爾曼方程:
\begin{aligned} \hat v_{\pi} &=\mathbb E[(R_{t+1}-\rho^{\pi})+\sum_{k=1}^{\infin}(R_{t+k+1}-\rho^{\pi})|S_t=s] \\\\ &=\mathbb E[(R_{t+1}-\rho^{\pi})+\hat v_{\pi}(S_{t+1})|S_t=s] \end{aligned}


歷史文章鏈接:

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。