【RL系列】On-Policy與Off-Policy


強化學習大致上可分為兩類,一類是Markov Decision Learning,另一類是與之相對的Model Free Learning

分為這兩類是站在問題描述的角度上考慮的。同樣在解決方案上存在着兩種方法對應着這兩類問題描述,即Dynamic Programming(DP)和Stochastic Method,其中DP方法可以分為Policy Iteration與Value Iteration,統計方法皆以Monte Carlo為基礎,延申后產生Temporal-Difference(TD)與TD($\lambda$)算法,並可再細分為on-policy的SARSA算法與off-policy的Q-learning。依據這個分類規則,可以發現所謂的on-policy與off-policy皆是出現在統計方法之中,且以Monte Carlo作為實現基礎的,但實際上DP方法使用的也大都是on-policy策略,這其中包括了epsilon-greedy,UCB和Softmax。可以從之前我們對這幾種動作選擇策略的分析上找出一些關於on-policy的共同點,將其列舉出來:

  • 都屬於軟策略(soft-policy),即沒有動作的選擇概率為0
  • 在學習過程中,使用前一次迭代更新的動作選擇策略作為本次迭代的動作選擇策略

可以發現on-policy中的動作選擇策略是隨迭代在試驗中不斷更新的,而off-policy與之不同之處便在於此。關於on-policy與off-policy的區別在Sutton書中有這么一段描述:

 The on-policy approach in the preceding section is actually a compromise—it learns action values not for the optimal policy, but for a near-optimal policy that still explores. A more straightforward approach is to use two policies, one that is learned about and that becomes the optimal policy, and one that is more exploratory and is used to generate behavior. 

前一句話表明on-policy算法是在保證跟隨最優策略的基礎上同時保持着對其它動作的探索性,對於on-policy算法來說如要保持探索性則必然會犧牲一定的最優選擇機會。后一句話表明,有一個更加直接的辦法就是在迭代過程中允許存在兩個policy,一個用於生成學習過程的動作,具有很強的探索性,另外一個則是由值函數產生的最優策略,這個方法就被稱作off-policy。

off-policy與重要性采樣(Importance Sampling)密不可分,雖然這其中的邏輯並不復雜,但初學時確實有些難理解,尤其是在Sutton書中突然出現Importance Sampling的概念,而且並沒有很多解釋。Importance Sampling主要的作用在於通過一個簡單的可預測的分布去估計一個服從另一個分布的隨機變量的均值。在實際應用off-policy時,迭代過程通常會有兩個策略,一個是Behavior policy,用於生成學習過程所需要選擇的動作,這一個簡單的,探索性非常強的關於動作選擇的分布,另一個是Target policy,這是我們最終希望得到的最優動作選擇分布。應用Importance Sampling之處在於通過Behavior policy去估計Target policy可能反饋回來的收益的均值,即用一個簡單分布去估計服從另一個分布的隨機變量的均值。由於Monte Carlo方法主要應用離散隨機變量問題,所以我們也以離散隨機變量為例解釋如何實現Importance Sampling。

假設一個隨機變量$ A_1 $服從離散分布$ P $,另一個隨機變量$ A_2 $服從離散分布$ Q $,其中$ P = \{p_1, p_2, ..., p_n \} $,$ Q = \{q_1, q_2, ..., q_n\} $。離散隨機變量$A_1$可以寫為$ A_2 = \{x_1, x_2, ..., x_n\} $,$A_2$中每個元素出現的概率都對應這離散分布$ P $,隨機變量$ A_2 $也同樣寫為$ A_2 = \{x_1, x_2,..., x_n\} $,但其元素出現的概率對應離散分布$ Q $(注意:Importance Sampling實現的條件之一,隨機變量服從的分布不同但其元素的集合是相同的)。依據這個基本假設,我們可以寫出期望$ E[A_1] $與期望$ E[A_2] $:

