強化學習系列(五):蒙特卡羅方法(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,如 S 0 , A 0 , R 1 , . . . , S T 1 , A T 1 , R T , 狀態和動作序列間存在聯繫,不能單獨將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 ) + G t
(where G t = R t + 1 + γ R t + 2 + . . . + γ T 1 R T )
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 ) + G t
(where G t = R t + 1 + γ R t + 2 + . . . + γ T 1 R T )
Value is estimated by mean reward V ( s ) = S ( s ) / N ( s )
By law of large numbers, V ( s ) v π ( s ) as N ( s )


first-visit MC 只統計每個episode中第一次出現 state s 到terminal state 的reward之和 G t ,而every-visit MC則統計每個episode中每次出現state s 到terminal state 的reward之和 G t 。本章中主要討論的都是first-visit MC。因爲MC方法只有等一個episode完成時纔會計算出 G t ,然後更新 V ( s ) 。所以MC不是一種單步更新(step-by-step)的方法,而是一種episode更新( episode-by-episode )的方法。

2.2 incremental Mean

上一小節中,我們介紹了first-visit MC,但是在實際編程時我們會面臨計算速度和存儲量的問題,這裏我們需要一個小trick,那就是incremental mean。
首先考慮簡單的求平均問題:
這裏寫圖片描述
將推導出的迭代公式,運用到Monte Carlo Prediction中,得到:
這裏寫圖片描述

三、Monte Carlo Control

控制問題:給定一個策略 π ,求解最優策略 π

3.1 Monte Carlo Estimation of Action Values

在DP求解MDP中,環境模型已知,我們根據策略估計出的state-value v ( s ) ,往前看一步,根據Bellman optimality backup 圖:
這裏寫圖片描述
可知,要根據state-value v ( s ) 推出最優策略,需要確切的知道狀態轉移概率 P s s a , 這屬於環境信息。此時假設環境完全未知,那麼不能僅僅根據state-value v ( s ) 來獲得最優策略,必須精確的估計每一個action的values來決定如何選擇策略。因此 Monte Carlo的主要目標是估計最優action-value function q

這樣上述Monte Carlo Prediction的作用對象由state-value變爲action-value,即 q π ( s , a ) 。這意味着,我們將state和action作爲state-action pair看待,而不是2.1節中提到的僅觀測state。

但是如果 π 是一個確定性策略,即在state s下有確定的action a, 那麼其他action a a ,在state s下將不會被選擇,簡言之,我們可能永遠無法獲得這樣的state-action pair(s,a’)。這意味着該方法的探索率不足,爲了保證Monte Carlo有效作用與所有state-action pair,平衡Exploration 和explicit 的矛盾,這裏假設每個episode的初始state-action pair s 0 , a 0 ) 選擇任意state-action pair (s,a) 的概率都大於0。(exploring starts 假設)。

接下來我們先討論帶着這一假設的Monte Carlo Control 問題,再討論如何去掉這一假設。

3.2 Monte Carlo Control with Exploring Starts

此處用到第四章中提到的GPI思想,只不過將Policy evaluation 中的state-value 換成了action-value:
這裏寫圖片描述
這一過程可以描述爲從任意一個給定策略 π 0 推導出最優action-value function 和最優Policy的過程:
這裏寫圖片描述
其中E代表Policy evaluation,I 代表Policy improvement。Policy evaluation在2.1節中已經介紹,此不詳述,這裏重點說一下Policy improvement。我們此時擁有的是action-value function,也就是說我們不需要環境模型來構建greedy Policy。對action-value function q而言,greedy Policy:
這裏寫圖片描述
Policy improvement可以每次根據 q π k 選擇greedy Policy π k + 1 來完成。Policy improvement 原理在本問題中證明如下:

這裏寫圖片描述
在Policy evaluation中我們假設要進行無限次採樣,才能準確估計出 action-value function。但實際運用中,我們考慮前後兩次估計的差值小於一個誤差值,就可以近似準確估計 action-value function。接下來我們看帶着Exploring Starts假設的算法僞代碼:
這裏寫圖片描述

3.3 Monte Carlo Control without Exploring Starts

在解決實際問題中,Exploring Starts假設是不現實的,那麼我們如何去掉這一假設限制呢?首先我們明確該假設其實是爲了解決Exploration 問題,使得算法具有探索性。如果我們通過其他方式解決了這個問題,那麼就可以去掉這一假設啦!

