增強學習(四) ----- 蒙特卡羅方法(Monte Carlo Methods)


1. 蒙特卡羅方法的基本思想

蒙特卡羅方法又叫統計模擬方法,它使用隨機數(或偽隨機數)來解決計算的問題,是一類重要的數值計算方法。該方法的名字來源於世界著名的賭城蒙特卡羅,而蒙特卡羅方法正是以概率為基礎的方法。

一個簡單的例子可以解釋蒙特卡羅方法,假設我們需要計算一個不規則圖形的面積,那么圖形的不規則程度和分析性計算(比如積分)的復雜程度是成正比的。而采用蒙特卡羅方法是怎么計算的呢?首先你把圖形放到一個已知面積的方框內,然后假想你有一些豆子,把豆子均勻地朝這個方框內撒,散好后數這個圖形之中有多少顆豆子,再根據圖形內外豆子的比例來計算面積。當你的豆子越小,撒的越多的時候,結果就越精確。

2. 增強學習中的蒙特卡羅方法

現在我們開始講解增強學習中的蒙特卡羅方法,與上篇的DP不同的是,這里不需要對環境的完整知識。蒙特卡羅方法僅僅需要經驗就可以求解最優策略,這些經驗可以在線獲得或者根據某種模擬機制獲得。

要注意的是,我們僅將蒙特卡羅方法定義在episode task上,所謂的episode task就是指不管采取哪種策略π,都會在有限時間內到達終止狀態並獲得回報的任務。比如玩棋類游戲,在有限步數以后總能達到輸贏或者平局的結果並獲得相應回報。

那么什么是經驗呢?經驗其實就是訓練樣本。比如在初始狀態s,遵循策略π,最終獲得了總回報R,這就是一個樣本。如果我們有許多這樣的樣本,就可以估計在狀態s下,遵循策略π的期望回報,也就是狀態值函數Vπ(s)了。蒙特卡羅方法就是依靠樣本的平均回報來解決增強學習問題的。

盡管蒙特卡羅方法和動態規划方法存在諸多不同,但是蒙特卡羅方法借鑒了很多動態規划中的思想。在動態規划中我們首先進行策略估計,計算特定策略π對應的Vπ和Qπ,然后進行策略改進,最終形成策略迭代。這些想法同樣在蒙特卡羅方法中應用。

3. 蒙特卡羅策略估計(Monte Carlo Policy evalution)

首先考慮用蒙特卡羅方法來學習狀態值函數Vπ(s)。如上所述,估計Vπ(s)的一個明顯的方法是對於所有到達過該狀態的回報取平均值。這里又分為first-visit MC methods和every-visit MC methods。這里,我們只考慮first MC methods,即在一個episode內,我們只記錄s的第一次訪問,並對它取平均回報。

現在我們假設有如下一些樣本,取折扣因子γ=1,即直接計算累積回報,則有

根據first MC methods,對出現過狀態s的episode的累積回報取均值,有Vπ(s)≈ (2 + 1 – 5 + 4)/4 = 0.5

    容易知道,當我們經過無窮多的episode后,Vπ(s)的估計值將收斂於其真實值。

4. 動作值函數的MC估計(Mote Carlo Estimation of Action Values)

在狀態轉移概率p(s'|a,s)已知的情況下,策略估計后有了新的值函數,我們就可以進行策略改進了,只需要看哪個動作能獲得最大的期望累積回報就可以。然而在沒有准確的狀態轉移概率的情況下這是不可行的。為此,我們需要估計動作值函數Qπ(s,a)。Qπ(s,a)的估計方法前面類似,即在狀態s下采用動作a,后續遵循策略π獲得的期望累積回報即為Qπ(s,a),依然用平均回報來估計它。有了Q值,就可以進行策略改進了

5. 持續探索(Maintaining Exploration)

下面我們來探討一下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都有一個非零的概率被選中。

6. 蒙特卡羅控制(Mote Carlo Control)

我們看下MC版本的策略迭代過程:

根據前面的說法,值函數Qπ(s,a)的估計值需要在無窮多episode后才能收斂到其真實值。這樣的話策略迭代必然是低效的。在上一篇DP中,我們了值迭代算法,即每次都不用完整的策略估計,而僅僅使用值函數的近似值進行迭代,這里也用到了類似的思想。每次策略的近似值,然后用這個近似值來更新得到一個近似的策略,並最終收斂到最優策略。這個思想稱為廣義策略迭代。

具體到MC control,就是在每個episode后都重新估計下動作值函數(盡管不是真實值),然后根據近似的動作值函數,進行策略更新。這是一個episode by episode的過程。

一個采用exploring starts的Monte Carlo control算法,如下圖所示,稱為Monte Carlo ES。而對於所有狀態都采用soft policy的版本,這里不再討論。

7. 小結

Monte Carlo方法的一個顯而易見的好處就是我們不需要環境模型了,可以從經驗中直接學到策略。它的另一個好處是,它對所有狀態s的估計都是獨立的,而不依賴與其他狀態的值函數。在很多時候,我們不需要對所有狀態值進行估計,這種情況下蒙特卡羅方法就十分適用。

不過,現在增強學習中,直接使用MC方法的情況比較少,而較多的采用TD算法族。但是如同DP一樣,MC方法也是增強學習的基礎之一,因此依然有學習的必要。

 

參考資料:

[1] R.Sutton et al. Reinforcement learning: An introduction, 1998

[2] Wikipedia,蒙特卡羅方法


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM