一.前言
之前我們討論的所有問題都是先學習action value,再根據action value 來選擇action(無論是根據greedy policy選擇使得action value 最大的action,還是根據ε-greedy policy以1-ε的概率選擇使得action value 最大的action,action 的選擇都離不開action value 的計算)。即沒有action value的估計值就無法進行action選擇,也就沒有Policy,這類方法被稱為 value-based methods.其實我們可以直接產生不依賴於action value 的polcy ,這類直接生成action的方法就叫policy-based methods.他們關系如下:

value-based方法,需要計算價值函數(value function),根據自己認為的高價值選擇行(action)的方法,如Q Learning。
policy-based方法,不需要根據value function選擇action,可以直接得出policy的方法。
圖中第三類方法(Actor critic)結合了上述兩者,即計算value function,但不直接根據value function選擇action,action 由policy-based方法得到。
二. Advantages of Policy-Based RL
Policy-Based RL 的優勢:
1)有着更好的收斂性質。Value_Based 方法需要對值函數進行更新,然后才能反映到策略中,而值函數中的一些小小改變可能會使得策略發生較大改變,從而收斂性較差。當然,我們在模型無關的控制(model free)當中說過,如果將探索因子epsilon設定位1/k,則得到的Monte-carlo Contorl是符合GLIE條件的,此時該方法對應的致函數將收斂於最優值函數。Value-Based方法收斂性較差指得是較容易震盪而難以收斂,而后面說的將收斂於最優值函數是指“最終”將收斂於最優值函數。我們並不知道“最終”是多久,所以,Policy-Based在這個問題上更具有優勢。
2)在高緯度和連續動作空間上有着逢高的效率。畢竟Value-Based 方法需要計算![]()
如果動作集很大,那么這個max操作的計算量就很大,而Policy-Based RL方法就不存在這種問題。
3)可以學習隨機性策略。Value-Based 方法是隱式地對策略進行表示,需要用greedy 方法得到策略,所以學習單的是確定性策略。
Policy-Based 的缺點:
1)通常是收斂到極限;
2)評估策略是低效,高差異的;
舉個例子1,在我們所熟知的“石頭剪刀布”游戲中,需要尋求納什均衡,所以並不能弄一個確定性策略,這種情況下,一個均勻的隨機策略就是最優的。
舉例2:

在上面的這個格子世界中,兩個灰色方格對於智能體而言並沒有什么區別。如果使用一個確定性策略,那么在灰色方格處的決策要么都向左,要么都向右,不管是向左還是向右,都有可能卡住,如下圖:

當然,Value-Based方法也可以學習一個near-deterministic(近似確定性)策略,比如說epsilon-greedy,這樣的方法雖然不會一直卡住,但是一般需要較長時間才能結束這一episode。課程中有這么一句話:Whenever stochastic policy occurs, a stochastic policy can do better than a deterministic policy。也就是說,一般而言,只要出現隨機性策略的時候,一般都會比確定性策略要好。
下面來看一下常用的幾個目標函數:
1)episodic環境中,我們使用start value:
![]()
2)continuing環境中,我們使用average value:
![]()
3)continuing環境中,也可以使用average reward per time-step:
![]()
其中d為利用對應策略生成的馬爾可夫鏈的穩態分布。1)中為從某個狀態
開始,看一下后面將得到的獎勵;2)中為continuing環境,所以並沒有一個所謂的初始狀態
,也沒有一個結束狀態;3)中表示平穩狀態分布下單步的獎勵。這三種策略殊途同歸,最后都運用到了策略下降方面;
三. Score Function

也即策略梯度可以等價地表示為策略乘以一個似然函數的倒數,這個與極大似然操作形式一致的式子叫做Score Function ,表示為:
![]()
下面通過兩個例子說明score function:
1)softmax policy
首先假設使用線性特征組合
對動作進行加權:
![]()
此時,score function為:

2)同理,我們可以得到服從
的高斯分布的score function:
![]()
四.one-step MDP
考慮完策略的導數之后,接着我們討論獎勵函數的導數。首先考慮一個簡單的one-step MDP:

推導獎勵函數的梯度:

通過選取一個動作來使獎勵最大化,選取的正確方法可能取決於狀態和動作;
我們通過這個簡單的one-step MDP可知,獎勵函數的導數等於socre function乘以reward在策略下的期望,也即:


與上面的one-step MDP的情形相比,這里將其拓展到了multi-step MDP,並且將即時獎勵r替換為了long-term值函數,這一定理非常重要。我們知道,我們對於策略參數的更新都是沿着極大化獎勵函數的方向進行的,所以由上式我們可以對參數進行更新。
接下來將將該定理結合model-free情形進行使用,得到REINFORCE算法:
五.Monte-Carlo Policy Gradient (REINFORCE)

