求解強化學習問題能夠理解爲如何最大化個體在與環境交互過程當中得到的累積獎勵。環境 的動力學特徵肯定了個體在交互時的狀態序列和即時獎勵,環境的狀態是構建環境動力學特徵 所須要的全部信息。當環境狀態是徹底可觀測時,個體能夠經過構建馬爾科夫決策過程來描述整個強化學習問題。有時候環境狀態並非徹底可觀測的,此時個體能夠結合自身對於環境的歷史 觀測數據來構建一個近似的徹底可觀測環境的描述。從這個角度來講,幾乎全部的強化學習問題 均可以被認爲或能夠被轉化爲馬爾科夫決策過程。正確理解馬爾科夫決策過程當中的一些概念和 關係對於正確理解強化學習問題很是重要。函數
在一個時序過程當中,若是 \(t + 1\) 時刻的狀態僅取決於 \(t\) 時刻的狀態 \(S_{t}\) 而與 \(t\) 時刻以前的任何狀態都無關時,則認爲 \(t\) 時刻的狀態 \(S_t\) 具備馬爾科夫性 (Markov property)。若過程當中的每一 個狀態都具備馬爾科夫性,則這個過程具有馬爾科夫性。具有了馬爾科夫性的隨機過程稱爲馬爾科夫過程 (Markov process),又稱馬爾科夫鏈 (Markov chain)。馬爾科夫過程當中的每個狀態 \(S_t\) 記錄了過程歷史上全部相關的信息,並且一旦 St 肯定了,那麼歷史狀態信息 S1 ...St−1 對於確 定 St+1 均再也不重要,無關緊要。學習
描述一個馬爾科夫過程的核心是狀態轉移機率矩陣:spa
公式 (2.1) 中的狀態轉移機率矩陣定義了從任意一個狀態 \(s\) 到其全部後繼狀態 \(s’\) 的狀態轉移機率:翻譯
其中,矩陣 \(P\) 中每一行的數據表示從某一個狀態到全部 n 個狀態的轉移機率值。每一行的 這些值加起來的和應該爲 1。例如第一行,\(P_{11}\).....\(P_{1n}\) 即從1號結點到 \(1\).......\(n\) 號結點的狀態轉移機率。其中,若是\(1\).......\(n\)存在一些結點不爲\(1\)號結點的next結點,即對應的轉移機率爲零設計
一般使用一個元組 \(⟨S,P⟩\) 來描述馬爾科夫過程,其中 \(S\) 是有限數量的狀態集,\(P\) 是狀態轉移機率矩陣ci
圖 2.1 描述了一個假想的學生學習一門課程的馬爾科夫過程。在這個隨機過程當中,學生須要 順利完成三節課而且經過最終的考試來完成這門課程的學習。當學生處在第一節課中時,會有 50% 的概率拿起手機瀏覽社交軟件信息,另有 50% 的概率完成該節課的學習進入第二節課。一 旦學生在第一節課中瀏覽手機社交軟件信息,則有 90% 的可能性繼續沉迷於瀏覽,而僅有 10% 的概率放下手機從新聽講第一節課。學生處在第二節課的時有 80% 的概率聽完第二節課順利進 入到第三節課的學習中,也有 20% 的概率因課程內容枯燥或難度較大而休息或者退出。學生在 學習第三節課內容後,有 60% 的概率經過考試繼而 100% 的進入休息狀態,也有 40% 的概率因 爲過於興奮而出去娛樂泡吧,隨後可能由於忘掉了很多學到的東西而分別以 20%,40% 和 50% 的 機率須要從新返回第1、2、三節課中學習。get
上圖中,咱們使用內有文字的空心圓圈來描述學生可能所處的某一個狀態。這些狀態有:第 一節課(C1)、第二節課(C2)、第三節課(C3)、泡吧中(Pub)、經過考試(Pass)、瀏覽手機 (FB)、以及休息退出(Sleep)共 7 個狀態,其中最後一個狀態是終止狀態,意味着學生一旦進 入該狀態則永久保持在該狀態,或者說該狀態的下一個狀態將 100% 仍是該狀態。鏈接狀態的箭頭表示狀態轉移過程,箭頭附近的數字代表着發生箭頭所示方向狀態轉移的機率。數學
從符合馬爾科夫過程給定的狀態轉移機率矩陣生成一個狀態序列的過程稱爲採樣(sample)。 採樣將獲得一系列的狀態轉換過程,本書咱們稱爲狀態序列 (episode)。當狀態序列的最後一個狀態是終止狀態時,該狀態序列稱爲完整的狀態序列 (complete episode)。本文中所指的狀態序列大多數指的都是完整的狀態序列。sample 對應着從 圖2.1 到 4個狀態序列 的過程。io
馬爾科夫過程只涉及到狀態之間的轉移機率,並未觸及強化學習問題中伴隨着狀態轉換的獎勵反饋。若是把獎勵考慮進馬爾科夫過程,則成爲馬爾科夫獎勵過程(Markov reward process, MRP)。它是由 \(⟨S,P,R,γ⟩\) 構成的一個元組,其中:function
\(S\) 是一個有限狀態集
\(P\) 是集合中狀態轉移機率矩陣:\(P_{ss'=P\left[ S_{t+1}=s'|S_t=s \right]}\)
R 是一個獎勵函數:$R_s=E\left[ R_{t+1}|S_t=s \right] $
γ 是一個衰減因子:$γ ∈ [0,1] $
圖 2.2 在圖 2.1 的基礎上在每個狀態旁增長了一個獎勵值,代表到達該狀態後(或離開該狀態時)學生能夠得到的獎勵,如此構成了一個學生馬爾科夫獎勵過程。
學生到達每個狀態能得到多少獎勵不是學生本身能決定的,而是由充當環境的授課老師或教務部門來肯定,從強化學習的角度來講,獎勵值由環境動力學肯定。
在該學生馬爾科夫獎勵 過程當中,授課老師的主要目的是但願學生可以儘早的經過考試,於是給了「考試經過」這個狀態 以正的較高的獎勵(+10),而對於過程當中的其它狀態多數給的是負獎勵。雖然設定狀態「泡吧 中」的獎勵爲 +1,但因爲狀態「泡吧中」隨後的三個可能狀態得到的獎勵都低於 −1,於是能夠認爲授課教師並不十分贊在完成「第三節課」後出去泡吧。從學生的角度來講,學生的目標是在學習一門課程的過程當中得到儘量多的累積獎勵,對於這個例子來講,也就是儘早的到達「考試 經過」這個狀態進而進入「睡覺休息」這個終止狀態,完成一個完整的狀態序列。在強化學習中, 咱們給這個累計獎勵一個新的名稱「收穫」。
收穫(return)是一個馬爾科夫獎勵過程當中從某一個狀態\(S_t\) 開始採樣直到終止狀態時全部獎勵的有衰減的之和。數學表達式以下:
收穫有時也被翻譯爲回報。從式 (2.3) 中能夠看出,收穫是對應於狀態序列中的某一時刻的狀態,並計算從該狀態開始直至結束還能得到的累積獎勵。在一個狀態序列中,不一樣時刻的狀態通常對應着不一樣的收穫。從該式中咱們還能夠看出,收穫並非後續狀態的獎勵的直接相加,而 是引入了一個取值範圍在 \([0,1]\) 間的衰減係數 γ。引入該係數使得後續某一狀態對當前狀態收穫的貢獻要小於其獎勵。這樣設計從數學上能夠避免在計算收穫時因陷入循環而沒法求解,從現實 考慮也反映了遠期獎勵對於當前狀態具備必定的不肯定性,須要折扣計算。當 γ 取 0 時,代表 某狀態下的收穫就是當前狀態得到的獎勵,不考慮後續狀態,這屬於「短視」行爲,當 γ 取 1 時, 代表將考慮全部的後續狀態,屬於有「長遠眼光」的行爲。求解實際問題時,模型構建者可根據 實際問題的特色來設定 γ 值。這個式子須要注意的是,它是從\(R_{t+1}\)開始,能夠理解爲,從狀態 \(t\) 出發後,環境會給它完成這個狀態相應的獎勵即\(R_{t+1}\)。
下文給出了學生馬爾科夫過程當中四個狀態序列的開始狀態「第一節課」的收穫值的計算,選 取 S1 =「第一節課」,γ = 0.5。
能夠認爲,收穫間接給狀態序列中的每個狀態設定了一個數據標籤,反映了某狀態的重要 程度。因爲收穫的計算是基於一個狀態序列的,從某狀態開始,根據狀態轉移機率矩陣的定義, 可能會採樣生成多個不一樣的狀態序列,而依據不一樣的狀態序列獲得的同一個狀態的收穫值通常不會相同。如何評價從不一樣狀態序列計算獲得的某個狀態的收穫呢?此外,一個狀態還可能存在 於一個狀態序列的多個位置,能夠參考學生馬爾科夫過程的第四個狀態序列中的狀態「第一節 課」,此時在一個狀態序列下同一個狀態可能會有不一樣的收穫,如何理解這些不一樣收穫的意義呢? 不難看出收穫對於描述一個狀態的重要性還存在許多不方便的地方,爲了準確描述一個狀態的 重要性,咱們引入狀態的「價值」這個概念。
價值(value) 是馬爾科夫獎勵過程當中狀態收穫的指望。ta 數學表達式爲:
從式 (2.4) 能夠看出,一個狀態的價值是該狀態的收穫的指望,也就是說從該狀態開始依據 狀態轉移機率矩陣採樣生成一系列的狀態序列,對每個狀態序列計算該狀態的收穫,而後對該 狀態的全部收穫計算平均值獲得一個平均收穫。當採樣生成的狀態序列越多,計算獲得的平均收穫就越接近該狀態的價值,於是價值能夠準確地反映某一狀態的重要程度。
若是存在一個函數,給定一個狀態能獲得該狀態對應的價值,那麼該函數就被稱爲價值函數 (value function)。價值函數創建了從狀態到價值的映射。
從狀態的價值的定義能夠看出,獲得每個狀態的價值,進而獲得狀態的價值函數對於求解強化學習問題是很是重要的。但經過計算收穫的平均值來求解狀態的價值不是一個可取的辦法, 由於一個馬爾科夫過程針對一個狀態可能能夠產生無窮多個不一樣的狀態序列。
咱們對價值函數中的收穫按照其定義進行展開:
最終獲得:
上式中,根據馬爾科夫獎勵過程的定義,\(S_{t+1}\)的指望就是其自身,由於每次離開同一個狀態獲得的獎勵都是一個固定的值。而下一時刻狀態價值的指望,能夠根據下一時刻狀態的機率分佈獲得。若是用 \(s′\) 表示 \(s\) 狀態下一時刻任一可能的狀態:
那麼上述方程能夠寫成:
上式稱爲馬爾科夫獎勵過程當中的貝爾曼方程(Bellman equation),它提示一個狀態的價值 由該狀態的獎勵以及後續狀態價值按機率分佈求和按必定的衰減比例聯合組成。 其中,\(R_{s}\)與(2.5)式中 \(R_{t+1}\)一致,而 \(\sum_{s’\epsilon S}^{}{P_{ss’}v\left( s’ \right)}\) 與 \(E\left[ v\left( S_{t+1} \right) \right]\) 一致,便是對指望公式的展開。
圖 2.3 根據獎勵值和衰減係數的設定給出了學生馬爾科夫獎勵過程當中各狀態的價值,並對狀 態「第三節課」的價值進行了驗證演算。讀者能夠根據上述方程對其它狀態的價值進行驗證。
上述 Bellman 方程能夠寫成以下矩陣的形式:
它表示:
理論上,該方程能夠直接求解:
計算這類問題的時間複雜度是 O(n3),其中 n 是狀態的數量。這意味着,對於學生馬爾科夫 獎勵過程這類狀態數比較少的小規模問題,直接求解是可行的,但若是問題涉及到的狀態數量增 多,這種解法就不現實了。本書的後續章節會陸續介紹其它行之有效的求解方法。
在強化學習問題中,若是個體知道了每個狀態的價值,就能夠經過比較後續狀態價值的大 小而獲得自身努力的方向是那些擁有較高價值的狀態,這樣一步步朝着擁有最高價值的狀態進 行轉換。可是從第一章的內容咱們知道,個體須要採起必定的行爲才能實現狀態的轉換,而狀態 轉換又與環境動力學有關。不少時候個體指望本身的行爲可以到達下一個價值較高的狀態,可是 它並不必定能順利實現。這個時候個體更須要考慮在某一個狀態下采起從全部可能的行爲方案 中選擇哪一個行爲更有價值。要解釋這個問題,須要引入馬爾科夫決策過程、行爲、策略等概念。
馬爾科夫獎勵過程並不能直接用來指導解決強化學習問題,由於它不涉及到個體行爲的選 擇,所以有必要引入馬爾科夫決策過程。馬爾科夫決策過程(Markov decision process, MDP)是 由 \(⟨S,A,P,R,γ⟩\) 構成的一個元組,其中:
\(S\) 是一個有限狀態集
\(A\) 是一個有限行爲集
\(P\) 是集合中基於行爲的狀態轉移機率矩陣:$P_{ss’}^{a}=P\left[ S_{t+1}=s’|S_t=s,A_t=a \right] $
R 是基於狀態和行爲的獎勵函數:$R_{s}^{a}=E\left[ R_{t+1}|S_t=s,A_t=a \right] $
\(γ\) 是一個衰減因子:$γ ∈ [0,1] $
圖 2.4 給出了學生馬爾科夫決策過程的狀態轉化圖。圖中依然用空心圓圈表示狀態,增長一 類黑色實心圓圈表示個體的行爲。根據馬爾科夫決策過程的定義,獎勵和狀態轉移機率均與行爲 直接相關,同一個狀態下采起不一樣的行爲獲得的獎勵是不同的。此圖還把 Pass 和 Sleep 狀態 合併成一個終止狀態;另外當個體在狀態「第三節課」後選擇」泡吧」這個動做時,將被環境按照動力學特徵分配到另外三個狀態。請注意,學生馬爾科夫決策過程示例雖然與以前的學生馬爾 科夫獎勵過程示例有許多相同的狀態,但二者仍是有很大的差異,建議讀者將這兩個示例徹底區 分開來理解。
馬爾科夫決策過程因爲引入了行爲,使得狀態轉移矩陣和獎勵函數與以前的馬爾科夫獎勵 過程有明顯的差異。在馬爾科夫決策過程當中,個體有根據自身對當前狀態的認識從行爲集中選擇 一個行爲的權利,而個體在選擇某一個行爲後其後續狀態則由環境的動力學決定。
個體在給定狀態下從行爲集中選擇一個行爲的依據則稱爲策略 (policy),用字母 \(π\) 表示。策略 \(π\) 是某一狀態下基於行爲集合的一個機率分佈:
在馬爾科夫決策過程當中,策略僅經過依靠當前狀態就能夠產生一個個體的行爲,能夠說策略僅與當前狀態相關,而與歷史狀態無關。對於不一樣的狀態,個體依據同一個策略也可能產生不一樣 的行爲;對於同一個狀態,個體依據相同的策略也可能產生不一樣的行爲。策略描述的是個體的行爲產生的機制,是不隨狀態變化而變化的,被認爲是靜態的。
隨機策略是一個很經常使用的策略,當個體使用隨機策略時,個體在某一狀態下選擇的行爲並不 肯定。藉助隨機策略,個體能夠在同一狀態下嘗試不一樣的行爲。
當給定一個馬爾科夫決策過程:\(M = ⟨S,A,P,R,γ⟩\) 和一個策略 \(π\),那麼狀態序列 \(S_1,S_2,...\) 是一個符合馬爾科夫過程 \(⟨S,P_π⟩\) 的採樣。相似的,聯合狀態和獎勵的序列 $S_1,R_2,S_2,R_3,... $是一個符合馬爾科夫獎勵過程 \(⟨S,P_π,R_π,γ⟩\) 的採樣,而且在這個獎勵過程當中知足下面兩個方程:
上述公式體現了馬爾科夫決策過程當中一個策略對應了一個馬爾科夫過程和一個馬爾科夫獎 勵過程。不難理解,同一個馬爾科夫決策過程,不一樣的策略會產生不一樣的馬爾科夫(獎勵)過程, 進而會有不一樣的狀態價值函數。所以在馬爾科夫決策過程當中,有必要擴展先前定義的價值函數。 [ 首先對於馬爾科夫決策過程,從一個狀態出發,而後選定某個行爲,然後採起該行爲後,環境會給你相應的獎勵,最後會到達某一狀態(狀態 —> 行爲 —> 狀態 是能夠多對多對多的)。譬如圖2.4中,我能夠選擇泡吧或學習行爲,當我選擇泡吧這個行爲後,有相應的獎勵,同時也會進入不一樣的狀態。對於第一個式子,便是對採起不一樣行爲並進入不一樣狀態的機率總和,所以等同於在計算馬爾科夫過程或獎勵的狀態轉移函數,這是由於在馬爾科夫過程或獎勵中,它們沒有行動的概念。對於第二個式子,便是採起不一樣行爲可得到不一樣獎勵的總和(指望)]
定義:價值函數 \(v_π(s)\) 是在馬爾科夫決策過程下基於策略 π 的狀態價值函數,表示從狀態 \(s\) 開始,遵循當前策略 \(π\) 時所得到的收穫的指望:
一樣,因爲引入了行爲,爲了描述同一狀態下采起不一樣行爲的價值,咱們定義一個基於策略 \(π\) 的行爲價值函數 \(q_π(s,a)\),表示在遵循策略 \(π\) 時,對當前狀態 \(s\) 執行某一具體行爲 \(a\) 所能的到 的收穫的指望:
行爲價值(函數)絕大多數都是與某一狀態相關的,因此準確的說應該是狀態行爲對價值 (函數)。爲了簡潔,統一使用行爲價值(函數)來表示狀態行爲對價值(函數),而狀態價值 (函數)或價值(函數)多用於表示單純基於狀態的價值(函數)。
定義了基於策略 \(π\) 的狀態價值函數和行爲價值函數後,依據貝爾曼方程,咱們能夠獲得如 下兩個貝爾曼指望方程:
因爲行爲是鏈接馬爾科夫決策過程當中狀態轉換的橋樑,一個行爲的價值與狀態的價值關係 緊密。具體表現爲一個狀態的價值能夠用該狀態下全部行爲價值來表達:
相似的,一個行爲的價值能夠用該行爲所能到達的後續狀態的價值來表達:
若是把上二式組合起來,能夠獲得下面的結果:
或:
圖 2.5 給出了一個給定策略下學生馬爾科夫決策過程的價值函數。每個狀態下都有且僅有2 個實質可發生的行爲,咱們的策略是兩種行爲以均等 (各 0.5) 的機率被選擇執行,同時衰減因 子 \(γ = 1\)。圖中狀態「第三節課」在該策略下的價值爲 7.4,能夠由公式 (2.17) 計算得出。
給定策略 \(π\) 下的 MDP 問題能夠經過其衍生的 MRP 和 P 來求解。不一樣的策略能夠獲得不 同的價值函數,這些價值函數之間的差異有什麼意義?是否存在一個基於某一策略的價值函數, 在該策略下每個狀態的價值都比其它策略下該狀態的價值高?若是存在如何找到這樣的價值 函數?這樣的價值函數對應的策略又是什麼策略?爲了回答這些問題,咱們須要引入最優策略、 最優價值函數等概念。
解決強化學習問題意味着要尋找一個最優的策略讓個體在與環境交互過程當中得到始終比其 它策略都要多的收穫,這個最優策略用 \(\pi ^*\) 表示。一旦找到這個最優策略 \(\pi ^*\),那麼就意味着該強 化學習問題獲得瞭解決。尋找最優策略是一件比較困難的事情,可是能夠經過比較兩個不一樣策略 的優劣來肯定一個較好的策略。
定義:最優狀態價值函數(optimal value function)是全部策略下產生的衆多狀態價值函數 中的最大者
定義:最優行爲價值函數(optimal action-value function)是全部策略下產生的衆多行爲價值函數中的最大者:
定義:策略 \(π\) 優於 \(π′(π ⩾ π′)\),若是對於有限狀態集裏的任意一個狀態 \(s\),不等式:\(v_π(s) ⩾ v_{π′}(s)\) 成立。
存在以下的結論:對於任何馬爾科夫決策過程,存在一個最優策略 \(π_∗\) 優於或至少不差於全部其它策略。一個馬爾科夫決策過程可能存在不止一個最優策略,但最優策略下的狀態價值函數均等同於最優狀態價值函數:\(v_{π_∗}(s) = v_∗(s)\);最優策略下的行爲價值函數均等同於最優行爲價值 函數:\(q_{π_∗}(s,a) = q_∗(s,a)\)。
最優策略能夠經過最大化最優行爲價值函數 \(q_∗(s,a)\) 來得到:
該式表示,在最優行爲價值函數已知時,在某一狀態 \(s\) 下,對於行爲集裏的每個行爲 \(a\) 將 對應一個最優行爲價值 \(q_∗(s,a)\),最優策略 \(π_∗(a|s)\) 將給予全部最優行爲價值中的最大值對應的行爲以 100% 的機率,而其它行爲被選擇的機率則爲 0,也就是說最優策略在面對每個狀態時將 老是選擇可以帶來最大最優行爲價值的行爲。這同時意味着,一旦獲得 \(q_∗(s,a)\),最優策略也就找到了。所以求解強化學習問題就轉變爲了求解最優行爲價值函數問題。
拿學生馬爾科夫決策過程來講,圖 2.6 用粗虛箭頭指出了最優策略,同時也對應了某個狀態 下的最優行爲價值。
在學生馬爾科夫決策過程例子中,各狀態以及相應行爲對應的最優價值能夠經過回溯法遞推計算獲得。其中,狀態 \(s\) 的最優價值能夠由下面的貝爾曼最優方程獲得:
公式 (2.22) 表示:一個狀態的最優價值是該狀態下全部行爲對應的最優行爲價值的最大值。 這不難理解,對於圖 2.6 學生示例中的狀態「第三節課」,能夠選擇的行爲有「學習」和「泡吧」 兩個,其對應的最優行爲價值分別爲 10 和 9.4,所以狀態「第三節課」的最優價值就是二者中最 大的 10。
因爲一個行爲的獎勵和後續狀態並不禁個體決定,而是由環境決定,所以在狀態 \(s\) 時選擇行爲 \(a\) 的最優行爲價值將不能使用最大化某一可能的後續狀態的價值來計算。它由下面的貝爾曼最優方程獲得:
公式 (2.23) 表示:一個行爲的最優價值由兩部分組成,一部分是執行該行爲後環境給予的肯定的即時獎勵,另外一部分則由全部後續可能狀態的最優狀態價值按發生機率求和乘以衰減系 數獲得(環境決定的)。
一樣在學生示例中,考慮學生在「第三節課」時選擇行爲「泡吧」的最優行爲價值時,先計入 學生採起該行爲後獲得的即時獎勵 +1,學生選擇了該行爲後,並不肯定下一個狀態是什麼,環 境根據必定的機率肯定學生的後續狀態是「第一節課」、「第二節課」仍是「第三節課」。此時要 計算「泡吧」的行爲價值勢必不能取這三個狀態的最大值,而只能取指望值了,也就是按照進入 各類可能狀態的機率來估計總的最優價值,具體表現爲 6∗0.2 + 8∗0.4 + 10∗0.4 = 8.4,考慮到 衰減係數 \(γ = 1\) 以及即時獎勵爲 +1,所以在第三節課後採起泡吧行爲的最優行爲價值 9.4。
能夠看出,某狀態的最優價值等同於該狀態下全部的行爲價值中最大者,某一行爲的最優行 爲價值能夠由該行爲可能進入的全部後續狀態的最優狀態價值來計算獲得。若是把兩者聯繫起 來,那麼一個狀態的最優價值就能夠經過其後續可能狀態的最優價值計算獲得:
相似的,最優行爲價值函數也能夠由後續的最優行爲價值函數來計算獲得:
貝爾曼最優方程不是線性方程,沒法直接求解,一般採用迭代法來求解,具體有價值迭代、 策略迭代、Q 學習、Sarsa 學習等多種迭代方法,後續幾章將陸續介紹。