關於“強化學習 策略梯度方法 方差大 的原因與解決方法”問題的思考

目錄

1 閱前需知

2 爲什麼方差大?

3 如何解決方差大問題?

3.1 Add a baseline

3.2 TD 代替 MC (即Actor-Critic方法)


1 閱前需知

策略梯度方法(Policy-Based)方法直接學習參數化的策略來進行動作的選擇。本文所用符號的習慣與下書一致

                                                 

此書中將所有符合以下條件的均稱爲Policy-Based方法,不論這種方法是否學習值函數:

①直接學習參數化的策略

②梯度上升法更新參數  

考慮到這麼多方法統稱爲Policy-Based方法,本文在此特意說明,本文所指的方差大問題,是就最開始的Policy-Based方法而言的,即REINFORCE方法,僞代碼如下圖(相信學過的人一定對這圖很熟悉,就不多說了)

                         

                                                               圖1 REINFORCE僞代碼

2 爲什麼方差大?

爲了方便說明,本文假設狀態空間中有s1,s2兩個狀態,動作空間有a1,a2,a3三個動作。假設不同狀態下采取不同動作得到的即時獎勵如下表所示(在狀態s1時採取動作a1,得到獎勵200)

                                   

根據圖1,我們會在當前策略下進行MC採樣來得到一條episode,進而用於更新,假設採樣結果如下所示,縱向是可能的trajectory,橫線是某trajectory在不同時刻的採樣結果。Rt+1之所以沒寫,是因爲現在在計算Q(s,a),st,at固定之後,Rt+1是個定值,而後面的st+1等不是定值。

                 

爲了更簡單直觀的表達,我們令折扣因子\gamma=1,根據圖1,策略梯度是G_t\bigtriangledown ln\pi (A_{t}|S_{t},\theta ),其中G_t=R_{t+1}+R_{t+2}+\cdot \cdot \cdot

因爲Gt是Q(s,a)的無偏估計,所以這樣採樣得到的結果就是策略梯度的無偏估計,那麼其方差呢?請聽我慢慢道來...

\bigtriangledown ln\pi (A_{t}|S_{t},\theta )是對數概率的梯度,只與策略有關,因爲是在當前策略下采樣,所以不妨將其看做G的一個係數或者說權重,如此一來,方差的來源就是G,\bigtriangledown ln\pi (A_{t}|S_{t},\theta )只不過是對G的方差起一個放縮的作用。(根據公式Var(aX)=a^{2}Var(X)),下面我們來分析G的方差。

Var(G_t)=Var(R_{t+1})+Var(R_{t+2})+\cdots

由此可以看出,方差大來源於2個原因:

①若不同s對應的R範圍相差較大,再加上MC的隨機性,那麼每一步的R都會有較大的方差。

②因爲採樣軌跡長度的原因,出現方差累積。

3 如何解決方差大問題?

①針對第一個原因,提出Add a Baseline

②用TD方法代替MC(即Actor-Critic方法)

下面詳細解說...

3.1 Add a baseline

我們可以設計一個與狀態s有關的函數b(s),作爲這個狀態下獎勵的baseline,只有超過這個baseline,我們纔會給出正的獎勵,否則給出負的獎勵。看下面這個簡單的例子,對某個時間步,R的取值有200,210,220,105,110,115共6種可能,這時候的方差是不是很大呢?R的方差大,Gt的方差自然也小不了,方差大的話就會減慢學習的速度(可以類比下SGD和GD的關係,SGD就是因爲隨機選擇一個樣本,所以與真實的梯度相比方差比較大,導致學習曲線震盪,收斂較慢,所以就有了小批量梯度下降來降低SGD的方差(原理是var(\bar{X})=var(x)/n))

-10,0,10,-5,0,5這個序列是不是比200,210,220,105,110,115的方差小呢?當然小咯。那就果斷安排上啊,可以加快學習效率!

當然了,也不是說所有baseline都能降低方差咯,要好好設計一番。上圖中b(s)用的是均值,這是最常用的baseline方法,卻不是最優的baseline。那爲什麼不是最優還要用呢?因爲簡單。如果有人想知道推導的話,可以留言哦(原理與argmin_aE(x-a)^2相似,只不過是x-a帶權重)。

 

3.2 TD 代替 MC (即Actor-Critic方法)

TD只用了一個時刻的即時獎勵r,所以相比MC而言可以避免方差累積的問題。

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