其想法非常簡單,就是將獎勵函數的梯度中的期望換為采樣,在一個episode結束之后,利用該episode中的每一個step對參數進行更新。不過這個算法中對於的估計使用的是回報(return),這是一個無偏估計,但是卻有着較大的方差,所以,我們考慮換成其他方法對值函數進行逼近,比如說利用神經網絡或其他參數化方法,記參數為w(此處可回想DDPG算法形式):
![]()
我們稱之為Critic,並將上面的參數化策略稱為Actor,將這二者結合起來,叫做Actor-Critic算法:

對於參數w的更新,我們可以將回報(return)或者TD target作為目標,最小化當前值函數與目標的平方。此外,在Actor-Critic算法中,我們可以在每個step對策略進行更新,而不用像REINFORCE一樣,只能在每個episode運行完成之后進行更新。因為這里每個step我們可以使用對獎勵進行估計,然后代入上面的式子,對策略進行更新,而REINFORCE使用回報(return)決定了它不能實時更新。
Actor-Critic算法雖然降低了方差,但是一般來說是有偏的,因為在approximating(逼近)的時候引入了bias(誤差)。那是否能夠通過恰當地選擇值函數估計器來避免引入bias呢?這是可以的。由此我們引出兼容函數估計(Compatible Function Approximation)
考慮條件1中提到的式子,用語言表述為:“score function = the gradient of Critic”,將其代入到
中,可得:
![]()
比方說,在某個狀態s和動作a下,假設
為正,則
沿着
的梯度方向進行更新,且
越大,
越大,如果
為負,則朝着與
的梯度相反的方向更新。換句話說,我們這里的
朝着
大的方向更新,
前面我們說過,為了降低REINFORCE算法的方差,我們引入了Critic,現在,我們進一步使用Baseline來降低RL中的方差。首先我們可以推導出如下式子:

該式表明,對於某一個與動作a無關的基准函數B(s),它乘以score function之后,計算在策略下的期望,結果為0。換句話說,我們可以在獎勵函數的梯度的基礎上任意的增減一個這樣的式子,而保持梯度不變。一個不錯的Baseline函數就是值函數,在原獎勵函數梯度的計算式上減去該值,得到:![]()
我們稱
為優勢函數,用其表示獎勵函數的梯度為:

優勢函數的意義是,在動作值函數的基礎上減去了對應狀態擁有的基准值,使之變為動作帶來的增益,因而降低了方差(降低了由於狀態基准值的抖動引起的方差)。
現在我們給出的計算優勢函數的公式是理論上的,或者說是策略對應的真實優勢函數,但實際上,我們並不知道該函數,因而只能對其進行估計,就像我們前面估計狀態值函數和動作值函數一樣:
我們可以不斷地更新
以及
,比方說利用TD方法進行更新,然后通過計算得到
。不過令人感到不開心的是,這里我們需要維持兩個逼近器,有沒有方法能夠讓我們用一個逼近器就能夠給出優勢函數的估計呢?有的,具體見下面的PPT:

δπθ=reward+下一個狀態真實價值折扣-現在所處的狀態;
其中最為重要的結論是:“如果我們使用真實的狀態值函數來計算TD error,則TD error為優勢函數的一個無偏估計”。並且,在這種方法中,我們僅需一組參數就能夠對優勢函數進行估計。
最后我們介紹一下自然策略梯度:

自然策略梯度也即直接對原始策略梯度進行修正,乘以一個Fisher信息陣。這樣做有什么用處呢?它使得策略梯度變成參數化無關的了。舉個例子,對於一個softmax策略,我們增大其中所有動作的score,此時各個動作的概率並不會發生改變,這可以通過其score function來考慮。
![]()
比方說,我們反過來想,成比例的增大策略中各個動作對應的分子,因為softmax策略中的分母也會成比例的增大,所以最終各個動作的概率並沒有發生改變。如果這里我們是通過增加
來增加分子的值的,所以上面的score function也可能會隨之增大,這樣的話,雖然該策略各個動作對應的概率沒有變,但是下一步對於策略的改進卻發生了改變(想想對於策略參數的更新公式),這並不是我們想看到的。而自然策略梯度可以很好地解決這一問題,對於剛剛提及的這種情形,Fisher信息陣也將增大,從而使得下一步對於策略的改進與重新參數化無關,就很開心了。
將自然策略梯度與Actor-Critic結合,得到Natural Actor-Critic如下:

在上面的推導中,我們可以將compatible function approximation積分代入對於獎勵函數的求導中,得到最終的獎勵函數的自然梯度,發現它就等於Critic的參數w,這並不是巧合,當我們結合natural policy gradient + compatible function approximation(自然策略梯度+相容函數逼近)之后,就可以得到這一結論:對Actor參數的更新就等於Critic的參數。
總結:
本章闡述了value-based methods和policy-based methods的優缺點,引入了性能函數J(θ) ,介紹了PG定理,並詳細介紹了episode case下的PG方法:REINFORCE 、REINFORCE-with-baseline(減小偏差,但方差較大)。介紹了結合PG 和value-based methods的Actor-Critic Methods,以及 continuing case下的PG。
