Policy Gradient Methods, DPG 和 DDPG

1. 介紹

首先了解一下策略梯度法呢蛤,之后再對DPG和DDPG兩篇論文進行學習林束。

2. 梯度策略法

梯度策略法 ( Policy Gradient Methods ) 英文好的同學移步這里看原文酗失。

增強學習的基礎那一套這里就不說了叛甫,策略梯度允許我們直接通過參數對策略建模筹吐,并且通過reward來直接對策略進行更新痘儡,以最大化J刊咳,也就是累積reward彪见。

那么重點就是如果計算策略梯度(Policy Gradient)。

2.1 Finite-difference Methods

有限差分法娱挨。
算法如下:


FInite Difference

對策略參數\theta_i余指,產生一個擾動\Delta \theta_i,之后根據擾動后的策略參數得到一個estimates \Delta \hat{J}_i \approx J(\theta_h + \Delta \theta_i) - J_{ref}跷坝。這里的J_{ref}是reference value酵镜,它有不同的選擇。
那么policy gradient estimate g_{FD}就可以通過回歸問題求解

Screen Shot 2019-02-22 at 10.33.18 PM.png

這里推導思路是:將estimate的策略梯度柴钻,也就是\Delta \hat{J}作為回歸中的y淮韭,將J(\theta_h + \Delta \theta_i) - J_{ref}進行泰勒一階展開,這里選擇J_{ref} = J(\theta_h)贴届,發(fā)現(xiàn)它等于真實梯度\Delta \theta靠粪。那么問題就類似于線性回歸蜡吧,也就得到了上面的公式。

這個方法感覺簡單占键,限制很少(捂臉)昔善,但是擾動的選擇會是個問題。由于我對這個方法了解非常少畔乙,就不多說啦君仆。

缺點:

  • 擾動可能做不到
  • 很難探索
  • 對于隨機系統(tǒng),非常慢

2.2 Likelihood Ratio Methods 和 REINFORCE

這種方法是非常非常重要的牲距。
公式如下:

REINFORCE

求期望可以通過采樣來近似返咱,重要的是\bigtriangledown_\theta log p_\theta(\tau)的計算不需要分布的相關知識:

score function

這里就省去了轉換函數的計算,也就不需要模型來對轉換函數進行建模來嗅虏。

然而如果我們使用的是確定性策略:u = \pi (x),那么就需要計算:

Screen Shot 2019-02-22 at 11.28.38 PM.png

為了減少gradient estimator的variance上沐,通常會加一個baseline皮服。

算法如下:


REINFORCE

2.3 Natural Policy Gradients

我們在計算梯度的時候,通常是期望參數在梯度的方向参咙,移動一小段距離龄广。但是這個距離的度量,我們通常是在歐式空間下的蕴侧。

然后择同,度量兩個分布之間的相似性,有多種方式:KL divergence, Hellinger distance等净宵。大多數的距離可以通過二階泰勒展開進行近似:
例如:


Screen Shot 2019-02-22 at 11.49.52 PM.png

F_\theta是Fisher信息矩陣敲才。

為了盡可能使得參數更新接近梯度,并且移動的距離滿足一定的條件择葡,可以優(yōu)化下面問題:
argmax_{\Delta \theta} \Delta \theta^T \bigtriangledown_\theta J, s.t. \Delta \theta^T F_\theta \bigtriangledown \theta = \epsilon
solution為:
\Delta \theta \propto F_\theta^{-1} \bigtriangledown_\theta J

我們可以這樣解釋natural gradient:選擇參數的更新量紧武,是的策略的分布的變化為一個定值。

3. DPG 算法

論文鏈接

3.1 Policy gradient theorem

https://lilianweng.github.io/lil-log/2018/04/08/policy-gradient-algorithms.html

首先我們先給出policy gradient theorem敏储。從前面我們已經知道了阻星,\bigtriangledown_\theta J的計算取決于兩個部分:一個是動作的選擇,因為動作取決于\pi_\theta已添,也就是策略(policy)妥箕;一個是狀態(tài)轉移函數:p(x_{k+1}|x_k,u_k),因為它也間接地取決于策略更舞。但是通常情況下畦幢,環(huán)境是未知的,所以我們無法求解缆蝉。

但是policy gradient theorem告訴我們呛讲,梯度求解不需要知道環(huán)境信息:


Screen Shot 2019-02-23 at 9.37.07 AM.png

可以看到禾怠,求導只是對于\pi_\theta

3.2 證明

首先是reward函數的定義:


Screen Shot 2019-02-23 at 9.52.38 AM.png

d^\pi(s) = lim_{t\rightarrow \infty} P(s_t=s|s_0, \pi_0)

給出價值狀態(tài)函數V的導數:

Screen Shot 2019-02-23 at 9.58.07 AM.png

