之前我們討論過DQN演算法:深度強化學習-DQN演算法原理與代碼、Double DQN演算法:深度強化學習-Doubel DQN演算法原理與代碼、Dueling DQN演算法:深度強化學習-Dueling DQN演算法原理與代碼以及D3QN演算法:深度強化學習-D3QN演算法原理與代碼,這些演算法在求解最優策略的程序中試圖估計最優價值函式,所以這些演算法都被稱為最優價值演算法(optimal value algorithm),
但是求解最優策略梯度不一定要估計最優價值函式,策略梯度演算法(policy gradient algorithm)試圖用含參函式近似最優策略,并通過迭代更新引數值,本文采用兩種方法推導策略梯度演算法,法一的推導程序比較簡單,可以直觀了解策略梯度演算法的原理,但是不太嚴謹,具體可以參考李宏毅老師講解PG演算法的視頻:Policy Gradient,法二的推導程序稍微復雜一點,但是推導程序嚴謹,Reinforce演算法就是法二推導結果的直觀體現,
1 策略梯度演算法推導
強化學習的目標在于最大化累積期望回報,策略梯度演算法給出了期望回報和策略梯度之間的關系,采用函式近似法估計最優策略的基本思想是用含參函式
來近似最優策略,
1.1 方法一
假設智能體與環境互動一次的經驗軌跡為,T為終止時刻,即
本次互動的累積回報為
本次經驗軌跡出現的概率為
其中,和
由環境決定,與
無關,
真實的累積回報為采樣得到累積回報的期望,即累積期望回報為
對關于
求梯度,得到
注意:式中的其實與引數
有關,但是推導時假定無關,沒有算入梯度,因此不太嚴謹,不過并不影響對策略梯度演算法的理解,嚴謹的推導見方法二,
由于
那么
上面求和符號可以通過采樣消除,即N次采樣后,得到
對求對數,得到
對關于
求梯度,由于
與
無關,因此全部被消掉,得到
將代入
,得到
策略梯度:
至此,我們完成了策略梯度演算法的推導,沿著的方向改變策略引數
,就有機會增加累積期望回報,不過,策略梯度公式中有一個需要注意的地方,
表示的是整條軌跡的累積回報,并非即時回報,
1.2 方法二
策略滿足Bellman期望方程
Bellman期望方程:
對以上兩式關于求梯度,得到
將代入
,得到
在策略下,當
時求上式的期望,得到
這樣就得到了從到
的遞推式,注意到最終關注的梯度值就是
所以有
考慮到
所以
又由于,所以
因此
策略梯度:
2 Reinforce演算法
在每一個回合結束后,就回合中的每一步利用如下迭代式更新
這樣的演算法稱為簡單的策略梯度演算法,R.Willims稱它為“REward Increment=Nonnegative Factor x Offset Reinforcement x Characteristic Eligibility”(REINFORCE),表示增量是由三個部分的積組成,這樣迭代完這個回合軌跡就實作了
在具體的更新程序中,不一定要嚴格采用這樣的形式,當采用自動微分的軟體包來學習引數時,可以定義單步的損失為,讓軟體包中的優化器減小整個回合中所有步的平均損失,就會沿著
的梯度方向更新引數
,
3 Reinforce演算法偽代碼

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/400408.html
標籤:其他
