在強化學習系列(四):動態規劃中,我們介紹了採用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來進行討論。
預測問題:給定一個策略 ,求解 state-value function
回想一下,我們在第二章中提到的多臂老虎機問題,假設給定一個策略 ,對任意state,每次搖動拉桿都按照策略 選擇action。需要估計state-value function 。老虎機每次搖動拉桿獲得的數據是 ,僅包含一個state 和 一個 action。要估計某一特定state s 的value function 可以根據統計多次採樣中出現state s的數目 ,然後求多次實驗獲得的reward的平均值來估計。求解過程如下:
To evaluate state s
when state s is visited in an episode
increment counter
increment total reward
Value is estimated by mean reward
By law of large numbers,
as
而很多問題遠比老虎機問題複雜,因爲每次採樣所獲得的採樣數據是一系列的state、action、reward,如 , 狀態和動作序列間存在聯繫,不能單獨將state s所獲得的reward 單獨剝離出來求平均值,因此Monte Carlo考慮了根據state s 出現後的return(reward 之和)來進行策略估計。但一組採樣中 state s 可能多次出現,那麼計算哪一次出現 state s到terminal state 的return呢?這裏衍生出兩種Monte Carlo:first-visit MC 和 every-visit MC。兩個方法的求解過程分別如下:
To evaluate state s
The first time-step
that state s is visited in an episode,
increment counter
increment total return
(where
)
Value is estimated by mean reward
By law of large numbers,
as
To evaluate state s
Every time-step
that state s is visited in an episode,
increment counter
increment total return
(where
)
Value is estimated by mean reward
By law of large numbers,
as
first-visit MC 只統計每個episode中第一次出現 state s 到terminal state 的reward之和 ,而every-visit MC則統計每個episode中每次出現state s 到terminal state 的reward之和 。本章中主要討論的都是first-visit MC。因爲MC方法只有等一個episode完成時纔會計算出 ,然後更新 。所以MC不是一種單步更新(step-by-step)的方法,而是一種episode更新( episode-by-episode )的方法。
上一小節中,我們介紹了first-visit MC,但是在實際編程時我們會面臨計算速度和存儲量的問題,這裏我們需要一個小trick,那就是incremental mean。
首先考慮簡單的求平均問題:
將推導出的迭代公式,運用到Monte Carlo Prediction中,得到:
控制問題:給定一個策略 ,求解最優策略
在DP求解MDP中,環境模型已知,我們根據策略估計出的state-value
,往前看一步,根據Bellman optimality backup 圖:
可知,要根據state-value
推出最優策略,需要確切的知道狀態轉移概率
, 這屬於環境信息。此時假設環境完全未知,那麼不能僅僅根據state-value
來獲得最優策略,必須精確的估計每一個action的values來決定如何選擇策略。因此 Monte Carlo的主要目標是估計最優action-value function
。
這樣上述Monte Carlo Prediction的作用對象由state-value變爲action-value,即 。這意味着,我們將state和action作爲state-action pair看待,而不是2.1節中提到的僅觀測state。
但是如果 是一個確定性策略,即在state s下有確定的action a, 那麼其他action ,在state s下將不會被選擇,簡言之,我們可能永遠無法獲得這樣的state-action pair(s,a’)。這意味着該方法的探索率不足,爲了保證Monte Carlo有效作用與所有state-action pair,平衡Exploration 和explicit 的矛盾,這裏假設每個episode的初始state-action pair 選擇任意state-action pair (s,a) 的概率都大於0。(exploring starts 假設)。
接下來我們先討論帶着這一假設的Monte Carlo Control 問題,再討論如何去掉這一假設。
此處用到第四章中提到的GPI思想,只不過將Policy evaluation 中的state-value 換成了action-value:
這一過程可以描述爲從任意一個給定策略
推導出最優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可以每次根據
選擇greedy Policy
來完成。Policy improvement 原理在本問題中證明如下:
在Policy evaluation中我們假設要進行無限次採樣,才能準確估計出 action-value function。但實際運用中,我們考慮前後兩次估計的差值小於一個誤差值,就可以近似準確估計 action-value function。接下來我們看帶着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的,也就是說 ,並且可以不斷逼近最優策略。第二章中我們提到的 -greedy policy就是一種滿足上述條件的策略。我們有 的可能性會選擇其他nongreedy策略,有 的可能性會選擇greedy Policy。這表明對任意state 和 action 有 ,此時策略是 的。
下面將證明這種策略選取方式可以逼近最優策略,假設
是
-greedy policy,對任意state s運用Policy improvement理論:
採用
-greedy policy 的on-Policy算法僞代碼爲:
off-policy用於採樣的策略b (behavior policy) 和用於evlauate、improve的策略 (target policy) 是兩個不同的策略。通常情況下target policy 是確定性策略,而behavior policy是隨機策略。本節假定兩者都是給定策略。
在off-policy中常採用importance sampling從一個分佈來估計另一個分佈的期望值。從state 開始,獲得滿足policy 的採樣序列 的概率爲
因此,兩個不同策略的採樣比(importance-sampling ratio)可以表示爲:
這是一個與MDP過程中狀態轉移概率無關的量。當我們希望根據behavior policy b 的return 來估計 target policy 的value function 時,直接採用平均值方法會得到 ,獲得的是behavior policy b 的期望價值,當我們有了importance-sampling ratio時,可以通過兩種方式計算 target policy 的value function :
ordinary importance sampling
weighted importance sampling
其中,
爲s出現的總次數。
這兩種計算方式的區別在於:
我們可以看出,無論用哪種方法計算,都涉及到計算importance-sampling ratio,而他與一個採樣trajectory 中的所涉及的所有狀態轉移概率有關,因此有很高的方差,客觀的說,MC算法不太適合處理off-policy問題。
ordinary importance sampling的迭代方法只需要在2.2節中給每個 乘以 即可
Incremental Implementation for ordinary importance sampling
而weighted importance sampling較爲複雜,假設我們有一系列的returns
都從同一個state開始,且每一個有相關的權重
,我們期望估計:
Incremental Implementation for weighted importance sampling