1. 介紹
首先了解一下策略梯度法呢蛤,之后再對DPG和DDPG兩篇論文進行學習林束。
2. 梯度策略法
梯度策略法 ( Policy Gradient Methods ) 英文好的同學移步這里看原文酗失。
增強學習的基礎那一套這里就不說了叛甫,策略梯度允許我們直接通過參數對策略建模筹吐,并且通過reward來直接對策略進行更新痘儡,以最大化刊咳,也就是累積reward彪见。
那么重點就是如果計算策略梯度(Policy Gradient)。
2.1 Finite-difference Methods
有限差分法娱挨。
算法如下:
對策略參數余指,產生一個擾動,之后根據擾動后的策略參數得到一個estimates 跷坝。這里的是reference value酵镜,它有不同的選擇。
那么policy gradient estimate 就可以通過回歸問題求解
這里推導思路是:將estimate的策略梯度柴钻,也就是作為回歸中的淮韭,將進行泰勒一階展開,這里選擇贴届,發(fā)現(xiàn)它等于真實梯度乘靠粪。那么問題就類似于線性回歸蜡吧,也就得到了上面的公式。
這個方法感覺簡單占键,限制很少(捂臉)昔善,但是擾動的選擇會是個問題。由于我對這個方法了解非常少畔乙,就不多說啦君仆。
缺點:
- 擾動可能做不到
- 很難探索
- 對于隨機系統(tǒng),非常慢
2.2 Likelihood Ratio Methods 和 REINFORCE
這種方法是非常非常重要的牲距。
公式如下:
求期望可以通過采樣來近似返咱,重要的是的計算不需要分布的相關知識:
這里就省去了轉換函數的計算,也就不需要模型來對轉換函數進行建模來嗅虏。
然而如果我們使用的是確定性策略:,那么就需要計算:
為了減少gradient estimator的variance上沐,通常會加一個baseline皮服。
算法如下:
2.3 Natural Policy Gradients
我們在計算梯度的時候,通常是期望參數在梯度的方向参咙,移動一小段距離龄广。但是這個距離的度量,我們通常是在歐式空間下的蕴侧。
然后择同,度量兩個分布之間的相似性,有多種方式:KL divergence, Hellinger distance等净宵。大多數的距離可以通過二階泰勒展開進行近似:
例如:
是Fisher信息矩陣敲才。
為了盡可能使得參數更新接近梯度,并且移動的距離滿足一定的條件择葡,可以優(yōu)化下面問題:
,
solution為:
我們可以這樣解釋natural gradient:選擇參數的更新量紧武,是的策略的分布的變化為一個定值。
- Reference
https://www.ias.informatik.tu-darmstadt.de/uploads/Research/MPI2007/MPI2007peters.pdf
http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.70.4294&rep=rep1&type=pdf
http://home.deib.polimi.it/restelli/MyWebSite/pdf/rl7.pdf
3. DPG 算法
3.1 Policy gradient theorem
https://lilianweng.github.io/lil-log/2018/04/08/policy-gradient-algorithms.html
首先我們先給出policy gradient theorem敏储。從前面我們已經知道了阻星,的計算取決于兩個部分:一個是動作的選擇,因為動作取決于已添,也就是策略(policy)妥箕;一個是狀態(tài)轉移函數:,因為它也間接地取決于策略更舞。但是通常情況下畦幢,環(huán)境是未知的,所以我們無法求解缆蝉。
但是policy gradient theorem告訴我們呛讲,梯度求解不需要知道環(huán)境信息:
可以看到禾怠,求導只是對于。
3.2 證明
首先是reward函數的定義:
給出價值狀態(tài)函數的導數:
第一行通過展開價值函數
第二行通過乘積的求導法則
第三行是的展開
第四行贝搁,reward不是的函數
第五行吗氏,將reward求和
所以我們得到了下面公式:
紅色部分顯示了這是一種遞歸的形式。
用表示求和的第一個部分雷逆,然后對第二部分進行展開弦讽。
帶入到reward function:
這里是 1 ?表示任意狀態(tài)開始膀哲,經歷任意步數往产,到達任意狀態(tài)?某宪?
這里證明就結束了仿村,進一步可以表示為:
總結一下,Policy gradient theorem就說了一件事:策略梯度和狀態(tài)分布無關兴喂。
3.3 DPG
回到我們的DPG算法蔼囊,論文在背景介紹里提到了一些隨機策略梯度的算法
- Stochastic Actor-Critic Algorithms: 用一個critic函數來擬合。
- Off-policy Actor-Critic: 通過來修改衣迷,通常是使用behavior policy來產生軌跡畏鼓,也就是,使用critic來計算價值換上壶谒。由于兩個策略的不同云矫,需要importance sample ratio。公式如下:
3.4 確定性策略的梯度
Gradients of Deterministic Policies汗菜。
這里的策略不同于隨機策略让禀,采用的是確定性策略:。在連續(xù)的動作陨界,狀態(tài)空間下堆缘,我們期望策略能夠沿著值的梯度運動,達到最大化的目的普碎。也就是希望參數的變化量吼肥,正比于。對于不同的狀態(tài)麻车,取平均即可缀皱,公式如下:
用動作代替公式中的,根據鏈式求導动猬,得到下面公式:
顯然啤斗,它是策略對策略參數的導數,和Q對動作的導數的組合赁咙。通常來講钮莲,是一個Jacobian矩陣免钻,它的第列表示的是,第維的動作空間崔拥,對策略參數的導數极舔。然而,策略的改變會導致期望里狀態(tài)分布的改變链瓦,因此拆魏,我們無法認為,這個更新會改善策略慈俯。
3.5 Deterministic Policy Gradient Theorem
作者這里主要是證明了像隨機策略梯度一樣渤刃,確定性策略梯度也同樣不需要計算狀態(tài)分布的梯度。也就是下面公式:
證明作者放在了附錄里面贴膘,這里給出地址
http://proceedings.mlr.press/v32/silver14-supp.pdf
作者還證明了卖子,在隨機策略的方差趨近于零的時候,隨機策略趨近于確定性策略刑峡,并且隨機策略的梯度洋闽,趨近于確定性策略的梯度。
3.6 確定性策略梯度算法
在擁有了確定性策略梯度定理之后氛琢,作者給出了一些確定性actor-critic的算法喊递。
-
On-policy Deterministic Actor-Critic:更新公式如下:
可以看出來随闪,值的更新采用的是Sarsa阳似,所以它是on-policy。
-
Off-policy Deterministic Actor-Critic:更新公式如下:
可以看出它和on-policy的區(qū)別在于的更新铐伴,它采用的是Q-learning的方式撮奏。
3.7 Compatible Function Approximation
通常來說,使用一個近似值不一定會使得前面的確定性策略梯度近似于真實梯度当宴。但是我們可以找到一組compatible function approximation畜吊,使得可以被代替。
定理如下:
對于任意的確定性策略户矢,總存在compatible function approximator:玲献,其中可以是任何獨立于動作的可微分函數。通常將第一項解釋為advantage function梯浪,第二項解釋為價值函數捌年。
4. DDPG
DDPG我理解其實就是 DPG + DQN
4.1 Why DDPG
DQN可以用于處理類似于圖片,視頻的非常高維度的輸入挂洛,或者說obervation space礼预,但是無法處理連續(xù)的輸出,也就是動作空間虏劲。
DPG可以用于連續(xù)的動作空間托酸,深度學習可以處理高維度的觀察空間褒颈,兩者結合起來就得到了DDPG。
同時采用了DQN的一些做法:1. replay buffer励堡, 2. target Q network谷丸。
4.2 DDPG
首先回顧一下DPG,它有個actor函數:念秧,給定策略下的狀態(tài)淤井,直接返回一個確定性的動作,它還有一個critic:摊趾,可以通過Q-learning或者sarsa來進行學習币狠。
Actor的更新公式如下:
如果使用神經網絡來作為estimator,就得到了Deep DPG(DDPG)砾层。我們知道漩绵,神經網絡使用梯度下降,也就要求樣本是獨立肛炮,同分布的躬贡。但是,顯然增強學習中通過agent探索的方式得到的sample愈污,關聯(lián)性很強回季。
類似于DQN,作者使用replay buffer來克服這個問題秕重。也就是用一個經驗池不同,里面存放了一堆,之后再從這個池子里面采樣作為樣本輸入神經網絡訓練溶耘。
由于在Q-learning中二拐,被更新的Q同時被用于了計算目標Q值,所以會導致不穩(wěn)定凳兵。因此類似DQN百新,作者使用了target網絡,庐扫。使用target網絡來計算目標值饭望。
更新目標網絡參數時,采用:形庭。
為了引入exploration铅辞,作者使用了exploration policy。
最終碘勉,算法如下: