1. 程式人生 > >強化學習系列(五):蒙特卡羅方法(Monte Carlo)

強化學習系列(五):蒙特卡羅方法(Monte Carlo)

一、前言

強化學習系列(四):動態規劃中,我們介紹了採用DP (動態規劃)方法求解environment model 已知的MDP(馬爾科夫決策過程),那麼當environment model資訊不全的時候,我們會採用什麼樣的方法求解呢?蒙特卡洛方法(Monte Carlo)、時間差分(Temporal Difference,TD)、n-step Bootstrapping 都可以用來求解無模型的強化學習問題,本章主要介紹蒙特卡洛方法(Monte Carlo)。

在解決實際問題中,我們通常不太容易獲得環境的準確模型,例如打牌的時候,不知道對手會出什麼牌,這樣各個state間的轉移概率就不太容易直接表示。相對而言,獲得取樣資料通常比較容易實現,比如打牌,可以打好多次牌,然後逐漸就可以估計對手的出牌風格。根據統計數學的思想,我們可以通過不斷取樣然後求平均的方式實現對環境模型的學習。這種近似方式我們稱為經驗方式。

Monte Carlo正是這樣一種用經驗來估計環境模型的方法,可以在環境模型未知的情況下,根據經驗(experience,從環境中獲取的一系列的state、action、reward取樣) 來進行學習。為了方便使用Monte Carlo,本章假設所需解決的強化學習問題都是episode的,即存在一個終止狀態(terminal state),使得每次對環境的取樣以有限步結束。

這裡將第四章中的GPI(general policy iteration) 思想用於Monte Carlo,將問題分為 prediction 和 control來進行討論。

二、Monte Carlo Prediction

2.1 Prediction 問題

預測問題:給定一個策略 π,求解 state-value function vπ(s)

回想一下,我們在第二章中提到的多臂老虎機問題,假設給定一個策略 π,對任意state,每次搖動拉桿都按照策略π選擇action。需要估計state-value function vπ(s)。老虎機每次搖動拉桿獲得的資料是S,A,R,僅包含一個state 和 一個 action。要估計某一特定state s 的value function 可以根據統計多次取樣中出現state s的數目N(s),然後求多次實驗獲得的reward的平均值來估計。求解過程如下:

Average Reward

To evaluate state s
when state s is visited in an episode
increment counter N(s)N(s)+1
increment total reward S(s)S(s)+R
Value is estimated by mean reward V(s)=S(s)/N(s)
By law of large numbers, V(s)vπ(s) as N(s)

而很多問題遠比老虎機問題複雜,因為每次取樣所獲得的取樣資料是一系列的state、action、reward,如 S0,A0,R1,...,ST1,AT1,RT, 狀態和動作序列間存在聯絡,不能單獨將state s所獲得的reward 單獨剝離出來求平均值,因此Monte Carlo考慮了根據state s 出現後的return(reward 之和)來進行策略估計。但一組取樣中 state s 可能多次出現,那麼計算哪一次出現 state s到terminal state 的return呢?這裡衍生出兩種Monte Carlo:first-visit MC 和 every-visit MC。兩個方法的求解過程分別如下:

First-Visit MC policy evaluation (Average Return)

To evaluate state s
The first time-step t that state s is visited in an episode,
increment counter N(s)N(s)+1
increment total return S(s)S(s)+Gt
(where Gt=Rt+1+γRt+2+...+γT1RT)
Value is estimated by mean reward V(s)=S(s)/N(s)
By law of large numbers, V(s)vπ(s) as N(s)

Every-Visit MC policy evaluation (Average Return)

To evaluate state s
Every time-step t that state s is visited in an episode,
increment counter N(s)N(s)+1
increment total return S(s)S(s)+Gt
(where Gt=Rt+1+γRt+2+...+γT1RT)
Value is estimated by mean reward