Bourne強化學習筆記1:用簡單例子說明Off-policy的思想與使用方法

本着ADEPT(Analogy / Diagram / Example / Plain / Technical Definition)的學習規律,本人給出直觀理解、數學方法、圖形表達、簡單例子和文字解釋,來介紹off-policy,而on-policy也將在本講解過程中獲得理解。( 在此假設大家已瞭解Markov Process Decision,動作概率,轉移概率,Monte Carlo Method, \varepsilon-greedy 策略。想了解的童鞋也可在本文最後Reference中獲得相關知識

一、直觀理解

古時候,優秀的皇帝都秉持着“水能載舟 亦能覆舟”的思想,希望能多瞭解民間百姓的生活。皇帝可以選擇通過微服出巡,親自下凡瞭解百姓生活(On-policy),雖然眼見爲實,但畢竟皇帝本人分身乏術,掌握情況不全;因此也可以派多個官員去了解情況,而皇帝本人則躺在酒池肉林裏收聽百官情報即可(Off-policy)。

(壞皇帝則派出“錦衣衛”_(´ཀ`」 ∠)_)

二、文字解釋

首先,我們搞清楚一個問題:什麼是行爲策略(Behavior Policy)和目標策略(Target Policy):行爲策略是用來與環境互動產生數據的策略,即在訓練過程中做決策;而目標策略在行爲策略產生的數據中不斷學習、優化,即學習訓練完畢後拿去應用的策略。上面的例子中百官(錦衣衛)就是行爲策略,去收集情況或情報,給皇帝(目標策略)做參考來學習,當皇帝收集到的情報越多,能做的決策就越優。

咦,爲什麼會有兩個策略呢?

因爲從人類的直觀上來看,爲了解決強化學習問題中的exploitation(利用) 和 exploration (探索),我們可以利用一個策略(行爲策略)來保持探索性,提供多樣化的數據,而不斷的優化另一個策略(目標策略)。

On-policy 的目標策略和行爲策略是同一個策略,其好處就是簡單粗暴,直接利用數據就可以優化其策略,但這樣的處理會導致策略其實是在學習一個局部最優,因爲On-policy的策略沒辦法很好的同時保持即探索又利用;而Off-policy將目標策略和行爲策略分開,可以在保持探索的同時,更能求到全局最優值。但其難點在於:如何在一個策略下產生的數據來優化另外一個策略?

三、數學方法

爲了能從行爲策略 b 產生的樣本回合(Episode)中評估(學習)策略 \pi ,我們要求當執行 b策略時, \pi 中的每個動作都有一定概率發生,也就是 \pi(a|s)>0 時,必有 b(a|s)>0(逆命題不一定成立)。這種要求稱爲“包含”(Coverage)。在求最優策略的過程中,目標策略 \pi 通常都是基於當前評估的價值函數 V 的貪婪策略(策略 \pi的函數 V 的學習數據來源於策略 b ,但並非直接利用 b 的 V 函數,後面會詳細解釋)。因此目標策略最終能收斂爲最優策略,而行爲策略 b 則保持隨機因而具有探索性。

幾乎所有的off-policy都利用到一種技巧“Important Sampling”,這種技巧可以解決:求解一個概率分佈(Distribution)的期望值(Expect)時,用來求解該期望值的樣本數據是由另一個概率分佈所產生。具體做法是:根據目標策略 \pi 和行爲策略 b 分別所產生的相同某段序列(在本文Episode中某一段稱爲Trajectory)的概率的比值來加權求和return(Return是MC法中的一個樣本序列(整個Episode)的總獎勵),這個比值稱爲importance-sampling ratio。(也就是把一段又一段的序列總價值根據importance-sampling ratio加權求和,得到某個state的價值期望)

\rho _{t:T-1} = \frac{\prod _{k=t}^{T-1}\pi(A_k|S_k)p(S_{k+1}|S_k,A_k)}{\prod _{k=t}^{T-1}b(A_k|S_k)p(S_{k+1}|S_k,A_k)}= \frac{\prod _{k=t}^{T-1}\pi(A_k|S_k)}{\prod _{k=t}^{T-1}b(A_k|S_k)}                                    (1)

【注意,上式只有當兩個策略產生的由t到T-1的序列完全一樣時,才能消掉轉移概率。(實際上排列順序不一致但出現的轉移情況一致也可以消掉轉移概率)】

式中 \pi(A_k|S_k) 爲策略 \pi 時的動作概率分佈, b(A_k|S_k)爲策略 b 時的動作概率分佈。

雖然一個trajectory的發生可能性與環境的動態(即轉移概率p)有關,但是通過比值可以消掉環境的動態因素。因此importance-sampling ratio只由策略 b 、策略 \pi 和 相應的序列所決定,與MDP無關。

因此,當我們評估(Estimate)在目標策略 \pi 下的獎勵期望(Expected Return)時,不能直接使用來自行爲策略 b 產生的樣本數據所計算得到的獎勵期望 E[Gt|St] ,因爲這樣將不能對樣本數據進行平均求和而得到目標策略的價值函數。

三、一個栗子

本例子基於Monte Carlo過程,環境的動態情況未知(既狀態轉移概率未知)。並採用first-visit方法,即指定計算某一個狀態(State)的價值時,只計算每個回合第一次出現該狀態(State)之後到結束的總獎勵(Return)。

有五個狀態:黃、紅、綠、藍、黑。其中黑狀態爲終止狀態(Terminal)。在第一個框中每個狀態下面爲即時獎勵(Reward)。在此爲了簡化例子不具體列出動作,用一個空心環代替動作集合的任一動作。當遇到黑色時就結束當前回合(Episode)。我們用 t 表示第一次遇到指定狀態的時間步,在本例子中指定計算紅色狀態的價值(Red State Value), T(t) 表示一個回合中的終點的時間步。

 

1. 採樣

基於行爲策略 b 與環境互動,經過採樣後,我們得到五個回合(省略部分爲動作-狀態序列)。

2.計算每個樣本回合的Return

在這裏取第三個回合(Episode 3)分析,假設在其省略序列部分沒有出現紅色,第一次遇到紅色在第60時間步(Time Step),則從此時開始計算後面的獎勵。第61步爲黃色,可得獎勵19,第62步爲黑色,可得獎勵0,並終止回合。經計算後該回合從第一個紅色狀態開始後得到的總獎勵G3(Return)爲19。

其他回合也是這樣處理算出每個回合的Return。(假設其他回合的省略部分隨機出現除了黑色以外的所有狀態)

3.計算行爲策略b的紅色狀態的價值期望

由Monte Carlo計算方法可知

v_b(S_t = Red) = E[G_t|S_t = Red]

=(G_1+G_2+G_3+G_4+G_5) /5=11.6

11.6爲在行爲策略 b 下時,紅色狀態的價值(即Return的期望值)。在實際應用中,根據大數定理,採樣回合(Episode)的數量一般需要成千上萬個,才能保證所計算的結果接近期望值。On-policy中就是應用這個價值來進行學習、改善策略的,也即基於貪婪思想選取最大值的動作,然後作爲新的On-policy的策略。

4. 計算目標策略 \pi的紅色狀態的價值期望

由於importance-sampling ratio 均可由公式(1)計算得到,所以本人未給出具體的動作及其在相應策略下的概率以簡化問題,因此在這裏假設 \rho_{1:T(1)-1} 、 \rho_{2:T(2)-1} 、 \rho_{60:T(60)-1} 、 \rho_{0:T(0)-1} 、 \rho_{51:T(51)-1} 分別爲0.91,0.92 , 0.93 , 0.94 ,0.95 。有以下運算:

v_t(S_t = Red) = E[\rho_{t:T-1}G_t|S_t = Red]

=(\rho_{1:T(1)-1}G_1+\rho_{2:T(2)-1}G_2+\rho_{60:T(60)-1}G_3+\rho_{0:T(0)-1}G_4+\rho_{51:T(51)-1}G_5) /5

=(0.91*20+092*17+0.93*19+0.94*2+0.95*0)/5 = 10.678

因此10.678爲我們從由行爲策略 b 產生的五個Episode中,所得到的目標策略 \pi 下的紅色狀態的價值(即目標策略下的紅色狀態的Returne期望值)。然後根據該價值來學習,也即基於貪婪思想選取最大值的動作,然後作爲新的目標策略 \pi 。

四、總結

最後引用知乎中@三笠 童鞋相關回答的第一句話:On-policy-與Off-policy的區別在於:更新價值所使用的方法是沿着既定的策略(on-policy)抑或是新策略(off-policy)。

Reference

  1. R. S. Sutton and A. G. Barto. Reinforcement learning: An introduction. IEEE Transactions on Neural Networks, 9(5):1054–1054, 2018.

 

聲明:本圖文未經作者允許謝絕轉載。

知乎:https://www.zhihu.com/question/57159315/answer/465865135

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章