第一行通過展開價值函數
第二行通過乘積的求導法則
第三行是Q的展開
第四行贝搁,reward不是\theta的函數
第五行吗氏,將reward求和

所以我們得到了下面公式:


Screen Shot 2019-02-23 at 10.01.15 AM.png

紅色部分顯示了這是一種遞歸的形式。

\phi(s)表示求和的第一個部分雷逆,然后對第二部分進行展開弦讽。

Screen Shot 2019-02-23 at 10.38.59 AM.png

帶入到reward function:


Screen Shot 2019-02-23 at 10.42.06 AM.png

這里\sum_s \eta (s)是 1 ?表示任意狀態(tài)開始膀哲,經歷任意步數往产,到達任意狀態(tài)?某宪?

這里證明就結束了仿村,進一步可以表示為:


Screen Shot 2019-02-23 at 10.48.03 AM.png

總結一下,Policy gradient theorem就說了一件事:策略梯度和狀態(tài)分布無關兴喂。

3.3 DPG

回到我們的DPG算法蔼囊,論文在背景介紹里提到了一些隨機策略梯度的算法

  • Stochastic Actor-Critic Algorithms: 用一個critic函數來擬合Q^w(s,a) \approx Q^\pi(s,a)
  • Off-policy Actor-Critic: 通過\rho^\beta(s)來修改V^\pi衣迷,通常是使用behavior policy\beta來產生軌跡畏鼓,也就是(s,a),使用critic來計算價值換上V^\pi(s)壶谒。由于兩個策略的不同云矫,需要importance sample ratio。公式如下:
Screen Shot 2019-02-23 at 1.11.54 PM.png

3.4 確定性策略的梯度

Gradients of Deterministic Policies汗菜。
這里的策略不同于隨機策略\pi让禀,采用的是確定性策略:\mu^{k+1}(s) = argmax_a Q^{\mu^k}(s,a)。在連續(xù)的動作陨界,狀態(tài)空間下堆缘,我們期望策略能夠沿著Q值的梯度運動,達到最大化的目的普碎。也就是希望參數的變化量吼肥,正比于\triangledown_\theta Q^{\mu^k}(s,\mu_\theta(s))。對于不同的狀態(tài)麻车,取平均即可缀皱,公式如下:

Screen Shot 2019-02-23 at 1.20.20 PM.png

用動作代替公式中的\mu_\theta(s),根據鏈式求導动猬,得到下面公式:

Screen Shot 2019-02-23 at 1.21.56 PM.png

顯然啤斗,它是策略對策略參數的導數,和Q對動作的導數的組合赁咙。通常來講钮莲,\triangledown_\theta \mu_\theta是一個Jacobian矩陣免钻,它的第d列表示的是,第d維的動作空間崔拥,對策略參數\theta的導數极舔。然而,策略的改變會導致期望里狀態(tài)分布的改變链瓦,因此拆魏,我們無法認為,這個更新會改善策略慈俯。

3.5 Deterministic Policy Gradient Theorem

作者這里主要是證明了像隨機策略梯度一樣渤刃,確定性策略梯度也同樣不需要計算狀態(tài)分布的梯度。也就是下面公式:

Screen Shot 2019-02-23 at 1.37.16 PM.png

證明作者放在了附錄里面贴膘,這里給出地址
http://proceedings.mlr.press/v32/silver14-supp.pdf

作者還證明了卖子,在隨機策略的方差趨近于零的時候,隨機策略趨近于確定性策略刑峡,并且隨機策略的梯度洋闽,趨近于確定性策略的梯度。

3.6 確定性策略梯度算法

在擁有了確定性策略梯度定理之后氛琢,作者給出了一些確定性actor-critic的算法喊递。

  • On-policy Deterministic Actor-Critic:更新公式如下:


    Screen Shot 2019-02-23 at 1.52.08 PM.png

可以看出來随闪,Q值的更新采用的是Sarsa阳似,所以它是on-policy。

  • Off-policy Deterministic Actor-Critic:更新公式如下:


    Screen Shot 2019-02-23 at 1.57.48 PM.png

可以看出它和on-policy的區(qū)別在于Q的更新铐伴,它采用的是Q-learning的方式撮奏。

3.7 Compatible Function Approximation

通常來說,使用一個近似值Q^w不一定會使得前面的確定性策略梯度近似于真實梯度当宴。但是我們可以找到一組compatible function approximation畜吊,使得\triangledown_a Q^\mu(s,a)可以被\triangledown_a Q^w(s,a)代替。

定理如下:


Screen Shot 2019-02-23 at 2.34.05 PM.png

