此爲《強化學習》第五章。
上一節中的動態規劃方法需要知道整個environment的信息,但有的時候,我們只有經驗 (Experience) (比如一組採樣),而對environment沒有任何其他知識;或者我們有一個可以交互的黑盒,通過黑盒可以進行仿真得到experience,但具體黑盒內的概率模型也是不知道的(或者非常難以計算的)。這種情況下,動態規劃方法不再適用,蒙特卡洛方法 (Monte Carlo Method, MC) 成爲了新的解決方案。
假設我們已經得到了一批在策略
下的採樣,我們想以此估計每個狀態的值函數
。我們定義任一採樣中的任一時刻通過狀態
叫做對狀態
的一次訪問 (Visit) 。通常有兩種方法來估計
。首次訪問方法 (First-Visit MC Method) 以每個採樣下第一次訪問狀態
時的回報的平均作爲對
的估計,每次訪問方法 (Every-Visit MC Method) 以每個採樣下每次訪問狀態
時的回報的平均作爲對
的估計。即
注意到
,所以在遍歷時,需要從後向前遍歷求出回報
。First-Visit方法和Every-Visit方法非常類似,但在理論性質上略有不同。本章主要討論First-Visit方法,以下給出First-Visit蒙特卡洛估計方法的僞代碼。
蒙特卡洛方法聽起來非常簡單,但也已經可以用來解決一些問題了,比如21點 (Blackjack) 。
如果我們已知狀態之間跳轉的概率模型,那麼上述的對狀態值函數的估計就足夠了,因爲我們可以通過貪心算法,得到確定性的策略(即 )。但如果我們不知道狀態之間的概率模型,那麼我們就無法確定狀態 能跳轉到其他哪些狀態。此時,對行爲值函數進行估計是一種可行的方法。
對行爲值函數的估計和狀態值函數非常類似,它也是統計每次在狀態
選擇行爲
得到回報的平均。類似地,它也可以分成首次訪問方法和每次訪問方法,表達式如下: