強化學習(2)

第二節:馬爾科夫決策過程(Markov Decision Process)

1.引入馬爾科夫決策過程MDP
如前所述,強化學習是解決與決策相關問題的模型,這也是從我們的生活經驗中總結出來的。在現實生活中,如果我們做某件事獲得獎勵,那麼我們會更加傾向於做這件事。比如家裏的寵物狗早上把鞋子給我們叼過來,我們對它說good dog, 並獎勵它好吃的食物,那麼寵物狗會更加傾向於叼鞋。
從強化學習的基本原理能看出它與其他機器學習算法如監督學習和非監督學習的一些基本差別。在監督學習和非監督學習中,數據是靜態的、不需要與環境進行交互的,比如圖像識別,只要給出足夠的差異樣本,將數據輸入深度網絡中進行訓練即可。然而強化學習過程是動態的、不斷交互的過程,所需要的數據也是通過與環境不斷交互產生的。所以與監督學習相比,強化學習的對象更多,比如動作,環境,狀態轉移概率和回報函數等。強化學習更像是人的學習過程:人類通過與周圍環境進行交互,學會了走路,奔跑,勞動;人類與大自然,與宇宙的交互創造了現代文明。另外,深度學習如圖像識別和語音識別解決的事感知的問題,強化學習解決的是決策的問題。人工智能的終極目標是通過感知進行智能決策。無數的先賢大牛們通過不斷的創新探索,總結出一套可以解決大部分強化學習問題的框架——馬爾科夫決策過程,即MDP。MDP能用數學方法來描述和解決強化學習相關問題。
2.馬爾科夫性
要想了解馬爾科夫決策過程首先要明白的一個概念就是馬爾科夫性。所謂馬爾科夫性是指系統的下一個狀態St+1 僅與當前的狀態St有關,而與以前的狀態無關。
定義:當且僅當P[st+1 | st] = P[st+1| s1, …, st], 我們稱狀態St是馬爾科夫的,或者說狀態St具有馬爾科夫性。從定義中可以看出,當前狀態St其實蘊含了所有相關的歷史信息S1, S2, …, St, 一旦當前狀態已知,歷史信息將會被摒棄。
馬爾科夫性描述的是每個狀態的性質,但真正有用的是如何描述一個狀態序列。數學中用來描述隨機變量序列的學科叫隨機過程。所謂隨機過程就是指隨機變量序列。若隨機變量序列中的每個狀態都是馬爾科夫的,則稱此隨機過程爲馬爾科夫隨機過程。
3.馬爾科夫過程
馬爾科夫過程的定義:馬爾科夫過程是一個二元組(S, P), 且滿足:S是有限狀態集合,P是狀態轉移概率。狀態轉移概率矩陣爲:P =

在這裏插入圖片描述
在這裏插入圖片描述

Figure 2-1 馬爾科夫過程示例圖
如圖2-1所示爲一個學生的7種狀態{娛樂,課程1,課程2,課程3,考過,睡覺,論文},每種狀態之間的轉換概率如圖2-1所示:
則該名學生從課程1開始的狀態序列爲:
課程1—》課程2–》睡覺
課程1–》課程2–》課程3–》考過–》睡覺
上面的狀態序列稱爲馬爾科夫鏈。當給定狀態轉移概率時,從某個狀態出發存在多條馬爾科夫鏈。然而馬爾科夫過程不足以描述強化學習過程,因爲在強化學習中需要智能體與環境進行交互,並從環境中獲得獎勵,而馬爾科夫過程中不存在動作和獎勵。由此又引出馬爾科夫決策過程:將動作(策略)和回報考慮在內的馬爾科夫過程。

