上一章我們了解了馬爾可夫決策過程的動態規劃方法,但是動態要求乙個完全已知的環境模型,這在現實中是很難做到的。另外,當狀態數量較大的時候,動態規劃法的效率也將是乙個問題。所以本章我們引用一種不需要完整的環境模型的方法概念——蒙特卡羅方法。
蒙特卡洛是乙個賭城的名字。又叫統計模擬方法,它使用隨機數(或偽隨機數)來解決計算的問題,是一類重要的數值計算方法。相對於確定性的演算法,蒙特卡洛方法是基於抽樣資料來計算結果。
策略評估迭代過程:
1. 探索 - 選擇乙個狀態(s, a)。
2. 模擬 - 使用當前策略π,進行一次模擬,從當前狀態(s, a)到結束,隨機產生一段情節(episode)。
3. 抽樣 - 獲得這段情節上的每個狀態(s, a)的回報g(s,a),記錄g(s,a)到集合returns(s,a)。
4. 估值 - q(s, a) = returns(s, a)的平均值。
(因為狀態(s, a)可能會被多次選擇,所以狀態(s, a)有一組回報值。)
策略優化 - 使用新的行動價值q(s,a)優化策略π(s)。
策略評估迭代步驟一般會針對所有的狀態-行動,或者乙個起始(s0,a0)下的所有狀態-行動。這也說明持續探索(continual exploration)是蒙特卡洛方法的主題。模擬過程 - 會模擬到結束。是前進式的,隨機選擇下乙個行動,一直前進到結束為止。因此可以看出蒙特卡洛方法需要大量的迭代,才能正確的找到最優策略。策略評估是計算行動價值(q(s,a))。
蒙特卡羅策略估計(monte carlo policy evalution)
首先考慮用蒙特卡羅方法來學習狀態值函式vπ(s)。估計vπ(s)的乙個明顯的方法是對於所有到達過該狀態的回報取平均值。這裡又分為first-visit mc methods和every-visit mc methods。這裡,我們只考慮first mc methods,即在乙個episode內,我們只記錄s的第一次訪問,並對它取平均回報。當我們經過無窮多的episode後,vπ(s)的估計值將收斂於其真實值。
動作值函式的mc估計(mote carlo estimation of action values)
在狀態轉移概率p(s'|a,s)已知的情況下,策略估計後有了新的值函式,我們就可以進行策略改進了,只需要看哪個動作能獲得最大的期望累積回報就可以。然而在沒有準確的狀態轉移概率的情況下這是不可行的。為此,我們需要估計動作值函式qπ(s,a)。qπ(s,a)的估計方法前面類似,即在狀態s下採用動作a,後續遵循策略π獲得的期望累積回報即為qπ(s,a),依然用平均回報來估計它。有了q值,就可以進行策略改進了。
持續探索(maintaining exploration)
我們通過一些樣本來估計q和v,並且在未來執行估值最大的動作。這裡就存在乙個問題,假設在某個確定狀態s0下,能執行a0, a1, a2這三個動作,如果智慧型體已經估計了兩個q函式值,如q(s0,a0), q(s0,a1),且q(s0,a0)>q(s0,a1),那麼它在未來將只會執行乙個確定的動作a0。這樣我們就無法更新q(s0,a1)的估值和獲得q(s0,a2)的估值了。這樣的後果是,我們無法保證q(s0,a0)就是s0下最大的q函式。maintaining exploration的思想很簡單,就是用soft policies來替換確定性策略,使所有的動作都有可能被執行。比如其中的一種方法是ε-greedy policy,即在所有的狀態下,用1-ε的概率來執行當前的最優動作a0,ε的概率來執行其他動作a1, a2。這樣我們就可以獲得所有動作的估計值,然後通過慢慢減少ε值,最終使演算法收斂,並得到最優策略。簡單起見,在下面mc控制中,我們使用exploring start,即僅在第一步令所有的a都有乙個非零的概率被選中。
蒙特卡羅控制(mote carlo control)
mc版本的策略迭代過程:
值函式qπ(s,a)的估計值需要在無窮多episode後才能收斂到其真實值。這樣的話策略迭代必然是低效的。我們看動態規則的值迭代演算法,每次都不用完整的策略估計,而僅僅使用值函式的近似值進行迭代,這裡也用到了類似的思想。每次策略的近似值,然後用這個近似值來更新得到乙個近似的策略,並最終收斂到最優策略。這也就是我們常說的廣義策略迭代思想。即:在每個episode後都重新估計下動作值函式(儘管不是真實值),然後根據近似的動作值函式,進行策略更新。
總結:
蒙特卡洛方法的適用條件:1.環境是可模擬的:在實際的應用中,模擬容易實現。相對的,了解環境的完整知識反而比較困難。由於環境可模擬,我們就可以抽樣。2.只適合情節性任務(episodic tasks)因為,需要抽樣完成的結果,只適合有限步驟的情節性任務。儘管蒙特卡羅方法和動態規劃方法存在諸多不同,但蒙特卡羅方法也借鑑了很多動態規劃中的思想。比如他們都是首先進行策略估計,計算特定策略π對應的vπ和qπ,然後進行策略改進,最終形成策略迭代。
強化學習 蒙特卡羅法
從本章起,我們開始解決更貼近實際的問題。前面提到我們接觸過的問題有乙個特點,即我們可以知道環境運轉的細節,具體說就是知道狀態轉移概率 p s s t,a t 對蛇棋來說,我們可以看到蛇棋的棋盤,也就可以了解到整個遊戲的全貌,這時我們相當於站在上帝視角,能夠看清一切情況。在很多實際問題中,我們無法得到...
強化學習 學習筆記
強化學習任務通常用馬爾可夫決策過程來描述 強化學習任務對應了四元組 強化學習的目標是在環境中不斷地嘗試而學得乙個 策略 policy 策略有兩種表示方法 確定性策略 表示為函式 隨機性策略 表示為概率 策略的優劣在於長期執行這一策略後得到的累積獎賞。強化學習任務中,學習的目的就是要找到能使長期累積獎...
強化學習筆記
1.q learning與sarsa區別 lambda 就是乙個衰變值,他可以讓你知道離獎勵越遠的步可能並不是讓你最快拿到獎勵的步,所以我們想象我們站在寶藏的位置,回頭看看我們走過的尋寶之路,離寶藏越近的腳印越看得清,遠處的腳印太渺小,我們都很難看清,那我們就索性記下離寶藏越近的腳印越重要,越需要被...