目錄
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等不是定值。
爲了更簡單直觀的表達,我們令折扣因子,根據圖1,策略梯度是,其中
因爲Gt是Q(s,a)的無偏估計,所以這樣採樣得到的結果就是策略梯度的無偏估計,那麼其方差呢?請聽我慢慢道來...
是對數概率的梯度,只與策略有關,因爲是在當前策略下采樣,所以不妨將其看做G的一個係數或者說權重,如此一來,方差的來源就是G,只不過是對G的方差起一個放縮的作用。(根據公式),下面我們來分析G的方差。
由此可以看出,方差大來源於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的方差(原理是))
-10,0,10,-5,0,5這個序列是不是比200,210,220,105,110,115的方差小呢?當然小咯。那就果斷安排上啊,可以加快學習效率!
當然了,也不是說所有baseline都能降低方差咯,要好好設計一番。上圖中b(s)用的是均值,這是最常用的baseline方法,卻不是最優的baseline。那爲什麼不是最優還要用呢?因爲簡單。如果有人想知道推導的話,可以留言哦(原理與相似,只不過是x-a帶權重)。
3.2 TD 代替 MC (即Actor-Critic方法)
TD只用了一個時刻的即時獎勵r,所以相比MC而言可以避免方差累積的問題。