對于任意的確定性策略户矢,總存在compatible function approximator:Q^w(s,a) = (a - \mu_\theta(s))^T \triangledown_\theta \mu_\theta(s)^T w + V^v(s)玲献,其中V^v(s)可以是任何獨立于動作a的可微分函數。通常將第一項解釋為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函數:\mu(s|\theta^\mu)念秧,給定策略下的狀態(tài)淤井,直接返回一個確定性的動作,它還有一個critic:Q(s,a)摊趾,可以通過Q-learning或者sarsa來進行學習币狠。

Actor的更新公式如下:


Screen Shot 2019-02-23 at 3.29.52 PM.png

如果使用神經網絡來作為estimator,就得到了Deep DPG(DDPG)砾层。我們知道漩绵,神經網絡使用梯度下降,也就要求樣本是獨立肛炮,同分布的躬贡。但是,顯然增強學習中通過agent探索的方式得到的sample愈污,關聯(lián)性很強回季。

類似于DQN,作者使用replay buffer來克服這個問題秕重。也就是用一個經驗池不同,里面存放了一堆(s_t,a_t,r_t,s_{t+1}),之后再從這個池子里面采樣作為樣本輸入神經網絡訓練溶耘。

由于在Q-learning中二拐,被更新的Q同時被用于了計算目標Q值,所以會導致不穩(wěn)定凳兵。因此類似DQN百新,作者使用了target網絡,Q'(s,a|\theta^{Q'}), \mu'(s|\theta^{Q'})庐扫。使用target網絡來計算目標值饭望。
更新目標網絡參數時,采用:\theta' \leftarrow \tau\theta + (1 - \tau) \theta'形庭。

為了引入exploration铅辞,作者使用了exploration policy\mu'(s_t) = \mu(s_t|\theta_t^\mu) + N

最終碘勉,算法如下:


DDPG
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末巷挥,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子验靡,更是在濱河造成了極大的恐慌倍宾,老刑警劉巖雏节,帶你破解...
    沈念sama閱讀 212,383評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異高职,居然都是意外死亡钩乍,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,522評論 3 385
  • 文/潘曉璐 我一進店門怔锌,熙熙樓的掌柜王于貴愁眉苦臉地迎上來寥粹,“玉大人,你說我怎么就攤上這事埃元±缘樱” “怎么了?”我有些...
    開封第一講書人閱讀 157,852評論 0 348
  • 文/不壞的土叔 我叫張陵岛杀,是天一觀的道長阔拳。 經常有香客問我,道長类嗤,這世上最難降的妖魔是什么糊肠? 我笑而不...
    開封第一講書人閱讀 56,621評論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮遗锣,結果婚禮上货裹,老公的妹妹穿的比我還像新娘。我一直安慰自己精偿,他們只是感情好弧圆,可當我...
    茶點故事閱讀 65,741評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著还最,像睡著了一般墓阀。 火紅的嫁衣襯著肌膚如雪毡惜。 梳的紋絲不亂的頭發(fā)上拓轻,一...
    開封第一講書人閱讀 49,929評論 1 290
  • 那天,我揣著相機與錄音经伙,去河邊找鬼扶叉。 笑死,一個胖子當著我的面吹牛帕膜,可吹牛的內容都是我干的枣氧。 我是一名探鬼主播,決...
    沈念sama閱讀 39,076評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼垮刹,長吁一口氣:“原來是場噩夢啊……” “哼达吞!你這毒婦竟也來了?” 一聲冷哼從身側響起荒典,我...
    開封第一講書人閱讀 37,803評論 0 268
  • 序言:老撾萬榮一對情侶失蹤酪劫,失蹤者是張志新(化名)和其女友劉穎吞鸭,沒想到半個月后,有當地人在樹林里發(fā)現(xiàn)了一具尸體覆糟,經...
    沈念sama閱讀 44,265評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡刻剥,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,582評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了滩字。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片造虏。...
    茶點故事閱讀 38,716評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖麦箍,靈堂內的尸體忽然破棺而出漓藕,到底是詐尸還是另有隱情,我是刑警寧澤挟裂,帶...
    沈念sama閱讀 34,395評論 4 333
  • 正文 年R本政府宣布撵术,位于F島的核電站,受9級特大地震影響话瞧,放射性物質發(fā)生泄漏嫩与。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 40,039評論 3 316
  • 文/蒙蒙 一交排、第九天 我趴在偏房一處隱蔽的房頂上張望划滋。 院中可真熱鬧,春花似錦埃篓、人聲如沸处坪。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,798評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽同窘。三九已至,卻和暖如春部脚,著一層夾襖步出監(jiān)牢的瞬間想邦,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,027評論 1 266
  • 我被黑心中介騙來泰國打工委刘, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留丧没,地道東北人。 一個月前我還...
    沈念sama閱讀 46,488評論 2 361
  • 正文 我出身青樓锡移,卻偏偏與公主長得像呕童,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子淆珊,可洞房花燭夜當晚...
    茶點故事閱讀 43,612評論 2 350

推薦閱讀更多精彩內容