1. 程式人生 > >《強化學習Sutton》讀書筆記(四)——蒙特卡洛方法(Monte Carlo Methods)

《強化學習Sutton》讀書筆記(四)——蒙特卡洛方法(Monte Carlo Methods)

此為《強化學習》第五章。

上一節中的動態規劃方法需要知道整個environment的資訊,但有的時候,我們只有經驗 (Experience) (比如一組取樣),而對environment沒有任何其他知識;或者我們有一個可以互動的黑盒,通過黑盒可以進行模擬得到experience,但具體黑盒內的概率模型也是不知道的(或者非常難以計算的)。這種情況下,動態規劃方法不再適用,蒙特卡洛方法 (Monte Carlo Method, MC) 成為了新的解決方案。

蒙特卡洛估計

假設我們已經得到了一批在策略

π 下的取樣,我們想以此估計每個狀態的值函式 v π ( s ) 。我們定義任一取樣中的任一時刻通過狀態
s 叫做對狀態 s 的一次訪問 (Visit) 。通常有兩種方法來估計
v π ( s )
首次訪問方法 (First-Visit MC Method) 以每個取樣下第一次訪問狀態 s 時的回報的平均作為對 v π ( s ) 的估計,每次訪問方法 (Every-Visit MC Method) 以每個取樣下每次訪問狀態 s 時的回報的平均作為對 v π ( s ) 的估計。即

v π ( s ) f i r s t v i s i t = e x p G e x p , t | G e x p , t | ( S e x p , t = s , S e x p , k s , k < t ) v π ( s ) e v e r y v i s i t = e x p G e x p , t | G e x p , t | ( S e x p , t = s )

注意到 G t = R t + 1 + G t + 1 ,所以在遍歷時,需要從後向前遍歷求出回報 G t 。First-Visit方法和Every-Visit方法非常類似,但在理論性質上略有不同。本章主要討論First-Visit方法,以下給出First-Visit蒙特卡洛估計方法的虛擬碼。

首次訪問方法虛擬碼

蒙特卡洛方法聽起來非常簡單,但也已經可以用來解決一些問題了,比如21點 (Blackjack)

蒙特卡洛方法對行為值函式的估計

如果我們已知狀態之間跳轉的概率模型,那麼上述的對狀態值函式的估計就足夠了,因為我們可以通過貪心演算法,得到確定性的策略(即 π ( s ) = a )。但如果我們不知道狀態之間的概率模型,那麼我們就無法確定狀態 s 能跳轉到其他哪些狀態。此時,對行為值函式進行估計是一種可行的方法。

對行為值函式的估計和狀態值函式非常類似,它也是統計每次在狀態 s 選擇行為 a 得到回報的平均。類似地,它也可以分成首次訪問方法和每次訪問方法,表示式如下: