1. 程式人生 > >深度強化學習2——馬爾科夫決策過程(MDP)

深度強化學習2——馬爾科夫決策過程(MDP)

本文講解思路從馬科夫過程(MP) 到馬爾科夫獎勵過程(MRP)最後到馬爾科夫決策過程(MDP)。

首先我們要了解馬爾科夫性,在上一章1.3我們也提到,當前狀態包含了對未來預測所需要的有用資訊,過去資訊對未來預測不重要,該就滿足了馬爾科夫性,嚴格來說,就是某一狀態資訊包含了所有相關的歷史,只要當前狀態可知,所有的歷史資訊都不再需要,當前狀態就可以決定未來,則認為該狀態具有馬爾科夫性。下面用公式來描述馬爾科夫性:

根據公式將來的狀態與過去的狀態無關,只與當前狀態有關。

我們用狀態轉移概率來描述馬爾科夫性

對於很多狀態,我們有狀態轉移概率矩陣

其中n表示狀態數量,表示從狀態到狀態

的概率。

一、馬爾科夫過程(Markov Process)

馬爾科夫過程又叫馬爾科夫鏈(Markov Chain),它是一個無記憶的隨機過程,可以用一個元組<S,P>表示,其中S是有限數量的狀態集,P是狀態轉移概率矩陣。

下面用個逛商城的例子描述:

圖中圓圈表示數字,箭頭表示狀態轉移,箭頭上的數字表示狀態轉移的概率。很顯然,進入商城是初始狀態,出口是終止狀態,當處於進入商城狀態時,有50%的概率會直接去出去,有50%的概率去買衣服。當處於買衣服的狀態時,20%的概率選擇買完衣服後去休息,有80%的概率在買完衣服後去吃飯。

根據上面的狀態圖我們從進入商城開始,終止於出口,過程中會產生很多可能性,可以稱為Sample Episodes,比如下面可能產生的Episode:

  1. S1,S2,S3,S5,S7
  2. S1,S2,S4,S3,S5,S7
  3. S1,S2,S4,S6,S7
  4. S1,S2,S3,S5,S6,S7

我們用狀態轉移概率矩陣來描述所有可能:

轉移概率矩陣上每一行的和都為1。

二、馬爾科夫獎勵過程(Markov Reward Process)

馬爾科夫獎勵過程是在馬爾科夫過程基礎上增加了獎勵函式和衰減係數,用表示。S狀態下的獎勵R是某一時刻的狀態處在狀態s下在下一個時刻(t+1)能獲得的獎勵的期望,用公式表示為:

繼續用逛商城的例子描述:

上圖和前面比較,在每個狀態的基礎上增加了獎勵R。當人進入商城時獲得的獎勵為-1,進入購買衣服狀態後獲得的獎勵為-2。當處於買衣服的狀態時,下一步可能進入休息的狀態,獲得獎勵為-2,還有可能進入吃飯狀態,獲得獎勵為-2,依次下去,直到到達出口狀態。

定義:收穫為在一個馬爾科夫獎勵鏈上從t時刻開始往後所有的獎勵的有衰減的收益總和,公式如下:

而衰減係數,用來描繪遠期利益的不確定性,體現了未來的獎勵在當前時刻的價值比例,很顯然越靠近1,考慮的利益越長遠。

既然有了收穫,我們就需要衡量某一個狀態的價值,我們定義如下:

定義:一個馬爾科夫獎勵過程中某一狀態s的價值函式為從該狀態開始的馬爾科夫鏈收穫的期望,公式如下:

為了理解我們根據上圖舉例,這次我們從吃飯的狀態S4開始,我們有5個馬爾科夫鏈:

  1. S4,S5,S7
  2. S4,S5,S6,S7
  3. S4,S6,S7
  4. S4,S3,S5,S7
  5. S4,S3,S5,S6,S7

我們假設,此時馬爾科夫鏈上收穫為

  1. S4,S5,S7                               
  2. S4,S5,S6,S7                       
  3. S4,S6,S7                               
  4. .................
  5. .................

由於計算期望,我們需要知道選擇這五條路徑的概率,發現我們的轉移概率矩陣還沒用到,這時我們需要引入Bellman方程。

Bellman方程

我們根據價值函式推導:

我們可以看到價值函式有兩部份組成,一個是當前獲得的獎勵的期望,即,另一個是下一時刻狀態的價值期望,這是我們就可以利用轉移概率矩陣得到期望,這是Bellman方程變為

其中S表示下一時刻的所有狀態,s'表示下一時刻可能的狀態。

根據方程,我們要知道下一個狀態的價值,依次下去,很明顯這就是動態規劃,到達狀態S7時,v(S7)=0,我們利用遞迴就得到結果,當

圓圈內的數字表示該狀態的價值v(s)。

上圖中

三、馬爾科夫決策過程(Markov Decision Process)

馬爾科夫決策過程是在馬爾科夫獎勵過程的基礎上加了decisions過程,其實是多了一個動作集合,用表示。這裡的P和R都與具體的行為a對應,而不像馬爾科夫獎勵過程那樣僅對應於某個狀態,A表示的是有限的行為的集合。用公式表示

上面公式分別表示動作的概率和動作的獎勵函式。如下圖,此時箭頭表示的是動作,R表示採取動作獲得的即時獎勵

我們用黑色點表示主動進入某個臨時狀態,當處於這個狀態時可能被環境安排到另一種狀態,比如人走路,不知不覺就到達新的狀態,比如休息室,手機店,注意:此時人是沒有選擇權的,而是被動的由環境決定到達哪個狀態。

策略Policy

我們用表示策略的集合,其元素為對過程中的某一狀態s採取可能的行為a的概率,用公式表示為

需要注意:

  1. Policy定義完整定義的個體行為方式,即包括了個體在各狀態下的所有行為和概率
  2. 同時某一確定的Policy是靜態的,與時間無關
  3. Policy僅和當前的狀態有關,與歷史資訊無關,但是個體可以隨著時間更新策略

當給定一個MDP和一個策略,那麼狀態序列是一個馬爾科夫過程;同樣,狀態和獎勵序列是一個馬爾科夫獎勵過程,並且在這個獎勵過程中滿足下面兩個方程:

狀態轉移概率:    

獎勵函式:     

狀態轉移概率可以描述為:在執行策略時,狀態從s轉移至s'的概率等於執行該狀態下所有行為的概率與對應行為能使狀態從s轉移至s’的概率的乘積的和。

獎勵函式可以描述為:在執行策略時獲得的獎勵等於執行該狀態下所有行為的概率與對應行為產生的即時獎勵的乘積的和。

我們引入策略,也可以理解為行動指南,更加規範的描述個體的行為,既然有了行動指南,我們要判斷行動指南的價值,我們需要再引入基於策略的價值函式。

定義:v(s)是在MDP下的基於策略的狀態價值函式,表示從狀態s開始,遵循當前策略時所獲得的收穫的期望,用公式表示如下:

其中可以參照馬科夫獎勵過程。我們有了價值衡量標準,如果狀態s是一個好的狀態,如何選擇動作到達這個狀態,這時就需要判斷動作的好壞,衡量行為價值。

定義是基於策略的行為價值函式,表示當前狀態s執行某一具體行為a所能的到的收穫的期望,用公式表示如下:

我們根據第二節的Bellman方程做類似推導,可得

我們知道策略就是用來描述各個不同狀態下執行各個不同行為的概率,而狀態價值是遵循當前策略時所獲得的收穫的期望,即狀態s的價值體現為在該狀態下遵循某一策略而採取所有可能行為的價值按行為發生概率的乘積求和,有如下圖:

我們可以得到狀態價值函式和行為價值函式的關係

繼續看圖

一個某一個狀態下采取一個行為的價值,可以分為兩部分:其一是離開這個狀態的價值,其二是所有進入新的狀態的價值於其轉移概率乘積的和,一個行為價值函式也可以表示成狀態價值函式的形式

上述公式組合可得

下面我們用例項來理解上述公式

假設,上圖數字值為對於狀態價值v(s),根據公式價值函式需要下一個狀態的價值,終點的狀態價值為0,利用遞迴的思想即可得到

舉例:5.5=0.5*(10+0)+0.5*(0+1*1)

1.65=0.5*(-2+0.4*3.5+0.4*5.5+0.2*1)+0.5*(-2+1*3.5)

四*、最優策略

最優狀態價值函式指的是在從所有策略產生的狀態價值函式中,選取使狀態s價值最大的函式:

類似的,最優行為函式從所有策略產生的行為價值函式中,選取是狀態行為對<s,a>價值最大的函式

對於任何狀態s,遵循策略π的價值不小於遵循策略π'下的價值,則策略π優於策略π’

定理:對於任何MDP,下面幾點成立:1.存在一個最優策略,比任何其他策略更好或至少相等;2.所有的最優策略有相同的最優價值函式;3.所有的最優策略具有相同的行為價值函式。

根據上面定理,我們可以通過最大化最優行為價值函式來找到最優策略。

Bellman最優方程

一個狀態的最優價值等於從該狀態出發採取的所有行為產生的行為價值中最大的那個行為價值

在某個狀態s下,採取某個行為的最優價值由2部分組成,一部分是離開狀態 s 的即刻獎勵,另一部分則是所有能到達的狀態 s’ 的最優狀態價值按出現概率求和

組合公式可得

Bellman最優方程是非線性的,沒有固定的解決方案,通過一些迭代方法來解決:價值迭代、策略迭代、Q學習、Sarsa等。

簡單介紹一下迭代流程

策略迭代(Policy Iteration)

假設我們有一個策略,那麼我們可以用策略估計(policy evaluation)獲得它的值函式,然後根據策略改進(policy improvement)得到更好的策略,接著再計算,再獲得更好的策略,直到滿足相關終止條件

值迭代(Value Iteration)

策略迭代演算法包含了一個策略估計的過程,而策略估計則需要掃描(sweep)所有的狀態若干次,其中巨大的計算量直接影響了策略迭代演算法的效率,實際上沒有必要精確計算的值,在保證演算法收斂的情況下,縮短策略估計的過程,值迭代就是其中一種。

總結

至此我們瞭解了馬爾可夫決策過程和相關動態規劃解法,動態規劃的優點在於它有很好的數學上的解釋,但是動態要求一個完全已知的環境模型,顯然前面的計算我們都從上帝視角瞭解整個環境,這在現實中是很難做到的。另外,當狀態數量較大的時候,動態規劃法的效率也將是一個問題。下一篇我們將介紹不基於模型的演算法,蒙特卡洛(MC),時序差分學習(TD)的Q learning和Sarsa learning。

下一篇我們將深入講解強化學習的必備知識,馬爾科夫決策過程(MDP)

PS: 如果覺得本篇本章對您有所幫助,歡迎關注、評論、贊!如果要轉發請註明作者和出處

參考文獻: