RLDM 強(qiáng)化學(xué)習(xí)教程-David Silver

Neil Zhu,簡(jiǎn)書(shū)ID Not_GOD,University AI 創(chuàng)始人 & Chief Scientist,致力于推進(jìn)世界人工智能化進(jìn)程。制定并實(shí)施 UAI 中長(zhǎng)期增長(zhǎng)戰(zhàn)略和目標(biāo),帶領(lǐng)團(tuán)隊(duì)快速成長(zhǎng)為人工智能領(lǐng)域最專業(yè)的力量。
作為行業(yè)領(lǐng)導(dǎo)者,他和UAI一起在2014年創(chuàng)建了TASA(中國(guó)最早的人工智能社團(tuán)), DL Center(深度學(xué)習(xí)知識(shí)中心全球價(jià)值網(wǎng)絡(luò)),AI growth(行業(yè)智庫(kù)培訓(xùn))等,為中國(guó)的人工智能人才建設(shè)輸送了大量的血液和養(yǎng)分。此外,他還參與或者舉辦過(guò)各類國(guó)際性的人工智能峰會(huì)和活動(dòng),產(chǎn)生了巨大的影響力,書(shū)寫(xiě)了60萬(wàn)字的人工智能精品技術(shù)內(nèi)容,生產(chǎn)翻譯了全球第一本深度學(xué)習(xí)入門書(shū)《神經(jīng)網(wǎng)絡(luò)與深度學(xué)習(xí)》,生產(chǎn)的內(nèi)容被大量的專業(yè)垂直公眾號(hào)和媒體轉(zhuǎn)載與連載。曾經(jīng)受邀為國(guó)內(nèi)頂尖大學(xué)制定人工智能學(xué)習(xí)規(guī)劃和教授人工智能前沿課程,均受學(xué)生和老師好評(píng)。

更好的渲染效果,請(qǐng)到 這里 來(lái)

title: RLDM 強(qiáng)化學(xué)習(xí)教程-David Silver
date: 2016-05-31 10:50:57
tags: [rl, reinforcement learning, deep learning, value iteration, policy gradient, DQN, Bellman equation, actor-critic, DeepMind]


我們能夠?qū)⑸疃葘W(xué)習(xí)應(yīng)用在強(qiáng)化學(xué)習(xí)中。使用深度神經(jīng)網(wǎng)絡(luò)來(lái)端對(duì)端表示值函數(shù)/策略/模型,然后借助隨機(jī)梯度下降進(jìn)行參數(shù)更新。

深度值函數(shù)

Bellman 方程

Bellman 期望方程將值函數(shù) Q^{\pi} 展開(kāi):
Q^\pi(s,a) = \mathbb{E}~[r_{t+1} + \gamma r_{t+1} + \gamma^2r_{t+1} + \dots | s,a] =\mathbb{E}_{s',a'}[r + \gamma Q^\pi(s',a') | s, a]

Bellman 最優(yōu)方程將最優(yōu)值函數(shù) Q^* 展開(kāi):

Q^*(s,a) = \mathbb{E}_{s'} [r + \gamma \max_{a'} Q^*(s',a') | s, a]

策略迭代算法求解了 Bellman 期望方程
Q_{i+1}(s,a) = \mathbb{E}_{s'} [r + \gamma Q_i(s', a') | s,a]

值迭代算法求解了 Bellman 最優(yōu)方程
Q_{i+1} (s, a) = \mathbb{E}_{s',a'} [r + \gamma \max_{a'} Q_i(s',a')|s,a]

非線性 Sarsa 策略迭代

使用參數(shù)為 w 的 Q-network 來(lái)表示值函數(shù)
Q(s, a, w) \approx Q^\pi(s,a)

通過(guò) Q-值的均方誤差來(lái)定義目標(biāo)函數(shù)
\mathcal{L}(w) = \mathbb{E} [(r + \gamma Q(s',a',w) - Q(s,a,w))^2]

我們就有了下面的 Sarsa 梯度
\frac{\partial \mathcal{L}(w)}{\partial w} = \mathbb{E}[(r + \gamma Q(s',a',w) - Q(s,a,w)) \frac{\partial Q(s,a,w)}{\partial w}]

借助 SGD 使用 \frac{\partial \mathcal{L}(w)}{\partial w} 端對(duì)端優(yōu)化目標(biāo)函數(shù)

深度強(qiáng)化學(xué)習(xí)的穩(wěn)定性問(wèn)題

基本的 Q-學(xué)習(xí)采用神經(jīng)網(wǎng)絡(luò)會(huì)出現(xiàn)振蕩或者發(fā)散的情況

數(shù)據(jù)是序列化的
相鄰的樣本是相關(guān)的,非獨(dú)立同分布的
Q-值微小變化會(huì)導(dǎo)致策略迅速變化
策略可能會(huì)振蕩
數(shù)據(jù)的分布會(huì)從一個(gè)極端搖擺到另一個(gè)極端
獎(jiǎng)勵(lì)和 Q-值的范圍未知
基本的 Q-學(xué)習(xí)梯度會(huì)在反響傳播時(shí)變得很大從而不能穩(wěn)定

深度 Q-網(wǎng)絡(luò)(DQN)

DQN 為深度基于值的強(qiáng)化學(xué)習(xí)問(wèn)題提供了一種穩(wěn)定解決方案

使用經(jīng)驗(yàn)回放
將數(shù)據(jù)之間的關(guān)聯(lián)打破,重回獨(dú)立同分布的設(shè)定下
從過(guò)去的策略中學(xué)習(xí)
使用 免策略 Q-學(xué)習(xí)
凍結(jié) 目標(biāo) Q-網(wǎng)絡(luò)
避免振蕩
將 Q-網(wǎng)絡(luò)和目標(biāo)網(wǎng)絡(luò)之間的關(guān)聯(lián)打破
截?cái)嗒?jiǎng)勵(lì)或者正規(guī)化網(wǎng)絡(luò),適應(yīng)到合適的范圍內(nèi)
可以得到健壯的梯度

穩(wěn)定的深度強(qiáng)化學(xué)習(xí)(1):經(jīng)驗(yàn)回放

為了打破關(guān)聯(lián),我們從 agent 自己的經(jīng)驗(yàn)中構(gòu)建數(shù)據(jù)集

根據(jù) \epsilon-貪婪策略采取行動(dòng) a_t
將轉(zhuǎn)換 (s_t, a_t, r_{t+1}, s_{t+1}) 存放在記憶 \mathcal{D}
\mathcal{D} 中隨機(jī)采樣一個(gè)小批量樣本 (s,a,r,a')
優(yōu)化 Q-網(wǎng)絡(luò)和 Q-學(xué)習(xí)目標(biāo)之間的均方誤差 MSE,如
\mathcal{L}(w) = \mathbb{E}_{s,a,r,s' \sim \mathcal{D}} [(r + \gamma \max_{a'}Q(s',a',w) - Q(s,a,w))^2]

穩(wěn)定的深度強(qiáng)化學(xué)習(xí)(2):固定目標(biāo) Q-網(wǎng)絡(luò)

為了避免振蕩,固定在 Q-學(xué)習(xí)目標(biāo)網(wǎng)絡(luò)的參數(shù)

根據(jù)舊的,固定的參數(shù) w^- 計(jì)算 Q-學(xué)習(xí)目標(biāo)函數(shù)
r + \gamma \max_{a'} Q(s',a',w^-)

優(yōu)化 Q-網(wǎng)絡(luò)和 Q-學(xué)習(xí)目標(biāo)之間的均方誤差 MSE
\mathcal{L}(w) = \mathbb{E}_{s,a,r,s'\sim \mathcal{D}} [(r + \gamma \max_{a'}Q(s',a',w^-)-Q(s,a,w))^2]

周期化地更新固定參數(shù) w^- \leftarrow w

穩(wěn)定的深度強(qiáng)化學(xué)習(xí)(3):獎(jiǎng)勵(lì)/值范圍

DQN 截?cái)嗒?jiǎng)勵(lì)在 [-1,+1] 之間
讓 Q-值不會(huì)過(guò)大
確保梯度完好(well-conditioned)
不能夠區(qū)分獎(jiǎng)勵(lì)的大小
更好的方式:正規(guī)化網(wǎng)絡(luò)輸出
比如,通過(guò) batch 正規(guī)化

連續(xù)行動(dòng)上的策略梯度

使用一個(gè)權(quán)重為 u 的深度神經(jīng)網(wǎng)絡(luò) a = \pi(s,u) 來(lái)表示策略
定義目標(biāo)函數(shù)為總折扣獎(jiǎng)勵(lì)
J(u) = \mathbb{E} [r_1 + \gamma r_2 + \gamma^2 r_3 + \dots]

使用 SGD 來(lái)端對(duì)端優(yōu)化目標(biāo)函數(shù)
即,調(diào)整策略參數(shù) u 來(lái)達(dá)到更大的獎(jiǎng)勵(lì)

確定型策略梯度

策略的梯度由下式給出

\frac{\partial J(u)}{\partial u} = \mathbb{E}_s [\frac{\partial Q^\pi(s,a)}{\partial u}] = \mathbb{E}_s [\frac{\partial Q^\pi(s,a)}{\partial a} \frac{\partial \pi(s,u)}{\partial u}]

策略梯度是最大化提升 Q 的方向

確定型 Actor-Critic

使用兩個(gè)網(wǎng)絡(luò)

Actor 是參數(shù)為 u 的策略 \pi(s, u)
s \xrightarrow[u_1]{}\dots\xrightarrow[u_n]{} a

Critic 是參數(shù)為 w 的值函數(shù) Q(s, a, w)
s,a \xrightarrow[w_1]{}\dots\xrightarrow[w_n]{} Q

Critic 為 Actor 提供損失函數(shù)
s \xrightarrow[u_1]{}\dots\xrightarrow[u_n]{} a\xrightarrow[w_1]{}\dots\xrightarrow[w_n]{} Q

梯度從 Critic 到 Actor 反向傳播
\frac{\partial a}{\partial u} \xleftarrow[]{}\dots\xleftarrow[]{} \frac{\partial Q}{\partial a} \xleftarrow[]{} \dots\xleftarrow[]{}

確定型 Actor-Critic:學(xué)習(xí)規(guī)則

Critic 通過(guò) Q-學(xué)習(xí)估計(jì)當(dāng)前策略的值
\frac{\partial \mathcal{L}(w)}{\partial w} = \mathbb{E} [(r + \gamma Q(s',\pi(s'),w)-Q(s,a,w)) \frac{\partial Q(s,a,w)}{\partial w}]

Actor 按照提升 Q 的方向更新策略
\frac{\partial J(u)}{\partial u} = \mathbb{E}_s [\frac{\partial Q(s,a,w)}{\partial a} \frac{\partial \pi(s,u)}{\partial u}]

確定型深度策略梯度(DDPG)

基本的 actor-critic 使用神經(jīng)網(wǎng)絡(luò)會(huì)振蕩或者發(fā)散
DDPG 給出了穩(wěn)定解
對(duì) actor 和 critic 均使用經(jīng)驗(yàn)回放
凍結(jié)目標(biāo)網(wǎng)絡(luò)來(lái)避免振蕩
\frac{\partial \mathcal{L}(w)}{\partial w} = \mathbb{E}_{s,a,r,s'\sim \mathcal{D}} [(r + \gamma Q(s',\pi(s',u^-),w^-)-Q(s,a,w)) \frac{\partial Q(s,a,w)}{\partial w}]

\frac{\partial J(u)}{\partial u} = \mathbb{E}_{s,a,r,s'\sim \mathcal{D}}[\frac{\partial Q(s,a,w)}{\partial a} \frac{\partial \pi(s,u)}{\partial u}]

用于連續(xù)行動(dòng)控制的 DDPG

從原始像素 s 端對(duì)端學(xué)習(xí)控制策略
輸入狀態(tài) s 是前 4 幀的圖像的原始像素的棧
對(duì) Q\pi 兩個(gè)不同的卷積網(wǎng)絡(luò)
在 MuJoCo 中進(jìn)行模擬

基于模型的強(qiáng)化學(xué)習(xí)

學(xué)習(xí)環(huán)境的轉(zhuǎn)移模型:p(r,s'|s,a)

使用轉(zhuǎn)換模型來(lái)進(jìn)行規(guī)劃

使用轉(zhuǎn)移模型來(lái)查找最優(yōu)行動(dòng)

深度模型

使用深度神經(jīng)網(wǎng)絡(luò)來(lái)表示轉(zhuǎn)移模型 p(r,s'|s,a)
定義目標(biāo)函數(shù)來(lái)評(píng)價(jià)模型的好壞
如,重新創(chuàng)建下一狀態(tài)的比特?cái)?shù)(Gregor et al.)
通過(guò) SGD 來(lái)優(yōu)化目標(biāo)函數(shù)

基于模型的強(qiáng)化學(xué)習(xí)的挑戰(zhàn)

綜合誤差

轉(zhuǎn)換模型的誤差會(huì)整個(gè)軌跡上復(fù)合
長(zhǎng)軌跡的結(jié)尾,獎(jiǎng)勵(lì)就完全錯(cuò)了
基于模型的強(qiáng)化學(xué)習(xí)在 Atari 游戲上無(wú)效(到目前為止)
值/策略的深度神經(jīng)網(wǎng)絡(luò)可以隱式地“規(guī)劃”

網(wǎng)絡(luò)的每層執(zhí)行任意的計(jì)算步驟
n-層網(wǎng)絡(luò)可以向前看 n 步
轉(zhuǎn)換模型是否需要?

圍棋中的深度學(xué)習(xí)

Monte-Carlo 搜索

MCTS 模擬未來(lái)軌跡
構(gòu)建巨大的擁有百萬(wàn)位置的向前搜索樹(shù)
目前最佳 19X19 程序使用的是 MCTS
例如,第一個(gè)強(qiáng)大的圍棋程序 MoGo (Gelly et al.)
卷積網(wǎng)絡(luò)

12 層的卷積網(wǎng)絡(luò)可以訓(xùn)練來(lái)預(yù)測(cè)專家走法
簡(jiǎn)單的卷積網(wǎng)絡(luò)(只看一個(gè)位置,沒(méi)有搜索)
等價(jià)于有 10^5 位置的搜索樹(shù)的 MoGo (Maddison et al.)

結(jié)論

強(qiáng)化學(xué)習(xí)為人工智能提供了一個(gè)通用途徑的框架
強(qiáng)化學(xué)習(xí)問(wèn)題可以用端對(duì)端深度學(xué)習(xí)解決
單個(gè) agent 現(xiàn)在可以解決很多挑戰(zhàn)性問(wèn)題
強(qiáng)化學(xué)習(xí) + 深度學(xué)習(xí) = 人工智能

問(wèn)題?

“The only stupid question is the one you never asked.” - Richard Sutton

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容