這裏引用一下書中原話:
The only general way to ensure that all actions are selected infinitely often is for the agent to continue to select them.

通常採用兩種方法:on-policy 和 off-policy。兩者不同在於off-policy用於採樣的策略b (behavior policy) 和用於evlauate、improve的策略 π (target policy) 是兩個不同的策略。

本小節着重介紹on-policy方法,下一小節介紹off-policy方法。在on-policy中我們通常不會直接採用greedy Policy 作爲最優策略,爲了維持一定的探索性,我們需要讓我們的Policy 是soft的,也就是說 π ( a | s ) > 0   f o r   a l l   s S   a n d   a A ( s ) ,並且可以不斷逼近最優策略。第二章中我們提到的 ϵ -greedy policy就是一種滿足上述條件的策略。我們有 ϵ | A ( s ) | 的可能性會選擇其他nongreedy策略,有 1 ϵ + ϵ | A ( s ) | 的可能性會選擇greedy Policy。這表明對任意state 和 action 有 π ( a | s ) ϵ | A ( s ) | ,此時策略是 ϵ s o f t 的。

下面將證明這種策略選取方式可以逼近最優策略,假設 π ϵ -greedy policy,對任意state s運用Policy improvement理論:
這裏寫圖片描述
這裏寫圖片描述

採用 ϵ -greedy policy 的on-Policy算法僞代碼爲:
這裏寫圖片描述

3.4 off-policy Prediction via importance sampling

off-policy用於採樣的策略b (behavior policy) 和用於evlauate、improve的策略 π (target policy) 是兩個不同的策略。通常情況下target policy 是確定性策略,而behavior policy是隨機策略。本節假定兩者都是給定策略。

在off-policy中常採用importance sampling從一個分佈來估計另一個分佈的期望值。從state S t 開始,獲得滿足policy π 的採樣序列 A t , S t + 1 , A t + 1 , . . . , S T 的概率爲

這裏寫圖片描述

因此,兩個不同策略的採樣比(importance-sampling ratio)可以表示爲:
這裏寫圖片描述

這是一個與MDP過程中狀態轉移概率無關的量。當我們希望根據behavior policy b 的return G t 來估計 target policy π 的value function 時,直接採用平均值方法會得到 E [ G t | S t ] = v b ( S t ) ,獲得的是behavior policy b 的期望價值,當我們有了importance-sampling ratio時,可以通過兩種方式計算 target policy π 的value function :


ordinary importance sampling
這裏寫圖片描述

weighted importance sampling
這裏寫圖片描述


其中, J ( s ) 爲s出現的總次數。
這兩種計算方式的區別在於:

  • ordinary importance sampling是無偏估計,而weighted importance sampling是有偏估計。(當僅僅計算一次採樣時,weighted importance sampling的分子和分母約去只剩下 G t ,這爲behavior Policy 的return ,而不是target policy的return)
  • 但 ordinary importance sampling通常會在episode較少時產生較大方差。(證明詳細看書)通常weighted importance sampling運用更廣泛。

我們可以看出,無論用哪種方法計算,都涉及到計算importance-sampling ratio,而他與一個採樣trajectory 中的所涉及的所有狀態轉移概率有關,因此有很高的方差,客觀的說,MC算法不太適合處理off-policy問題。

3.5 Incremental Implementation(增程式運算)

ordinary importance sampling的迭代方法只需要在2.2節中給每個 G t 乘以 t J ( s ) ρ t : T ( t ) 1 | J ( s ) | 即可


Incremental Implementation for ordinary importance sampling

V ( s t ) V ( s t ) + α ( t J ( s ) ρ t : T ( t ) 1 G t | J ( s ) | V ( S t ) )


而weighted importance sampling較爲複雜,假設我們有一系列的returns G 1 , G 2 , . . , G n 1 都從同一個state開始,且每一個有相關的權重 W i ( W i = ρ t : T ( t ) 1 ) ,我們期望估計:
這裏寫圖片描述


Incremental Implementation for weighted importance sampling

V ( n + 1 ) = V ( n ) + W n C n [ G n V ( n ) ) ,   n 1

相關文章
相關標籤/搜索