一、前言
在第一章強化學習簡介中,我們提到強化學習過程可以看做一系列的state、reward、action的組合。本章我們將要介紹馬爾科夫決策過程(Markov Decision Processes)用於后續的強化學習研究中。
二、馬爾科夫過程(Markov Processes)
2.1 馬爾科夫性
首先,我們需要了解什么是馬爾科夫性:

當我們處於狀態StSt時,下一時刻的狀態St+1St+1可以由當前狀態決定,而不需要考慮歷史狀態。
未來獨立於過去,僅僅於現在有關
將從狀態s 轉移到狀態 s’ 的轉移概率簡寫為Pss′:

那么所有狀態間的轉移關系可以由狀態轉移矩陣表示:

2.2 馬爾科夫過程
馬爾科夫過程也稱為馬爾科夫鏈,由一些具有馬爾科夫性的量隨機組成的記憶鏈,這些量之間有轉移概率。如具有馬爾科夫性的state可以組成馬爾科夫鏈 S1,S2,...其定義如下:

2.3 小例子:student Markov Chain
以學生上課為例子,假設一學期只有三節課,那么在class 1的狀態下有0.5的概率前往class 2,另外0.5的概率會去看Facebook。看Facebook會停不下來,所以有0.1的概率回到class1,而有0.9的概率繼續看。假如我們從 class1到了class2,上課覺得無聊有0.2的幾率會睡覺,另外0.8的概率咬牙堅持到class3。到了class 3 后,想到上課快上完了,去泡個吧(0.4 go to pub),然后喝斷片了,忘了上課內容,會隨機回到class1、class2、class3。從class 3有0.6的概率會通過考試,考試完了就肯定回去睡覺啦,在這里sleep是一個最終狀態。

三、 馬爾科夫決策過程
介紹了馬爾科夫鏈后,自然有個疑問什么是馬爾科夫決策過程(MDP)?
首先,我們介紹Markov Reward Process(MRP),再從MRP演變到MDP。
3.1 Markov Reward Process
最開始說到馬爾科夫鏈是由一些具有馬爾科夫性的量隨機組成的記憶鏈,那么MRP就是關於價值的馬爾科夫鏈。 
和上面的關於state的馬爾科夫鏈相比,增加了reward RR 和discount γγ(紅色標出),我們已經知道reward的定義,那么為什么會有discount γ(折扣因子)呢?
3.1.1 Return
在強化學習中,我們關注的不僅僅是當前的reward,因為狀態的轉移可能對未來的收益都有影響,所以我們關注的是總體reward之和:

這個式子好像不是單純的reward之和啊!果然,這是一個有心機的reward之和,他包含了我們好奇的 discountγγ。為什么要有這個呢?
為了數學上使得reward之和收斂,此處選擇了一個折扣因子 0=<γ<=1 .
可能我們的模型(轉移概率)不夠完備,選擇γγ 可以減小未來reward對return的影響
另外,當γ=1時,表明未來以及現在的reward具有相同的權重,可以說此時的agent是一個 far-sighted
當γ=0時,表明完全不考慮未來的reward,只考慮當下,可以說此時的agent是一個 myopic
3.1.2 value Function
通常return依賴於狀態之間的轉移順序,那么我們如何描述某一個特定狀態 s 下能夠獲得的reward之和呢,還是看一下之前的小例子,此處我們加上了單步reward。

假如我們此時處在class1 的狀態,那么我們可能有如下幾個狀態鏈

假設此處的discountγ=1/2,根據公式計算他們的return 分別如下

那么我們自然想到,可以通過求這些return的平均來計算出class1的價值。
這也是價值函數的定義:

其中,E表示期望。
將value function 帶入到Student MRP中可以得到State-Value Function for Student MRP:

可以看到用value function取代了state。

Bellman公式在強化學習中常用Backup圖表示,如下:

