Neil Zhu胰默,簡書ID Not_GOD弥虐,University AI 創(chuàng)始人 & Chief Scientist,致力于推進(jìn)世界人工智能化進(jìn)程脏毯。制定并實施 UAI 中長期增長戰(zhàn)略和目標(biāo)闹究,帶領(lǐng)團(tuán)隊快速成長為人工智能領(lǐng)域最專業(yè)的力量。
作為行業(yè)領(lǐng)導(dǎo)者抄沮,他和UAI一起在2014年創(chuàng)建了TASA(中國最早的人工智能社團(tuán)), DL Center(深度學(xué)習(xí)知識中心全球價值網(wǎng)絡(luò))跋核,AI growth(行業(yè)智庫培訓(xùn))等,為中國的人工智能人才建設(shè)輸送了大量的血液和養(yǎng)分叛买。此外,他還參與或者舉辦過各類國際性的人工智能峰會和活動蹋订,產(chǎn)生了巨大的影響力率挣,書寫了60萬字的人工智能精品技術(shù)內(nèi)容,生產(chǎn)翻譯了全球第一本深度學(xué)習(xí)入門書《神經(jīng)網(wǎng)絡(luò)與深度學(xué)習(xí)》露戒,生產(chǎn)的內(nèi)容被大量的專業(yè)垂直公眾號和媒體轉(zhuǎn)載與連載椒功。曾經(jīng)受邀為國內(nèi)頂尖大學(xué)制定人工智能學(xué)習(xí)規(guī)劃和教授人工智能前沿課程,均受學(xué)生和老師好評智什。
原翻譯地址:https://tigerneil.wordpress.com/2016/05/03/deep-reinforcement-learning-from-openai/
原文地址:https://gym.openai.com/docs/rl
強化學(xué)習(xí)研究決策制定和控制动漾,以及一個進(jìn)行決策的 agent 如何學(xué)會在一個未知環(huán)境中采取最優(yōu)行動。深度強化學(xué)習(xí)研究如何在強化學(xué)習(xí)算法中使用神經(jīng)網(wǎng)絡(luò)荠锭,使得無需進(jìn)行人工特征工程直接學(xué)習(xí)從原始感知數(shù)據(jù)到原始行動輸出的映射變得可能旱眯。
本文講解深度強化學(xué)習(xí)技術(shù)。受眾是那些已經(jīng)有了一定的機器學(xué)習(xí)基礎(chǔ)证九,如監(jiān)督學(xué)習(xí)删豺、神經(jīng)網(wǎng)絡(luò)和強化學(xué)習(xí)基礎(chǔ)的讀者。
本教程和已有的強化學(xué)習(xí)教程的比對
已有的強化學(xué)習(xí)(RL)課本沒有給出足夠的關(guān)于如何使用函數(shù)近似的指導(dǎo)愧怜;基本上都是聚焦在離散狀態(tài)空間的領(lǐng)域呀页。而且,現(xiàn)有 RL 課本并沒有對無導(dǎo)數(shù)優(yōu)化和策略梯度方法給出充分講述拥坛,而這些技術(shù)在很多的任務(wù)上都是相當(dāng)重要的蓬蝶。
我對強化學(xué)習(xí)沒有任何經(jīng)驗尘分。我可以從何處開始學(xué)習(xí)?
現(xiàn)在有幾個大學(xué)課程給出了免費的視頻教程:
Intro to AI course (Klein & Abbeel). 第 8-11 課講述了 RL丸氛,前期的關(guān)于搜索和動態(tài)規(guī)劃的部分同樣非常有用
Dave Silver’s RL course
或者培愁,你可能想要從課本學(xué)習(xí):
Sutton & Barto, Reinforcement Learning: An Introduction. 第 1-4 章講解了 RL 的基本內(nèi)容
Bertsekas, Dynamic Programming and Optimal Control. 卷 2 的第 1-2 給出了更為形式化的對 MDP、策略迭代和值迭代的介紹
我是否有理解這個教程的基礎(chǔ)雪位?
我們假設(shè)讀者有下面的預(yù)備知識:
如何訓(xùn)練神經(jīng)網(wǎng)絡(luò)進(jìn)行回歸和分類
熟悉基本的 MDP竭钝、值迭代和策略迭代
目錄:
預(yù)備知識,符號和術(shù)語
黑盒優(yōu)化和交叉熵方法練習(xí)
筆記
策略梯度直覺解釋
更加形式化的解釋
實現(xiàn)注意點
參數(shù)化策略
練習(xí)
自然策略梯度(Natural Policy Gradient)和信賴區(qū)間方法(Trust Region Methods)
Q-學(xué)習(xí)(Q-learning)練習(xí)
參考文獻(xiàn)
1 預(yù)備知識雹洗、符號和術(shù)語
強化學(xué)習(xí)包含一個 agent 和一個環(huán)境:每個時間步香罐,agent 會選擇一個行動,然后環(huán)境會返回給 agent 一個收益然后轉(zhuǎn)換到下一個狀態(tài)时肿。在標(biāo)準(zhǔn)設(shè)置中庇茫,agent 和環(huán)境的交互被劃分成一系列 回合(episode) 的序列。在每個回合螃成,初始狀態(tài)
…
上面的定義是在 全-可觀察設(shè)定下的罩阵,這種情形下的 agent 能夠獲得系統(tǒng)的全部狀態(tài)竿秆。在 部分-可觀察設(shè)定下,agent 只能在每個時間步獲得一個觀察(y)稿壁,這個觀察可能是一個狀態(tài)的噪聲和不完全的信息幽钢。agent 可以將許多前期時間步信息進(jìn)行組合,所以行動
…
如果我們稱歷史
在實際應(yīng)用中梗劫,不適用整個原始的行動和觀察的歷史數(shù)據(jù)享甸,agent 使用一個循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)將觀察歷史編碼為一個定長向量
為了更加方便的表述問題蛉威,我們給出下面的包含將會使用到的符號的表格日丹。
s
狀態(tài)
a
行動
r
收益
y
觀察
軌跡
策略
策略參數(shù)
R
總收益
平均估計
V
狀態(tài)-值函數(shù)
P
轉(zhuǎn)換概率
2 黑盒優(yōu)化和交叉熵方法
很多強化學(xué)習(xí)問題可以被描述為下面的優(yōu)化問題:
(注意到我們可以僅僅使用一個確定的策略
最簡單的方式就是把整個問題看做一個關(guān)于策略參數(shù)
其中我們通過重復(fù)提供參數(shù)
在 RL 設(shè)定中上渴,因為
交叉熵方法(CEM)是簡單的黑盒優(yōu)化算法赃份。CEM 通過重復(fù)更新在候選參數(shù)向量
最簡單的算法描述如下:
Algorithm 1: 交叉熵方法 CEM
初始化
迭代
對每個樣本執(zhí)行噪聲的評價
選擇前
用精英集合擬合一個高斯分布抓韩,使用對角協(xié)方差纠永,得到新的
更多細(xì)節(jié)和實踐中的提升可以在[SzitaLorincz06]中找到。在 RL 設(shè)定中谒拴,我們通過對一個或者更多的回合執(zhí)行策略參數(shù)化評價
2.1 練習(xí)
(實踐 *) 實現(xiàn)交叉熵方法英上,將其應(yīng)用在CartPole 環(huán)境中炭序。
(實踐 ) 將其應(yīng)用在 Swimmer 環(huán)境中啤覆,這是一個連續(xù)行動空間的情形。嘗試人工增加方差和逐步降低噪聲為 0惭聂,如[SzitaLorincz06]
(理論 ) CEM 的一個弱點是精英集合中的元素可能已經(jīng)碰巧選中窗声,如幸運地成為
證明如果
在隨機情形下幽邓,什么目標(biāo)函數(shù)讓 CEM 收斂到一個局部最優(yōu)值點炮温?
你能不能設(shè)計出一個算法通過在多個不同的
更多的信息參見[GoschinWeinsteinLittman13]
2.2 筆記
你可能會想為何 CEM 叫這個名字牵舵。該名稱最早來自積分估計的一種方法柒啤,你可以參考[Owen14]的第 10 章。
3 策略梯度
策略梯度算法通過梯度下降進(jìn)行優(yōu)化畸颅。就是說担巩,通過重復(fù)計算策略的期望回報梯度的噪聲估計,然后按照梯度方向來更新策略没炒。該方法比其他 RL 方法(如 Q-學(xué)習(xí))更有利主要是我們可以直接優(yōu)化感興趣的量——策略的期望總收益涛癌。該類方法由于梯度估計的高方差長期被認(rèn)為不太實用,直到最近送火,[SchulmanEtAl15]和 [MnihEtAl16]等工作展示了神經(jīng)網(wǎng)絡(luò)策略在困難的控制問題上的采用策略梯度方法的成功應(yīng)用拳话。
3.1 直覺解釋
你可能比較熟悉概率模型的監(jiān)督學(xué)習(xí),其中目標(biāo)是最大化給定輸入(x) 時的輸出 (y) 的對數(shù)概率种吸。
策略梯度方法通常需要假設(shè)一個隨機策略弃衍,該策略給出了對每個狀態(tài) (s) 的行動 (a) 上的概率分布;我們將此分布寫作
如果我們知道對每個狀態(tài)正確的行動
然而,我們并不知道正確的行動猖败。相反速缆,我們會嘗試對行動好壞進(jìn)行粗略的猜測,試著去增加好的行動的概率恩闻。更加具體地講艺糜,假設(shè)我們剛收集完 agent 和環(huán)境一個 agent 和環(huán)境回合的交互,所以我們有了一個狀態(tài)、行動和收益的序列:
使用這個梯度的估計
盡管我們現(xiàn)在還沒有給出對上述策略梯度公式的數(shù)學(xué)上的驗證求厕,但實際上已經(jīng)給出了一個對策略梯度的無偏估計。
策略梯度定義為右式的策略期望總收益的梯度扰楼。
如果我們用充足的樣本(充足的回合)呀癣,那么就可以任意精度計算出策略梯度。然而弦赖,估計量
有一系列形如下式的策略梯度估計量:
其中
下面的有利度估計量更有效率旁仿,也更常見:
其中
3.2 更加形式化的解釋
推導(dǎo)策略梯度公式的最簡單的方式是使用打分函數(shù)梯度估計量,這是估計期望梯度的通用方法滩褥。我們接著將此想法用在計算期望收益的梯度上病蛉。假設(shè)
這個方程是可以根據(jù)將期望轉(zhuǎn)寫成積分形式獲得的:
使用這個估計量探熔,我們就可以采樣
為了在強化學(xué)習(xí)中使用這個思想巧勤,我們需要用到隨機策略愿卸。這意味著在每個狀態(tài)
在后續(xù)討論中发钝,軌跡
然后打分函數(shù)估計量給出了
![\nabla_\theta E_{\tau} [R(\tau)] = E_{\tau} \nabla_\theta \log p(\tau|\theta)R(\tau)
我們只需要采樣軌跡 $\tau$,然后使用上面的公式計算策略梯度估計量≡⒌鳎現(xiàn)在锌唾,我們需要顯式地寫出
這里
這個公式非常厲害载萌,因為我們可以不許知道系統(tǒng)動態(tài)知識(由轉(zhuǎn)換概率
因此搀突,通過一些數(shù)學(xué)推理刀闷,我們推導(dǎo)出一個更好(更低方差)的策略梯度估計。令
如果軌跡非常長,那么上述公式會有較大的方差绊寻。因此人們通常使用一個折扣因子花墩,這樣可以引入偏差來降低方差。這時澄步,策略梯度有偏估計公式就是
其中
3.3 實現(xiàn)注意事項
有一種方便的方法計算策略梯度,就是對許多時間步使用你喜歡的自動微分軟件進(jìn)行批量操作村缸。定義
3.4 參數(shù)化策略
我們已經(jīng)抽象式描述策略為
如果
如果
如果
3.5 練習(xí)
噪矛,包含(不包含)折扣因子和基準(zhǔn)(共有 4 中情形)
將其應(yīng)用在 Swimmer 環(huán)境中
改變問題 1 和 2 的實現(xiàn)量蕊,使用不同的 SGD 變體,包含 momentum艇挨、RMSProp 和 Adam
4 自然策略梯度和信任區(qū)間方法
5 Q-學(xué)習(xí)
(稍微解釋一下上面的表述侧巨,在
本節(jié)會討論學(xué)習(xí) Q-函數(shù)的算法鳍烁。最優(yōu) Q-函數(shù)(
我們可以使用下面的值迭代(value iteration)算法迭代更新 Q-函數(shù),收斂到
繁扎。
Algorithm 2: Q-值迭代
初始化
對
最優(yōu) Q-函數(shù)(即幔荒,最優(yōu)策略的 Q-函數(shù))是更新 (*) 式的不動點,更嚴(yán)格點說锻离,這是一個收縮(contraction)铺峭,其誤差指數(shù)級下降
最優(yōu) Q-函數(shù)可用來引出一個形式——back-up 操作符 T汽纠,將 Q-函數(shù)映射到一個更新版本 TQ 上卫键,定義如下:
這個被定義為 backup 操作符因為它使用向前看一步(對
如果我們知道準(zhǔn)確的轉(zhuǎn)換模型和系統(tǒng)的收益函數(shù),我們就可以僅計算準(zhǔn)確的關(guān)于
因為這是無偏估計枢劝,
注意
Algorithm 3: 基于模擬的 Q-值迭代
初始化
對
在第 n 次迭代時該選擇什么策略
算法 3 是一種批式算法:批式強化學(xué)習(xí)算法在收集數(shù)據(jù)和使用這個數(shù)據(jù)執(zhí)行參數(shù)更新兩步交替進(jìn)行告嘲。這和在線算法有所不同错维,在線算法在數(shù)據(jù)收集的同時增量更新奖地。我們能不能將 [站外圖片上傳中……(207)] 設(shè)計一個在線算法?可以赋焕,但是我們需要作出小的調(diào)整來限制在每個迭代對 Q 更新的大胁未酢(現(xiàn)在只有一個時間步)。通常隆判,我們通過混合有噪聲的估計和當(dāng)前值計算目標(biāo) Q-值犬庇,混合比例 [站外圖片上傳中……(208)]。
[站外圖片上傳中……(209)]
[站外圖片上傳中……(210)]
這個算法稱為 Watkins Q-學(xué)習(xí)算法[WatkinsDayan92]侨嘀。給定合適的將
前面我們討論了 Q-函數(shù) [站外圖片上傳中……(213)]。如果狀態(tài)空間和行動空間是離散的(有限集合)闯狱,那么最為直接的方式是使用一個 Q 函數(shù)表煞赢,將 Q-函數(shù)作為一個數(shù)組存放,每個 [站外圖片上傳中……(214)] 對都有一個位置哄孤。而如果狀態(tài)空間巨大或者是無窮的照筑,這顯然是不太現(xiàn)實的選擇,所以我們需要找一個函數(shù)的近似方法瘦陈,如神經(jīng)網(wǎng)絡(luò)凝危,來表示 Q-函數(shù)。
我們記 [站外圖片上傳中……(215)] 為由參數(shù)向量
網(wǎng)絡(luò)以 [站外圖片上傳中……(217)] 為輸入蛾默,以標(biāo)量 Q-值為輸出。
網(wǎng)絡(luò)將
實際情形下,第二種方式工作得更好趁窃,也得到了更加有效的算法牧挣。類比于我們前面對參數(shù)化策略的討論,我們可以定義依賴于行動空間的 Q-函數(shù)的不同的參數(shù)化方式醒陆。
如果
如果
給定該參數(shù)化 Q-函數(shù)折剃,我們可以運行 Q-值迭代算法另假,優(yōu)化的步驟變成:
[站外圖片上傳中……(225)]
這個算法被稱為 神經(jīng)網(wǎng)絡(luò)擬合 Q-迭代(Neural-Fitted Q-Iteration) [Riedmiller05]。
最近怕犁,Mnih 等人提出了這個算法的變體版本边篮,將數(shù)據(jù)采集納入 Q-函數(shù)更新[MnihEtAl13]。他們使用了一個 目標(biāo)網(wǎng)絡(luò)奏甫,類似于前面的 Q-函數(shù) [站外圖片上傳中……(226)]戈轿。他們還使用了一個 回放緩沖區(qū) (replay buffer),包含最近一些 Q-函數(shù)收集到的數(shù)據(jù)阵子,而在算法 3 中思杯,只是使用了 [站外圖片上傳中……(227)] 采集的數(shù)據(jù)來擬合 [站外圖片上傳中……(228)]。
5.1 練習(xí)
實現(xiàn) Watkins Q-學(xué)習(xí)算法挠进,應(yīng)用在 toy_text gym 環(huán)境中色乾。你還可以使用策略迭代來計算最優(yōu)解,比較一下性能领突。(注意這些環(huán)境給出了方便的轉(zhuǎn)換模型和收益函數(shù))
應(yīng)用批式 Q-值迭代算法或者 DQN 在 classic_control 環(huán)境中暖璧。
應(yīng)用批式 Q-值迭代算法或者 DQN 在 mujoco 環(huán)境中,使用一個二次的 Q-函數(shù)君旦。
6 引用
[BertsekasVol1]
Bertsekas, Dynamic Programming and Optimal Control, Volume I.
[SzitaLorincz06]
(1, 2) Szita and Lorincz, Learning Tetris with the Noisy Cross-Entropy Method.
[SchulmanEtAl15]
(1, 2) Schulman, Moritz, Levine, Jordan, Abbeel, High-Dimensional Continuous Control Using Generalized Advantage Estimation. http://arxiv.org/abs/1506.02438
[MnihEtAl13]
Mnih et al., Playing Atari with Deep Reinforcement Learning.http://arxiv.org/abs/1312.5602
[MnihEtAl16]
Mnih et al., Asynchronous Methods for Deep Reinforcement Learning.http://arxiv.org/abs/1602.01783
[Owen14]
Owen, Monte Carlo theory, methods and examples. http://statweb.stanford.edu/~owen/mc
[GoschinWeinsteinLittman13]
Goschin, Weinstein, Littman, The Cross-Entropy Method Optimizes for Quantileshttp://jmlr.org/proceedings/papers/v28/goschin13.pdf
[GuEtAl16]
Gu et al., Continuous Deep Q-Learning with Model-based Accelerationhttp://arxiv.org/abs/1603.00748
[Riedmiller05]
Riedmiller. Neural fitted Q iteration—first experiences with a data efficient neural reinforcement learning method.
[JaaJorSingh94]
Jaakkola, Jordan, and Singh. On the convergence of stochastic iterative dynamic programming algorithms.
[WatkinsDayan92]
Watkins, Dayan. Q-learning.
[KakadeLangford02]
Kakade & Langford, Approximately optimal approximate reinforcement learning
[Kakade01]
Kakade, Sham. A Natural Policy Gradient