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

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

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

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

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

如今咱們開始講解加強學習中的蒙特卡羅方法,與上篇的DP不一樣的是,這裏不須要對環境的完整知識。蒙特卡羅方法僅僅須要經驗就能夠求解最優策略,這些經驗能夠在線得到或者根據某種模擬機制得到。學習

要注意的是,咱們僅將蒙特卡羅方法定義在episode task上,所謂的episode task就是指無論採起哪一種策略π,都會在有限時間內到達終止狀態並得到回報的任務。好比玩棋類遊戲,在有限步數之後總能達到輸贏或者平局的結果並得到相應回報。spa

那麼什麼是經驗呢?經驗其實就是訓練樣本。好比在初始狀態s,遵循策略π,最終得到了總回報R,這就是一個樣本。若是咱們有許多這樣的樣本,就能夠估計在狀態s下,遵循策略π的指望回報,也就是狀態值函數Vπ(s)了。蒙特卡羅方法就是依靠樣本的平均回報來解決加強學習問題的。blog

儘管蒙特卡羅方法和動態規劃方法存在諸多不一樣,可是蒙特卡羅方法借鑑了不少動態規劃中的思想。在動態規劃中咱們首先進行策略估計,計算特定策略π對應的Vπ和Qπ,而後進行策略改進,最終造成策略迭代。這些想法一樣在蒙特卡羅方法中應用。遊戲

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

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

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

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

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

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,蒙特卡羅方法

相關文章
相關標籤/搜索