$$ E[A_1] = \sum_{i = 1}^{n} x_i p_i $$

$$ E[A_2] = \sum_{i = 1}^{n} x_i q_i $$

如使用統計方法去估計隨機變量$ A_1 $與隨機變量$ A_2 $的均值$ M[A_1] $與$ M[A_2] $,可以寫為(均試驗N次):

$$ M[A_1] = \frac{1}{N}(x_1 K_1 + x_2 K_2 + .... + x_n K_n) $$

$$ M[A_2] = \frac{1}{N}(x_1 M_1 + x_2 M_2 + .... + x_n M_n) $$

在上述式子中,$K_i$與$ M_i $分別表示$ x_i $在兩次試驗中出現的次數,所以一定存在$ \sum K_i = \sum M_i = N $。依據Monte Carlo方法的基本原理,當試驗次數N趨於無窮大時,統計均值一定是期望的無偏估計。所以實際運用中,可以將兩者等同看待。有了統計方法的最基本原理作為支撐,我們下面來看Importance Sampling究竟解決了一個什么問題。

如果現在只能夠做關於隨機變量$ A_2 $的試驗,但是又想要同時估計隨機變量$ A_1 $的均值,應當如何呢?其實很簡單,只需要將統計均值中的$ K_i $替換成$ M_i $就好了。當試驗次數$ N\rightarrow \infty $,可以有$ K_i \approx N p_i$,而$ M_i \approx N q_i $,所以可以將$ K_i $估計為$ M_i \frac{p_i}{q_i} $,所以隨機變量$ A_1 $的均值估計可以寫為:

$$ M[A_1] \approx \frac{1}{N}\sum_{i = 1}^{N} \left(x_i \frac{p_i}{q_i}\right) M_i $$

這便是普通重要性采樣(Ordinary Importance Sampling)的基本原理和表達式,其中系數$ \frac{p_i}{q_i} $被稱作Importance Ratio。這里需要注意一點的是,普通重要性采樣並不嚴格符合統計方法的基本原理,這主要是源於對$K_i$的近似處理,導致了$ \sum \frac{p_i}{q_i} M_i $並非嚴格上等於試驗次數N,這也導致了所謂的"Infinite Variance",也就是無論N多大(只要不是正無窮),普通重要性采樣(OIS)的估計值的方差始終不會趨於0。為了解決這個問題,只需要把試驗次數N替換為估計的試驗次數即可,估計的試驗次數就是$ \sum \frac{p_i}{q_i} M_i $,這個方法也被稱為權重重要性采樣(Weighted Importance Sampling)。權重重要性采樣的表達式可以寫為:

$$ M[A_1] = \frac{\sum \left(x_i \frac{p_i}{q_i}\right) M_i}{ \sum \frac{p_i}{q_i} M_i } $$

那么如何把重要性采樣應用到off-policy算法中呢?這中間還需要有一個構建分布的過程,首先要了解的是,off-policy中的兩個動作選擇策略分布,behavior和target,並不是Importance Sampling的應用對象。在Monte Carlo過程中,從一個狀態轉移到最終狀態獲得的收益$ R $所服從的分布才是Importance Sampling中所需要的分布,而這個分布是通過behavior policy或target policy計算出來的。舉個例子,在Monte Carlo過程中,一個episode的狀態轉移過程為:

$$ S_1 \ \Rightarrow\ (S_1, A_1) \ \Rightarrow \ (S_2, A_1) \ \Rightarrow \ (S_1, A_3) \ \Rightarrow \ S_T $$

從處於狀態$ S_1 $並選擇動作$ A_1 $開始,因為各個狀態下動作的選擇都是獨立的,最終到達狀態$ S_T $的概率可以寫為:

$$ P_r(S_1, A_1) = \pi_b(S_1, A_1)\pi_b(S_2, A_1)\pi_b(S_1, A_3) $$

我們知道,在off-policy中,執行episode中應用的動作選擇策略為behavior policy,將其稱為$ \pi_b $。計算出的$ P_r(S_1, A_1) $才是對應狀態$S_1$在執行動作$ A_1 $產生收益$R_1$的分布$P$,相應的由target policy通過計算得出的收益$R_2$的分布為$Q$,現在問題就轉變成了Importance Sampling可以解決的問題了。

已知隨機變量$ R_1 $服從分布$ P $,隨機變量$ R_2 $服從分布$ Q $,當前只對隨機變量$ R_1 $進行試驗,求解隨機變量$ R_2 $的統計均值。寫出權重重要性采樣的表達式(求和形式):

$$ M[R_2] = \frac{\sum \left(r_i \frac{p_i}{q_i}\right) M_i}{ \sum \frac{p_i}{q_i} M_t } $$

在這個式子中,$r_i$表示在第i個episode中所獲得的Return,也就是收益,$ p_i $與$ q_i $分別表示在第i個episode由behavior policy和target policy產生收益$r_i$的概率。對於在狀態$S_1$下執行動作$ A_1 $所產生的Importance Ratio可以進一步由動作選擇策略來計算。假設第i個episode以狀態$S_1$執行動作$A_1$為起始,其的所有狀態動作選擇過程為:

$$ S_1 \ \Rightarrow\ (S_1, A_1) \ \Rightarrow \ (S_2, A_2) \ \Rightarrow ....\Rightarrow\ (S_{T-1}, A_{T-1}) \ \Rightarrow \ S_T $$

則Importance Ratio可以寫為:

$$ \frac{p_i}{q_i} = \frac{\pi_b(S_1, A_1) \pi_b(S_2, A_2)....\pi_b(S_{T - 1}, A_{T-1})}{\pi_t(S_1, A_1) \pi_t(S_2, A_2)....\pi_t(S_{T - 1}, A_{T-1})} = \prod_{i = 1}^{T-1} \frac{\pi_b(S_i, A_i)}{\pi_t(S_i, A_i)}$$

依據我們之前所提到的Monte Carlo最最重要的性質“每一個狀態的估計都是獨立的,不依賴於其它狀態的! ”(可以參考博文:從蒙特卡羅方法正式引入強化學習),在第i個episode中,狀態$S_2$執行動作$A_2$的估計中的Importance Ratio可以寫為:

$$ \mathrm{For} \ (S_2, A_2), \  \frac{p_i}{q_i} = \prod_{i = 2}^{T-1} \frac{\pi_b(S_i, A_i)}{\pi_t(S_i, A_i)}$$

依此類推,對於狀態$S_{T-1}$執行動作$A_{T-1}$,Importance Ratio可以寫為:$ \frac{\pi_b(S_{T-1}, A_{T-1})}{\pi_t(S_{T-1}, A_{T-1})} $,這也就是為什么在Off-policy MC prediction算法中,在一個episode中,更新估計所有中間狀態的Importance Ratio是從$ t = T - 1 $開始的原因所在了。讓我們把權重重要性采樣的求和形式寫為迭代更新形式,以求在實現過程中更加直觀。

讓我們設權重重要性采樣求和形式中的分子為$ R_s(S, A) $,分母為$ C_s(S, A) $,前一個表示Return之和,后一個表示估計試驗次數之和,用$ W $表示Importance Ratio。

假設當前為第i個episode,返回的收益為R_i,從$ t = T - 1 $開始更新(W的初值為1):

$$ \begin{align} & W = W \frac{\pi_b(S_{t}, A_{t})}{\pi_{tar}(S_{t}, A_{t})} \\ & C_s(S_t, A_t) = C_s(S_t, A_t) + W\\ & R_s(S_t, A_t) = R_s(S_t, A_t) + WR_i  \end{align} $$

如果我們把上述的更新形式寫為Incremental形式,Off-policy MC prediction算法就算是完成了:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM