強化學習(二)馬爾科夫決策過程(MDP)

劉建平Pinard發表於2018-08-05

    在強化學習(一)模型基礎中,我們講到了強化學習模型的8個基本要素。但是僅憑這些要素還是無法使用強化學習來幫助我們解決問題的, 在講到模型訓練前,模型的簡化也很重要,這一篇主要就是講如何利用馬爾科夫決策過程(Markov Decision Process,以下簡稱MDP)來簡化強化學習的建模。

    MDP這一篇對應Sutton書的第三章和UCL強化學習課程的第二講。

1. 強化學習引入MDP的原因

    強化學習的8個要素我們在第一節已經講了。其中的第七個是環境的狀態轉化模型,它可以表示為一個概率模型,即在狀態$s$下采取動作$a$,轉到下一個狀態$s'$的概率,表示為$P_{ss'}^a$。

    如果按照真實的環境轉化過程看,轉化到下一個狀態$s'$的概率既與上一個狀態$s$有關,還與上上個狀態,以及上上上個狀態有關。這一會導致我們的環境轉化模型非常複雜,複雜到難以建模。因此我們需要對強化學習的環境轉化模型進行簡化。簡化的方法就是假設狀態轉化的馬爾科夫性,也就是假設轉化到下一個狀態$s'$的概率僅與上一個狀態$s$有關,與之前的狀態無關。用公式表示就是:$$P_{ss'}^a = \mathbb{E}(S_{t+1}=s'|S_t=s, A_t=a)$$

    對於馬爾科夫性本身,我之前講過的隱馬爾科夫模型HMM(一)HMM模型條件隨機場CRF(一)從隨機場到線性鏈條件隨機場以及MCMC(二)馬爾科夫鏈都有講到。它本身是一個比較簡單的假設,因此這裡就不專門對“馬爾可夫性”做專門的講述了。

    除了對於環境的狀態轉化模型這個因素做馬爾科夫假設外,我們還對強化學習第四個要素個體的策略(policy)$\pi$也做了馬爾科夫假設。即在狀態$s$時採取動作$a$的概率僅與當前狀態$s$有關,與其他的要素無關。用公式表示就是$$\pi(a|s) = P(A_t=a | S_t=s)$$

    對於第五個要素,價值函式$v_{\pi}(s)$也是一樣, $v_{\pi}(s)$現在僅僅依賴於當前狀態了,那麼現在價值函式$v_{\pi}(s)$表示為:$$v_{\pi}(s) = \mathbb{E}_{\pi}(G_t|S_t=s ) = \mathbb{E}_{\pi}(R_{t+1} + \gamma R_{t+2} + \gamma^2R_{t+3}+...|S_t=s)$$

    其中,$G_t$代表收穫(return), 是一個MDP中從某一個狀態$S_t$開始取樣直到終止狀態時所有獎勵的有衰減的之和。

2. MDP的價值函式與貝爾曼方程

    對於MDP,我們在第一節裡已經講到了它的價值函式$v_{\pi}(s)$的表示式。但是這個表示式沒有考慮到所採用的動作$a$帶來的價值影響,因此我們除了$v_{\pi}(s)$這個狀態價值函式外,還有一個動作價值函式$q_{\pi}(s,a)$,即:$$q_{\pi}(s,a) = \mathbb{E}_{\pi}(G_t|S_t=s, A_t=a) = \mathbb{E}_{\pi}(R_{t+1} + \gamma R_{t+2} + \gamma^2R_{t+3}+...|S_t=s,A_t=a)$$

    根據價值函式的表示式,我們可以推匯出價值函式基於狀態的遞推關係,比如對於狀態價值函式$v_{\pi}(s)$,可以發現:$$\begin{align} v_{\pi}(s) &= \mathbb{E}_{\pi}(R_{t+1} + \gamma R_{t+2} + \gamma^2R_{t+3}+...|S_t=s) \\ &=  \mathbb{E}_{\pi}(R_{t+1} + \gamma (R_{t+2} + \gamma R_{t+3}+...)|S_t=s) \\ &=  \mathbb{E}_{\pi}(R_{t+1} + \gamma G_{t+1} | S_t=s) \\ &=  \mathbb{E}_{\pi}(R_{t+1} + \gamma v_{\pi}(S_{t+1}) | S_t=s)  \end{align}$$

    也就是說,在$t$時刻的狀態$S_t$和$t+1$時刻的狀態$S_{t+1}$是滿足遞推關係的,即:$$v_{\pi}(s) = \mathbb{E}_{\pi}(R_{t+1} + \gamma v_{\pi}(S_{t+1}) | S_t=s) $$

    這個遞推式子我們一般將它叫做貝爾曼方程。這個式子告訴我們,一個狀態的價值由該狀態的獎勵以及後續狀態價值按一定的衰減比例聯合組成。

    同樣的方法,我們可以得到動作價值函式$q_{\pi}(s,a)$的貝爾曼方程:$$q_{\pi}(s,a) = \mathbb{E}_{\pi}(R_{t+1} + \gamma q_{\pi}(S_{t+1},A_{t+1}) | S_t=s, A_t=a) $$