4.馬爾科夫決策過程
1)馬爾科夫決策要求:
1.能夠檢測到理想的狀態
2.可以多次嘗試
3.系統的下個狀態只與當前狀態信息有關,而與更早之前的狀態無關,在決策過程中還和當前採取的動作有關
2)馬爾科夫決策過程由元組(S, A, P, R, )描述,其中:
S 爲有限的狀態集(States)
A 爲有限的動作集(Actions)
P 爲狀態轉移概率(p(s2|s1, a)), 在狀態s1下執行動作a, 轉移到s2的概率記爲Psa
R 爲回報函數,Agent採取某個動作之後的即時獎勵
爲折扣係數,用來計算累積回報
3)決策過程
1.智能體處於初始狀態S0
2.智能體選擇一個動作a0
3.按概率轉移矩陣Psa轉移到下一個狀態S1
4.重複上述過程,直到達到最終狀態
跟馬爾科夫過程不同的是,馬爾科夫決策過程的狀態轉移概率時包含動作的,即 Pas= P[St+1 = s | St = s, At = a]

在這裏插入圖片描述
Figure2 - 2馬爾科夫決策過程示例圖
如上圖所示,學生有五個狀態,狀態集爲S = {S1, S2,S3, S4, S5}, 動作集爲A={玩, 退出,學習,發表,睡覺},回報用R表示。強化學習的目標是給定一個馬爾科夫決策過程,尋找最優策略。策略是指狀態到狀態的映射,策略通常是用表示,它是指給定狀態s時,動作集的分佈,(a|s) = p[At=a | St=s]。上述算式是用條件概率給出的。
當一個策略給定時,我們就可以計算累積回報了,其定義爲:
Gt = Rt+1 + Rt+2 + … =
當給定策略時,假設從狀態S1出發,學生的狀態序列可能爲:
S1—>S2—>S3—>S4—>S5
S1—>S4—>S3

此時在策略下 可以計算累積回報G1, 有多個可能值。(劃重點:這裏的說的策略是指從初始狀態到結束狀態的一組策略)。由於策略是隨機的,因此累積回報也是隨機的。爲了評價狀態S1的價值(狀態S1是好還是壞,多好多壞),可以用累積回報的期望定義狀態值函數。

Figure2-3狀態值函數示意圖
4)狀態值函數和狀態行爲值函數
價值函數用來衡量某一狀態或者狀態-動作對的優劣,累計獎勵的期望。
當智能體採用策略時,累積回報服從一個分佈,累積回報在s處的期望值定義爲狀態值函數:
在這裏插入圖片描述
圖2-3是圖2-2相對應的狀態值函數圖。圖中空心圓圈中的數值爲該狀態下的值函數。V(S1) = -2.3, V(S2) = -1.3, V(S3) = 2.7, V(S4) = 7.4, V(S5) = 0
相應的狀態行爲值函數爲:

在這裏插入圖片描述
5)貝爾曼(Bellman)方程
貝爾曼方程表示當前狀態的價值和下一步的價值以及當前的獎勵(Reward)有關.即價值函數分解爲兩部分:當前即時獎勵,下一步的價值。
v(S) =
舉個例子,上圖2-3中值爲7.4的回報計算:
該狀態下有兩個可能的動作,睡覺和發表論文。這裏默認兩個動作是等可能發生的。
且選擇睡覺之後沒有別的可能動作了。
根據上式:
1.選擇睡覺的回報 :v1 = 0.5 * (10 + 0) = 5, 0.5表示該狀態下選擇睡覺的概率,10表示選擇睡覺的立即獎勵,由於選擇了睡覺之後就沒有別的可能選擇了(如圖所示),所以未來回報爲零。
2.選擇發表論文的回報:v2 = 0.5 * (1 + 未來回報) = 2.4,未來回報=0.2 * (-1.3)+ 0.4 * 2.7 + 0.4 * 7.4 , 原因是選擇發表論文之後還有三個可能的動作,選擇這三個動作的概率分別爲0.2, 0.4, 0.4。這裏沒有加折扣係數。
3.V(s) = v1 + v2 = 7.4
計算狀態值函數的目的是爲了構建學習算法從數據中得到最優策略,每個策略對應着一個狀態值函數,最優策略自然對應着最優狀態值函數。最優狀態值函數爲在所有 策略中值最大的值函數,即v*(s) = max V(s)。最優狀態-行爲值函數q*(s, a) 爲在所有策略中最大的狀態-行爲值函數,即 q*(s, a) = max q(s, a)。 假如已知q*(s, a),最優策略就可以通過最大化q*(s, a) 來決定。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章