當我們從當前狀態 s 轉移到下一時刻狀態時,對下一時刻每一個狀態s’ 存在一個從狀態s 到 s’的狀態轉移概率 Pss′,那么當前狀態的value function 可以表示為當前狀態的reward 加上,帶discount的下一時刻狀態s與狀態轉移概率 Pss′乘積的累加和。
附上γ=1的小例子: 
觀察紅色位置,也就是s=class3s=class3時,當前狀態的value functionv(s)=4.3 ,reward Rs=−2,下一時刻狀態有兩個Rs=−2,下一時刻狀態有兩個s’_1 = Pass(概率0.6)和(概率0.6)和s’_2=Pub(概率0.4),(概率0.4),v(s’_1 )=10 v(s’_2)=0.8$,計算公式見圖右上角。
當然,Bellman 等式可以用矩陣形式表示為:
v=R+γPv

那么很自然我們就會想到能不能通過矩陣求解的形式來求解,

但是我們不能,原因如下:
這個問題的計算復雜度為O(n3)O(n3),我們只能對維度較小 的MRP直接求解
另外有很多迭代的方式可以求解:
Dynamic programming(動態規划)
Monte-Carlo evaluation(蒙特卡洛)
Temporal-Difference learning(時間查分)
3.2 Markov Decision Process(MDPs)
說完了MRPs,那么他和MDPs有什么關系呢,簡單來說,多了一個采取動作的過程,這個動作就是決策(decision),定義如下: 
student MDP如下:

和student MRP 比較,增加了動作量。
3.2.1 Policy
增加了動作后,我們需要考慮當前狀態下選擇動作的概率,也就是策略。策略表示在狀態s下采取動作a的概率:



3.2.2 value function
value function可以分為狀態價值函數v(s)和動作價值函數q(s,a):

q(s,a)q(s,a)滿足Bellman等式:

3.2.3 Bellman Expectation Equation
附上幾張Backup圖,便於理解BellmanBellman Expectation Equation:
-
從state到action:


從action到state:

-
采取一個動作,首先會獲得一個reward,然后從狀態s轉移到狀態s’,結合MRP中第一個 backup圖,可得。
-
從state 到state
結合上面兩個backup圖,從一個state經過一個action到另一個state價值函數間的關系可以表示為:

從action到action
結合上面兩個backup圖同時可以獲得,從一個action到另一個action的價值函數關系:

則對應的例子圖為

觀察紅色部分,當s=Passs時, 有兩個action可供選擇,分別為study和pub,假設兩者概率相等,即π(s,a1)=π(s,a2)=0.5由Backup圖(state到state)得右上角紅色等式。
3.2.4 最優價值函數
講到這里,你可能已經開始想,我關心的是我怎么做才能取得最好的結果,而不是這些狀態函數的自身的迭代關系。那么,你需要找到最優值函數。
3.2.5 最優策略
當我們找到最優值函數是否意味着我們找到了最優策略呢?答案是肯定的。當一個策略比其他策略好,那么其值函數大於別的策略的值函數。

可以依據這一定理選擇最優策略:

如圖:

3.2.6 Bellman 最優公式
列出幾個BackUP圖方便理解Bellman最優公式:
從state到action 

和普通Bellman公式不同的是,Bellman最優公式表示的是最優值函數之間的關系,當我們處於state s的時候,下一步要選擇一個action,但是現在有很多action,每個action a 在狀態 s 下都有對應着一個最優動作值函數 q∗(s,a)。那么顯然選擇最大的那個 q∗(s,a)就是當前的最優狀態值函數。
從action到state

當我們選擇了一個動作后,自然產生一個reward,然后我們會有一定幾率轉移到狀態s’,注意,這里沒有一個最大化的過程。
從state到state:

結合上面兩個Backup圖可得
從action到action:

結合上面兩個Backup 圖可得
那么有了Bellman等式,我們基於student MDP 例子來了解一下具體計算過程吧!

- 由於Bellman最優方程是非線性的,不能根據矩陣直接求解,求解Bellman Optimality Equation 的方法:
- Value Iteration
- Policy Iteration
- Q-learning
- Sarsa
