在介紹馬爾可夫決策過程以前,咱們先介紹下情節性任務和連續性任務以及馬爾可夫性。html
引用維基百科對馬爾可夫性的定義:web
馬爾可夫性:當一個隨機過程在給定如今狀態及全部過去狀態狀況下,其將來狀態的條件機率分佈僅依賴於當前狀態。函數
用數學形式表示以下:ui
A state \(S_t\) is Markov if and only if
\[P[S_{t+1}|S_t] = P[S_{t+1}|S_1, ..., S_t]\]google
馬爾可夫過程即爲具備馬爾可夫性的過程,即過程的條件機率僅僅與系統的當前狀態相關,而與它的過去歷史或將來狀態都是獨立、不相關的。spa
馬爾可夫獎賞過程(Markov Reward Process,MRP)是帶有獎賞值的馬爾可夫過程,其能夠用一個四元組表示 \(<S, P, R, \gamma>\)。orm
在 \(t\) 時刻的獎賞值 \(G_t\):
\[G_t = R_{t+1} + \gamma R_{t+2} + ... = \sum_{k=0}^{\infty}\gamma^{k}R_{t+k+1}\]htm
關於Return的計算爲何須要 \(\gamma\) 折扣係數。David Silver 給出了下面幾條的解釋:blog
- 數學表達的方便
- 避免陷入無限循環
- 遠期利益具備必定的不肯定性
- 在金融學上,當即的回報相對於延遲的回報可以得到更多的利益
- 符合人類更看重眼前利益的特色
狀態 \(s\) 的長期價值函數表示爲:
\[v(s) = E[G_t | S_t = s] \]ip
\[ \begin{align} v(s) &= E[G_t|S_t=s]\\ &= E[R_{t+1} + \gamma R_{t+2} + ... | S_t = s]\\ &= E[R_{t+1} + \gamma (R_{t+2} + \gamma R_{t+3} ... ) | S_t = s]\\ &= E[R_{t+1} + \gamma G_{t+1} | S_t = s]\\ &= E[R_{t+1} + \gamma v(s_{t+1}) | S_t = s] \end{align} \]
下圖爲MRP的 backup tree 示意圖:
注:backup tree 中的白色圓圈表明狀態,黑色圓點對應動做。
根據上圖能夠進一步獲得:
\[v(s) = R_s + \gamma \sum_{s' \in S}P_{ss'}v(s')\]
馬爾可夫決策過程(Markov Decision Process,MDP)是帶有決策的MRP,其能夠由一個五元組構成 \(<S, A, P, R, \gamma>\)。
咱們討論的MDP通常指有限(離散)馬爾可夫決策過程。
策略(Policy)是給定狀態下的動做機率分佈,即:
\[\pi(a|s) = P[A_t = a|S_t = a]\]
給定策略 \(\pi\) 下狀態 \(s\) 的狀態價值函數(State-Value Function)\(v_{\pi}(s)\):
\[v_{\pi}(s) = E_{\pi}[G_t|S_t = s]\]
狀態 \(s\) 的最優狀態價值函數(The Optimal State-Value Function)\(v_{*}(s)\):
\[v_{*}(s) = \max_{\pi}v_{\pi}(s)\]
給定策略 \(\pi\),狀態 \(s\),採起動做 \(a\) 的動做價值函數(Action-Value Function)\(q_{\pi}(s, a)\):
\[q_{\pi}(s, a) = E_{\pi}[G_t|S_t = s, A_t = a]\]
狀態 \(s\) 下采起動做 \(a\) 的最優動做價值函數(The Optimal Action-Value Function)\(q_{*}(s, a)\):
\[q_{*}(s, a) = \max_{\pi}q_{\pi}(s, a)\]
若是策略 \(\pi\) 優於策略 \(\pi^{'}\):
\[\pi \ge \pi^{'} \text{ if } v_{\pi}(s) \ge v_{\pi^{'}}(s), \forall{s}\]
最優策略 \(v_{*}\) 知足:
如何找到最優策略?
能夠經過最大化 \(q_{*}(s, a)\) 來找到最優策略:
\[ v_{*}(a|s) = \begin{cases} & 1 \text{ if } a=\arg\max_{a \in A}q_{*}(s,a)\\ & 0 \text{ otherwise } \end{cases} \]
對於MDP而言總存在一個肯定的最優策略,並且一旦咱們得到了\(q_{*}(s,a)\),咱們就能當即找到最優策略。
咱們先看下狀態價值函數 \(v^{\pi}\)。
狀態 \(s\) 對應的 backup tree 以下圖所示:
根據上圖可得:
\[v_{\pi}(s) = \sum_{a \in A}\pi(a|s)q_{\pi}(s, a) \qquad (1)\]
再來看動做價值函數 \(q_{\pi}(s, a)\)。
狀態 \(s\),動做 \(a\) 對應的 backup tree 以下圖所示:
所以可得:
\[q_{\pi}(s,a)=R_s^a + \gamma \sum_{s'\in S}P_{ss'}^a v_{\pi}(s') \qquad (2)\]
進一步細分 backup tree 再來看 \(v^{\pi}\) 與 \(q_{\pi}(s, a)\) 對應的表示形式。
細分狀態 \(s\) 對應的 backup tree 以下圖所示:
將式子(2)代入式子(1)能夠進一步獲得 \(v_{\pi}(s)\) 的貝爾曼指望方程:
\[v_{\pi}(s) = \sum_{a \in A} \pi(a | s) \Bigl( R_s^a + \gamma \sum_{s'\in S}P_{ss'}^a v_{\pi}(s') \Bigr) \qquad (3)\]
細分狀態 \(s\),動做 \(a\) 對應的 backup tree 以下圖所示:
將式子(1)代入式子(2)能夠獲得 \(q_{\pi}(s,a)\) 的貝爾曼指望方程:
\[q_{\pi}(s,a)=R_s^a + \gamma \sum_{s'\in S}P_{ss'}^a \Bigl(\sum_{a' \in A}\pi(a'|s')q_{\pi}(s', a') \Bigr) \qquad (4)\]
一樣咱們先看 \(v_{*}(s)\):
對應能夠寫出公式:
\[v_{*}(s) = \max_{a}q_{*}(s, a) \qquad (5)\]
再來看\(q_{*}(s, a)\):
對應公式爲:
\[q_{*}(s, a) = R_s^a + \gamma \sum_{s'\in S}P_{ss'}^a v_{*}(s') \qquad (6)\]
一樣的套路獲取 \(v_{*}(s)\) 對應的 backup tree 以及貝爾曼最優方程:
貝爾曼最優方程:
\[v_{*}(s) = \max_{a} \Bigl( R_s^a + \gamma \sum_{s'\in S}P_{ss'}^a v_{*}(s') \Bigr) \qquad (7)\]
\(q_{*}(s, a)\) 對應的 backup tree 以及貝爾曼最優方程:
對應的貝爾曼最優方程:
\[R_s^a + \gamma \sum_{s'\in S}P_{ss'}^a\max_{a}q_{*}(s, a) \qquad (8)\]
[1] 維基百科-馬爾可夫性
[2] Reinforcement Learning: An Introduction, Richard S. Sutton and Andrew G. Barto, 2018
[3] David Silver's Homepage