3. 狀態價值函式與動作價值函式的遞推關係

    根據動作價值函式$q_{\pi}(s,a)$和狀態價值函式$v_{\pi}(s)$的定義,我們很容易得到他們之間的轉化關係公式:$$v_{\pi}(s) = \sum\limits_{a \in A} \pi(a|s)q_{\pi}(s,a)$$

    也就是說,狀態價值函式是所有動作價值函式基於策略$\pi$的期望。通俗說就是某狀態下所有狀態動作價值乘以該動作出現的概率,最後求和,就得到了對應的狀態價值。

    反過來,利用上貝爾曼方程,我們也很容易從狀態價值函式$v_{\pi}(s)$表示動作價值函式$q_{\pi}(s,a)$,即:$$q_{\pi}(s,a) = R_s^a + \gamma \sum\limits_{s' \in S}P_{ss'}^av_{\pi}(s')$$

    通俗說就是狀態動作價值有兩部分相加組成,第一部分是即時獎勵,第二部分是環境所有可能出現的下一個狀態的概率乘以該下一狀態的狀態價值,最後求和,並加上衰減。

    這兩個轉化過程也可以從下圖中直觀的看出:

    把上面兩個式子互相結合起來,我們可以得到:

$$v_{\pi}(s) = \sum\limits_{a \in A} \pi(a|s)(R_s^a + \gamma \sum\limits_{s' \in S}P_{ss'}^av_{\pi}(s'))$$

$$q_{\pi}(s,a) = R_s^a + \gamma \sum\limits_{s' \in S}P_{ss'}^a\sum\limits_{a' \in A} \pi(a'|s')q_{\pi}(s',a')$$

4. 最優價值函式

    解決強化學習問題意味著要尋找一個最優的策略讓個體在與環境互動過程中獲得始終比其它策略都要多的收穫,這個最優策略我們可以用 $\pi^{*}$表示。一旦找到這個最優策略$\pi^{*}$,那麼我們就解決了這個強化學習問題。一般來說,比較難去找到一個最優策略,但是可以通過比較若干不同策略的優劣來確定一個較好的策略,也就是區域性最優解。

    如何比較策略的優劣呢?一般是通過對應的價值函式來比較的,也就是說,尋找較優策略可以通過尋找較優的價值函式來完成。可以定義最優狀態價值函式是所有策略下產生的眾多狀態價值函式中的最大者,即:$$v_{*}(s) = \max_{\pi}v_{\pi}(s)$$

    同理也可以定義最優動作價值函式是所有策略下產生的眾多動作狀態價值函式中的最大者,即:$$q_{*}(s,a) = \max_{\pi}q_{\pi}(s,a)$$

    對於最優的策略,基於動作價值函式我們可以定義為:$$\pi_{*}(a|s)= \begin{cases} 1 & {if\;a=\arg\max_{a \in A}q_{*}(s,a)}\\ 0 & {else} \end{cases}$$

    只要我們找到了最大的狀態價值函式或者動作價值函式,那麼對應的策略$\pi^{*}$就是我們強化學習問題的解。同時,利用狀態價值函式和動作價值函式之間的關係,我們也可以得到:$$v_{*}(s) = \max_{a}q_{*}(s,a) $$

    反過來的最優價值函式關係也很容易得到:$$q_{*}(s,a) = R_s^a + \gamma \sum\limits_{s' \in S}P_{ss'}^av_{*}(s')$$

    利用上面的兩個式子也可以得到和第三節末尾類似的式子:

$$v_{*}(s) = \max_a(R_s^a + \gamma \sum\limits_{s' \in S}P_{ss'}^av_{*}(s'))$$

$$q_{*}(s,a) = R_s^a + \gamma \sum\limits_{s' \in S}P_{ss'}^a\max_{a'}q_{*}(s',a')$$

5. MDP例項

    上面的公式有點多,需要一些時間慢慢消化,這裡給出一個UCL講義上實際的例子,首先看看具體我們如何利用給定策略來計算價值函式。

    例子是一個學生學習考試的MDP。裡面左下那個圓圈位置是起點,方框那個位置是終點。上面的動作有study, pub, facebook, quit, sleep,每個狀態動作對應的即時獎勵R已經標出來了。我們的目標是找到最優的動作價值函式或者狀態價值函式,進而找出最優的策略。

    為了方便,我們假設衰減因子$\gamma =1, \pi(a|s) = 0.5$。

    對於終點方框位置,由於其沒有下一個狀態,也沒有當前狀態的動作,因此其狀態價值函式為0。對於其餘四個狀態,我們依次定義其價值為$v_1,v_2,v_3,v_4$, 分別對應左上,左下,中下,右下位置的圓圈。我們基於$v_{\pi}(s) = \sum\limits_{a \in A} \pi(a|s)(R_s^a + \gamma \sum\limits_{s' \in S}P_{ss'}^av_{\pi}(s'))$計算所有的狀態價值函式。可以列出一個方程組。

    對於$v_1$位置,我們有:$v_1 = 0.5*(-1+v_1) +0.5*(0+v_2)$

    對於$v_2$位置,我們有:$v_2 = 0.5*(-1+v_1) +0.5*(-2+v_3)$

    對於$v_3$位置,我們有:$v_3 = 0.5*(0+0) +0.5*(-2+v_4)$

    對於$v_4$位置,我們有:$v_4 = 0.5*(10+0) +0.5*(1+0.2*v_2+0.4*v_3+0.4*v_4)$

    解出這個方程組可以得到$v_1=-2.3, v_2=-1.3, v_3=2.7, v_4=7.4$, 即每個狀態的價值函式如下圖:

    上面我們固定了策略$\pi(a|s)$,雖然求出了每個狀態的狀態價值函式,但是卻並不一定是最優價值函式。那麼如何求出最優價值函式呢?這裡由於狀態機簡單,求出最優的狀態價值函式$v_{*}(s)$或者動作價值函式$q_{*}(s,a)$比較容易。

    我們這次以動作價值函式$q_{*}(s,a)$來為例求解。首先終點方框處的好求。$$q_{*}(s_3, sleep) = 0, q_{*}(s_4, study) = 10$$

    接著我們就可利用$q_{*}(s,a) = R_s^a + \gamma \sum\limits_{s' \in S}P_{ss'}^a\max_{a'}q_{*}(s',a')$列方程組求出所有的$q_{*}(s,a)$。有了所有的$q_{*}(s,a)$,利用$v_{*}(s) = \max_{a}q_{*}(s,a) $就可以求出所有的$v_{*}(s)$。最終求出的所有$v_{*}(s)$和$q_{*}(s,a)$如下圖:

    從而我們的最優決策路徑是走6->6->8->10->結束。    

6. MDP小結

    MDP是強化學習入門的關鍵一步,如果這部分研究的比較清楚,後面的學習就會容易很多。因此值得多些時間在這裡。雖然MDP可以直接用方程組來直接求解簡單的問題,但是更復雜的問題卻沒有辦法求解,因此我們還需要尋找其他有效的求解強化學習的方法。

    下一篇討論用動態規劃的方法來求解強化學習的問題。

 

 (歡迎轉載,轉載請註明出處。歡迎溝通交流: liujianping-ok@163.com) 

相關文章