https://hunch.net/~beygel/deep_rl_tutorial.pdf
https://icml.cc/2016/tutorials/deep_rl_tutorial.pdf
Tutorial: Deep Reinforcement Learning
David Silver, Google DeepMind
教程:深度強(qiáng)化學(xué)習(xí)
Reinforcement Learning in a nutshell
RL is a general-purpose framework for decision-making
RL is for an agent with the capacity to act
Each action in?uences the agent’s future state
Success is measured by a scalar reward signal
Goal: select actions to maximise future reward
簡(jiǎn)而言之强重,強(qiáng)化學(xué)習(xí)
強(qiáng)化學(xué)習(xí)是做出決策的通用框架
強(qiáng)化學(xué)習(xí)適用于具有行動(dòng)能力的代理
每個(gè)動(dòng)作都會(huì)影響代理的未來(lái)狀態(tài)
成功由標(biāo)量獎(jiǎng)勵(lì)信號(hào)衡量
目標(biāo):選擇行動(dòng)以最大化未來(lái)的回報(bào)
Deep Learning in a nutshell
DL is a general-purpose framework for representation learning
Given an objective
Learn representation that is required to achieve objective
Directly from raw inputs
Using minimal domain knowledge
簡(jiǎn)而言之,深度學(xué)習(xí)
深度學(xué)習(xí)是用于表示學(xué)習(xí)的通用框架
給定一個(gè)目標(biāo)
學(xué)習(xí)為了實(shí)現(xiàn)目標(biāo)所需要的表達(dá)
直接從原始輸入
使用最少的領(lǐng)域知識(shí)
Deep Reinforcement Learning: AI = RL + DL
We seek a single agent which can solve any human-level task
RL de?nes the objective
DL gives the mechanism
RL + DL = general intelligence
深度強(qiáng)化學(xué)習(xí):人工智能 = 強(qiáng)化學(xué)習(xí) + 深度學(xué)習(xí)
我們尋找一個(gè)單一的代理垛叨,它可以解決任何人類級(jí)別的任務(wù)
強(qiáng)化學(xué)習(xí)定義了目標(biāo)
深度學(xué)習(xí)給出了機(jī)制
強(qiáng)化學(xué)習(xí) + 深度學(xué)習(xí) = 一般智力
Examples of Deep RL @DeepMind
Play games: Atari, poker, Go, ...
Navigate worlds: 3D worlds, Labyrinth, ...
Control physical systems: manipulate, walk, swim, ...
Interact with users: recommend, optimise, personalise, ...
深度強(qiáng)化學(xué)習(xí)的示例 @DeepMind
玩游戲:Atari四苇,撲克释树,Go叙量,...
導(dǎo)航世界:3D世界烛卧,迷宮晃痴,...
控制物理系統(tǒng):操縱曹铃,行走缰趋,游泳,...
與用戶互動(dòng):推薦陕见,優(yōu)化秘血,個(gè)性化,...
Introduction to Deep Learning 深度學(xué)習(xí)介紹
Deep Representations
A deep representation is a composition of many functions
深度表示是許多函數(shù)的組合
Its gradient can be backpropagated by the chain rule
它的梯度可以用鏈?zhǔn)椒▌t反向傳播
Deep Neural Network 深度神經(jīng)網(wǎng)絡(luò)
A deep neural network is typically composed of:
Linear transformations
Non-linear activation functions
A loss function on the output, e.g.
Mean-squared error
Log likelihood
深度神經(jīng)網(wǎng)絡(luò)通常包括:
線性變換
非線性激活函數(shù)
在輸出的損失函數(shù)
均方誤差
對(duì)數(shù)似然
通過(guò)隨機(jī)梯度下降訓(xùn)練神經(jīng)網(wǎng)絡(luò)
Sample gradient of expected loss
預(yù)期損失的樣本梯度
~
Adjust w down the sampled gradient
調(diào)整w向下的采樣梯度
沿采樣梯度向下調(diào)整w
Weight Sharing 權(quán)重共享
Recurrent neural network shares weights between time-steps
循環(huán)神經(jīng)網(wǎng)絡(luò)在時(shí)間步長(zhǎng)之間共享權(quán)重
Convolutional neural network shares weights between local regions
卷積神經(jīng)網(wǎng)絡(luò)在局部區(qū)域之間共享權(quán)重
Introduction to Reinforcement Learning 強(qiáng)化學(xué)習(xí)介紹
Many Faces of Reinforcement Learning
強(qiáng)化學(xué)習(xí)的許多方面
Agent and Environment 代理與環(huán)境
At each step
the agent:
Executes action
Receives observation
Receives scalar reward
The environment:
Receives action
Emits observation
Emits scalar reward
State 狀態(tài)
Experience is a sequence of observations, actions, rewards
The state is a summary of experience
In a fully observed environment
Major Components of an RL Agent 強(qiáng)化學(xué)習(xí)代理的主要組件
An RL agent may include one or more of these components:
Policy: agent’s behaviour function
Value function: how good is each state and/or action
Model: agent’s representation of the environment
強(qiáng)化學(xué)習(xí)代理可以包括以下一個(gè)或多個(gè)組件:
policy:代理的行為函數(shù)
價(jià)值函數(shù):每個(gè)狀態(tài)和/或動(dòng)作有多好
模型:代理對(duì)環(huán)境的表示
Policy
A policy is the agent’s behaviour
It is a map from state to action:
Deterministic policy:
Stochastic policy:
policy是代理的行為
這是從狀態(tài)到行動(dòng)的映射:
確定的policy:
隨機(jī)的policy:
Value Function
A value function is a prediction of future reward
“How much reward will I get from action a in state s?”
Q-value function gives expected total reward
價(jià)值函數(shù)是對(duì)未來(lái)獎(jiǎng)勵(lì)的預(yù)測(cè)
“在狀態(tài)s下评甜,代理將從行動(dòng)a中獲得多少獎(jiǎng)勵(lì)灰粮?”
Q值函數(shù)給出預(yù)期的總回報(bào)
from state s and action
under policy
with discount factor
Value functions decompose into a Bellman equation
價(jià)值函數(shù)分解為Bellman方程
Optimal Value Functions
An optimal value function is the maximum achievable value
最佳價(jià)值函數(shù)是最大可實(shí)現(xiàn)值
Once we have we can act optimally,
一旦有了,我們就可以采取最佳行動(dòng)忍坷,
Optimal value maximises over all decisions. Informally:
最優(yōu)價(jià)值使所有決策最大化粘舟。 Informally:
Formally, optimal values decompose into a Bellman equation
Formally,最優(yōu)值分解為Bellman方程
Model
Model is learnt from experience
Acts as proxy for environment
Planner interacts with model
e.g. using lookahead search
模型是從經(jīng)驗(yàn)中學(xué)習(xí)得到的
作為環(huán)境的代理
計(jì)劃者與模型交互
例如佩研,使用前瞻性搜索
Approaches To Reinforcement Learning
強(qiáng)化學(xué)習(xí)的方法
Value-based Reinforcement Learning
Estimate the optimal value function
This is the maximum value achievable under any policy
Policy-based Reinforcement Learning
Search directly for the optimal policy
This is the policy achieving maximum future reward
Model-based Reinforcement Learning
Build a model of the environment
Plan (e.g. by lookahead) using model
基于value的強(qiáng)化學(xué)習(xí)
估計(jì)最優(yōu)value函數(shù)
這是任何policy下可實(shí)現(xiàn)的最大value
基于policy的強(qiáng)化學(xué)習(xí)
直接搜索最優(yōu)policy
這是實(shí)現(xiàn)最大未來(lái)獎(jiǎng)勵(lì)的policy
基于模型的強(qiáng)化學(xué)習(xí)
建立環(huán)境模型
使用模型計(jì)劃(例如蓖乘,by lookahead)
Deep Reinforcement Learning
Use deep neural networks to represent
使用深度神經(jīng)網(wǎng)絡(luò)來(lái)表示
Value function
Policy
Model
Optimise loss function by stochastic gradient descent
利用隨機(jī)梯度下降優(yōu)化損失函數(shù)
model-free 不理解環(huán)境
從環(huán)境中得到反饋然后從中學(xué)習(xí)
Q learning, Sarsa, Policy Gradients
model-based 理解環(huán)境
為真實(shí)世界建模,多出了一個(gè)虛擬環(huán)境
Policy-Based 基于策略
通過(guò)感官分析所處的環(huán)境, 直接輸出下一步要采取的各種動(dòng)作的概率, 然后根據(jù)概率采取行動(dòng)
能選取連續(xù)的動(dòng)作
Policy Gradients
Value-Based 基于價(jià)值
輸出是所有動(dòng)作的價(jià)值, 選擇價(jià)值最高的動(dòng)作
不能選取連續(xù)的動(dòng)作
Q learning
Sarsa
Actor-Critic結(jié)合這兩類方法的優(yōu)勢(shì)
actor 會(huì)基于概率做出動(dòng)作
critic 會(huì)對(duì)做出的動(dòng)作給出動(dòng)作的價(jià)值
在原有的Policy Gradients上加速了學(xué)習(xí)過(guò)程.
回合更新 monte carlo
游戲開(kāi)始后, 要等待游戲結(jié)束, 然后再總結(jié)這一回合中的所有轉(zhuǎn)折點(diǎn), 再更新行為準(zhǔn)則
Monte-carlo learning 和基礎(chǔ)版的Policy Gradients等
單步更新 temporal difference 時(shí)間差分
在游戲進(jìn)行中每一步都在更新, 不用等待游戲的結(jié)束, 這樣就能邊玩邊學(xué)習(xí)了
Q learning, Sarsa , 升級(jí)版的Policy Gradients等
在線學(xué)習(xí) on policy 同策略
代理和環(huán)境交互過(guò)程中所選擇的動(dòng)作=計(jì)算評(píng)估函數(shù)的過(guò)程中選擇的動(dòng)作
必須本人在場(chǎng), 并且一定是本人邊玩邊學(xué)習(xí)
Sarsa 韧骗、Sarsa lambda
離線學(xué)習(xí) off policy 異策略
代理和環(huán)境交互過(guò)程中所選擇的動(dòng)作≠計(jì)算評(píng)估函數(shù)的過(guò)程中選擇的動(dòng)作
可以選擇自己玩, 也可以選擇看著別人玩, 通過(guò)看別人玩來(lái)學(xué)習(xí)別人的行為準(zhǔn)則
同樣是從過(guò)往的經(jīng)驗(yàn)中學(xué)習(xí), 但是這些過(guò)往的經(jīng)歷沒(méi)必要是自己的經(jīng)歷, 任何人的經(jīng)歷都能被學(xué)習(xí).
不必要邊玩邊學(xué)習(xí), 可以白天先存儲(chǔ)下來(lái)玩耍時(shí)的記憶, 然后晚上通過(guò)離線學(xué)習(xí)來(lái)學(xué)習(xí)白天的記憶
Q learning嘉抒、Deep-Q-Network
monte carlo model free
強(qiáng)化學(xué)習(xí)入門 第三講 monte carlo
機(jī)器學(xué)習(xí) 強(qiáng)化學(xué)習(xí) 北京理工大學(xué)
不清楚markov決策過(guò)程的真實(shí)狀態(tài)轉(zhuǎn)移概率或即時(shí)獎(jiǎng)勵(lì)
在現(xiàn)實(shí)的強(qiáng)化學(xué)習(xí)任務(wù)中,環(huán)境的轉(zhuǎn)移概率袍暴、獎(jiǎng)勵(lì)函數(shù)往往很難得知些侍, 甚至很難得知環(huán)境中有多少狀態(tài)。
免模型學(xué)習(xí):學(xué)習(xí)算法不再依賴于環(huán)境建模
通常情況下某個(gè)狀態(tài)的價(jià)值=在多個(gè)episode中以該狀態(tài)算得到的所有獎(jiǎng)勵(lì)的平均
每條episode:一條從起始狀態(tài)到結(jié)束狀態(tài)的經(jīng)歷
使用多次采樣政模,然后求取平均累計(jì)獎(jiǎng)賞作為期望累計(jì)獎(jiǎng)賞的近似岗宣。
First-visit
在計(jì)算狀態(tài)s處的值函數(shù)時(shí),只利用每個(gè)episode中第一次訪問(wèn)到狀態(tài)s時(shí)返回的值
Every-visit
在計(jì)算狀態(tài)s處的值函數(shù)時(shí)淋样,利用所有訪問(wèn)到狀態(tài)s時(shí)的獎(jiǎng)勵(lì)返回
每進(jìn)入一個(gè)episode
每碰到一次耗式,可以計(jì)算平均價(jià)值
每個(gè)episode結(jié)束才能更新
需要大量episode才比較準(zhǔn)確
需要采樣一個(gè)完整的軌跡來(lái)更新值函數(shù),效率較 低趁猴,此外該算法沒(méi)有充分利用強(qiáng)化學(xué)習(xí)任務(wù)的序貫決策結(jié)構(gòu)刊咳。
直接對(duì)狀態(tài)動(dòng)作值函數(shù)Q(s,a)進(jìn)行估計(jì),每采樣一條軌跡儡司,就根據(jù)軌跡中的所有“狀態(tài)-動(dòng)作”利用下面的公式對(duì)來(lái)對(duì)值函數(shù)進(jìn)行更新娱挨。
??(??,??)=(??(??,??) ???????????(??,??) +?? ) / (??????????(??,??) + 1)
temporal difference 時(shí)間差分 model free
強(qiáng)化學(xué)習(xí)入門 第四講 時(shí)間差分
機(jī)器學(xué)習(xí) 強(qiáng)化學(xué)習(xí) 北京理工大學(xué)
當(dāng)n=1時(shí),temporal difference
當(dāng)n=正無(wú)窮時(shí)捕犬,monte carlo
n步temporal difference
當(dāng)=0時(shí)跷坝,temporal difference
Value-Based 深度強(qiáng)化學(xué)習(xí)
Q-Networks
Represent value function by Q-network with weights w
用權(quán)重為w的Q網(wǎng)絡(luò)表示value函數(shù)
Q-Learning
Optimal Q-values should obey Bellman equation
最優(yōu)Q值應(yīng)遵循Bellman方程
把右手邊作為一個(gè)目標(biāo)
Minimise MSE loss by stochastic gradient descent
通過(guò)隨機(jī)梯度下降酵镜,最小化均方誤差損失
Converges to using table lookup representation
使用表查找表示形式收斂到
But diverges using neural networks due to:
- Correlations between samples
- Non-stationary targets
但是由于以下原因,使用神經(jīng)網(wǎng)絡(luò)不收斂:
- 樣本之間的相關(guān)性
- 非平穩(wěn)目標(biāo)
Q-Learning
ε貪心
如果0<p<ε柴钻,那么隨機(jī)action
如果ε<p<1淮韭,那么
??(??,??) = , 以概率?????
??(??,??) = 隨機(jī)從??中選取動(dòng)作, 以概率??
Q值表
state為行,action為列贴届,reward為元素
學(xué)習(xí)率*(Q的真實(shí)值 - Q的估計(jì)值)
如果學(xué)習(xí)率越大靠粪,那么新估計(jì)值代替舊估計(jì)值的程度也越大
任意初始化Q(s,a)
for 每個(gè)episode
初始化s
重復(fù) episode中的每一步
從s中選擇a,使用從Q中得到的策略粱腻,比如ε貪心
采取動(dòng)作a庇配,觀察到R和s_
Q(s,a)←Q(s,a)+alpha*[R+gamma*max(Q(s_, a_))-Q(s,a)]
s←s_
直到s終止
endfor
off policy 異策略
在選擇動(dòng)作執(zhí)行的時(shí)候采取的策略 ≠ 在更新Q表的時(shí)候采取的策略
行動(dòng)策略是ε-greedy策略
更新Q表的策略是貪婪策略
sarsa state-action-reward-state'-action'
任意初始化Q(s,a)
for 每個(gè)episode
初始化s
從s中選擇a,使用從Q中得到的策略绍些,比如ε貪心
重復(fù) episode中的每一步
采取動(dòng)作a捞慌,觀察到R和s_
從s_中選擇a_,使用從Q中得到的策略柬批,比如ε貪心
Q(s,a)←Q(s,a)+alpha*[R+gamma*Q(s_, a_)-Q(s,a)]
s←s_; a←a_
直到s終止
endfor
on policy 同策略
在選擇動(dòng)作執(zhí)行的時(shí)候采取的策略 = 在更新Q表的時(shí)候采取的策略
行動(dòng)策略是ε-greedy策略
評(píng)估策略是ε-greedy策略
Deep Q-Networks (DQN): Experience Replay
機(jī)器學(xué)習(xí) 強(qiáng)化學(xué)習(xí) 北京理工大學(xué)
利用神經(jīng)網(wǎng)絡(luò)近似模擬函數(shù)Q(s,a)啸澡,輸入是問(wèn)題的狀態(tài),輸出是每個(gè)動(dòng)作a對(duì)應(yīng)的Q值氮帐,然后依據(jù)Q值大小選擇對(duì)應(yīng)狀態(tài)執(zhí)行的動(dòng)作嗅虏,以完成控制。
學(xué)習(xí)流程:
- 狀態(tài)s輸入上沐,獲得所有動(dòng)作對(duì)應(yīng)的Q值Q(s,a)皮服;
- 選擇對(duì)應(yīng)Q值最大的動(dòng)作a′并執(zhí)行;
- 執(zhí)行后環(huán)境發(fā)生改變参咙,并能夠獲得環(huán)境的獎(jiǎng)勵(lì)r龄广;
- 利用獎(jiǎng)勵(lì)r更新Q(s,a′)--強(qiáng)化學(xué)習(xí)
利用新的Q(s,a′)更新網(wǎng)絡(luò)參數(shù)—監(jiān)督學(xué)習(xí)
初始化回放記憶D,容量N蕴侧。用于存放采集的(s_t,a_t,r_t,s_{t+1})狀態(tài) 轉(zhuǎn)移過(guò)程择同,用于網(wǎng)絡(luò)參數(shù) 的訓(xùn)練
初始化動(dòng)作值函數(shù)Q,隨機(jī)權(quán)重θ净宵。隨機(jī)初始化神經(jīng)網(wǎng)絡(luò)的參數(shù)
初始化target動(dòng)作值函數(shù)Q_敲才,權(quán)重θ_=θ
for episode=1~M
初始化序列s_1={x_1}和預(yù)處理序列φ_1=φ(s_1)
獲取環(huán)境的初始狀態(tài)(x是采集的圖像,使用圖像作為agent的狀態(tài)择葡;預(yù)處理過(guò)程是使用幾張圖像代表當(dāng)前狀態(tài)紧武,這里可以先忽略掉)
for t=1~T
ε貪心選擇a_t(使用ε概率隨機(jī)選取動(dòng)作或使用1- ε的概率根據(jù)神經(jīng)網(wǎng)絡(luò)的輸出選擇動(dòng)作a_t=max_a Q(s_t,a; θ_i))
采取動(dòng)作a_t,觀察到r_t和x_{t+1}
設(shè)置s_{t+1}=s_t,a_t,x_{t+1}和預(yù)處理φ_{t+1}=φ(s_{t+1})
保存transition(φ_t,a_t,r_t,φ_{t+1})在D中
從D中采樣transition(φ_j,a_j,r_j,φ_{j+1})的隨機(jī)minibatch
更新?tīng)顟B(tài)值函數(shù)的值
如果episode在j+1步終止刁岸,那么設(shè)置y_j=r_j
如果episode在j+1步不終止脏里,那么設(shè)置y_j=r_j+gamma*max(Q_(φ_{j+1},a_;θ_))
使用監(jiān)督學(xué)習(xí)方法更新網(wǎng)絡(luò)的參數(shù)。執(zhí)行一個(gè)梯度下降步在(y_j - Q_(φ_j,a_j;θ))^2虹曙,關(guān)于網(wǎng)絡(luò)參數(shù)θ
每C步重置Q_=Q
endfor
endfor
DQN計(jì)算每個(gè)操作的期望值迫横,然后選擇可以獲得最大期望值的操作。它吸收了深度學(xué)習(xí)網(wǎng)絡(luò)的特征酝碳,因此可以作為深度自然網(wǎng)絡(luò)進(jìn)行訓(xùn)練矾踱,并提高了Q學(xué)習(xí)的學(xué)習(xí)能力。
To remove correlations, build data-set from agent’s own experience
要消除相關(guān)性疏哗,根據(jù)代理自身的經(jīng)驗(yàn)構(gòu)建數(shù)據(jù)集
Sample experiences from data-set and apply update
從數(shù)據(jù)集中采樣經(jīng)驗(yàn)并應(yīng)用更新
To deal with non-stationarity, target parameters w? are held ?xed
為了處理非平穩(wěn)性呛讲,將目標(biāo)參數(shù)固定
深度強(qiáng)化學(xué)習(xí) in Atari
End-to-end learning of values from pixels s
Input state s is stack of raw pixels from last 4 frames
Output is for 18 joystick/button positions
Reward is change in score for that step
從像素s端到端學(xué)習(xí)值
輸入狀態(tài)s是最近4幀的原始像素的堆棧
輸出為18個(gè)操縱桿/按鈕位置的
獎(jiǎng)勵(lì)是該步驟得分的變化
Network architecture and hyperparameters ?xed across all games
固定在所有游戲中的網(wǎng)絡(luò)體系結(jié)構(gòu)和超參數(shù)
Deep Q-Networks Atari Demo
Deep Q-Networks paper 論文
www.nature.com/articles/nature14236
[1312.5602] Playing Atari with Deep Reinforcement Learning
Deep Q-Networks source code 源代碼
sites.google.com/a/deepmind.com/dqn/
Improvements since Nature DQN
自 Nature DQN 以來(lái)的改進(jìn)
盡管DQN,DDQN返奉,決斗DQN 和 Prioritised replay DQN在離散動(dòng)作問(wèn)題中具有出色的性能贝搁,但它們具有相同的缺點(diǎn),不適合處理連續(xù)動(dòng)作空間芽偏。由于連續(xù)動(dòng)作的動(dòng)作空間很大雷逆,因此無(wú)法計(jì)算每個(gè)動(dòng)作的Q值然后做出動(dòng)作選擇。 當(dāng)環(huán)境變得復(fù)雜而懲罰變得嚴(yán)厲時(shí)污尉,他們將花費(fèi)大量的訓(xùn)練步驟來(lái)獲得最佳解決方案膀哲。
Double Deep Q-Networks
[1509.06461] Deep Reinforcement Learning with Double Q-learning
Q-Learning 中有 Qmax,Qmax 會(huì)導(dǎo)致 Q現(xiàn)實(shí) 當(dāng)中的過(guò)估計(jì) (overestimate)被碗。在實(shí)際問(wèn)題中某宪,可能會(huì)發(fā)現(xiàn)DQN 的Q 值都超級(jí)大。這就是出現(xiàn)了 overestimate锐朴。
Double DQN對(duì)每個(gè)變量使用兩個(gè)估計(jì)網(wǎng)絡(luò)來(lái)解決DQN的過(guò)估計(jì)問(wèn)題兴喂。而且可以加快“Q”網(wǎng)絡(luò)的融合。 在某些離散問(wèn)題上焚志,它確實(shí)具有出色的性能衣迷。
一個(gè)Q網(wǎng)絡(luò)用于選擇動(dòng)作,另一個(gè)Q網(wǎng)絡(luò)用于評(píng)估動(dòng)作娩嚼,交替工作蘑险,解決upward-bias問(wèn)題。
工作中如果有double-check岳悟,犯錯(cuò)的概率就能平方級(jí)別下降佃迄。
Remove upward bias caused by
Current Q-network w is used to select actions
Older Q-network w? is used to evaluate actions
消除由引起的向上偏差
當(dāng)前的Q網(wǎng)絡(luò)w用于選擇動(dòng)作
舊的Q網(wǎng)絡(luò)w?用于評(píng)估動(dòng)作
莫煩
兩個(gè)網(wǎng)絡(luò)有相同的結(jié)構(gòu),但內(nèi)部的參數(shù)更新卻有時(shí)差
因?yàn)樯窠?jīng)網(wǎng)絡(luò)預(yù)測(cè)Qmax本來(lái)就有誤差贵少,每次也向著最大誤差的Q現(xiàn)實(shí)改進(jìn)神經(jīng)網(wǎng)絡(luò)呵俏,就是因?yàn)檫@個(gè)Qmax導(dǎo)致了overestimate。
Double DQN的想法:引入另一個(gè)神經(jīng)網(wǎng)絡(luò)來(lái)抵消一些最大誤差的影響
DQN中有兩個(gè)神經(jīng)網(wǎng)絡(luò)滔灶,所以用Q估計(jì)的神經(jīng)網(wǎng)絡(luò)估計(jì)Q現(xiàn)實(shí)中Qmax(s',a')的最大動(dòng)作值普碎。然后用這個(gè)被Q估計(jì)估計(jì)出來(lái)的動(dòng)作來(lái)選擇Q現(xiàn)實(shí)中的Q(s')
有兩個(gè)神經(jīng)網(wǎng)絡(luò): Q_eval (Q估計(jì)中的), Q_next (Q現(xiàn)實(shí)中的)
DQN:Q_next = max(Q_next(s', a_all))
Double DQN:Q_next = Q_next(s', argmax(Q_eval(s', a_all)))
Prioritised replay
[1511.05952] Prioritized Experience Replay
具有Prioritised replay 記憶池,可以有效地學(xué)習(xí)有效信息录平。
Weight experience according to surprise
Store experience in priority queue according to DQN error
根據(jù)驚喜來(lái)對(duì)經(jīng)驗(yàn)確定權(quán)重
根據(jù)DQN錯(cuò)誤將經(jīng)驗(yàn)存儲(chǔ)在優(yōu)先級(jí)隊(duì)列中
Double Learning and Prioritized Experience Replay
replay加速訓(xùn)練過(guò)程麻车,變相增加樣本缀皱,并且能獨(dú)立于當(dāng)前訓(xùn)練過(guò)程中狀態(tài)的影響
莫煩
batch 抽樣的時(shí)候并不是隨機(jī)抽樣, 而是按照 Memory 中的樣本優(yōu)先級(jí)來(lái)抽
用到 TD-error, 也就是 Q現(xiàn)實(shí) - Q估計(jì) 來(lái)規(guī)定優(yōu)先學(xué)習(xí)的程度
如果 TD-error 越大, 就代表我們的預(yù)測(cè)精度還有很多上升空間, 那么這個(gè)樣本就越需要被學(xué)習(xí), 也就是優(yōu)先級(jí) p 越高
每個(gè)樹(shù)枝節(jié)點(diǎn)只有兩個(gè)分叉
每片樹(shù)葉存儲(chǔ)每個(gè)樣本的優(yōu)先級(jí) p
節(jié)點(diǎn)的值是兩個(gè)分叉的和
SumTree 的頂端就是所有 p 的和
抽樣時(shí)將 p 的總和 除以 batch size, 分成(n=sum(p)/batch_size)那么多區(qū)間,
然后在每個(gè)區(qū)間里隨機(jī)選取一個(gè)數(shù)。比如在第區(qū)間[21-28]里選到了24动猬,然后從最頂上的42開(kāi)始向下搜索啤斗。
左邊的child 29>24,那么左邊
左邊的child 13<24赁咙,那么右邊钮莲,并且把24變成變成 24-左邊的child 13=11
左邊的child 12>11,那么左邊彼水,即12當(dāng)做這次選到的priority崔拥,并且也選擇12對(duì)應(yīng)的數(shù)據(jù)。
Duelling network 決斗網(wǎng)絡(luò)
[1511.06581] Dueling Network Architectures for Deep Reinforcement Learning
決斗DQN可以加速Q(mào)網(wǎng)絡(luò)的收斂凤覆。 而且链瓦,與DQN相比,它提高了優(yōu)化的穩(wěn)定性叛赚,并且在實(shí)踐中效果更好澡绩。
Split Q-network into two channels
Action-independent value function
Action-dependent advantage function
將Q網(wǎng)絡(luò)分成兩個(gè)通道
與action無(wú)關(guān)的價(jià)值函數(shù)
與action有關(guān)的優(yōu)勢(shì)函數(shù)
Combined algorithm: 3x mean Atari score vs Nature DQN
組合算法:3x mean Atari score vs Nature DQN
莫煩
將每個(gè)動(dòng)作的 Q 拆分成了 state 的 Value 加上 每個(gè)動(dòng)作的 Advantage
因?yàn)橛袝r(shí)候在某種 state, 無(wú)論做什么action, 對(duì)下一個(gè) state 都沒(méi)有多大影響,任何策略都不影響回報(bào)俺附,顯然需要剔除
DQN 神經(jīng)網(wǎng)絡(luò)輸出的是每種動(dòng)作的 Q值
Dueling DQN 神經(jīng)網(wǎng)絡(luò)輸出的是每個(gè)動(dòng)作的 Q值
V(s)與動(dòng)作無(wú)關(guān)肥卡,A(s, a)與動(dòng)作相關(guān),是a相對(duì)s平均回報(bào)的相對(duì)好壞事镣,是優(yōu)勢(shì)步鉴,解決reward-bias問(wèn)題。
強(qiáng)化學(xué)習(xí)中真正關(guān)心的還是策略的好壞璃哟,更關(guān)系的是優(yōu)勢(shì)
General Reinforcement Learning Architecture (Gorila) 通用強(qiáng)化學(xué)習(xí)架構(gòu)
10x faster than Nature DQN on 38 out of 49 Atari games
Applied to recommender systems within Google
在49個(gè)Atari游戲中氛琢,有38個(gè)比Nature DQN快10倍
應(yīng)用于Google內(nèi)的推薦系統(tǒng)
Asynchronous Reinforcement Learning 異步強(qiáng)化學(xué)習(xí)
Exploits multithreading of standard CPU
Execute many instances of agent in parallel
Network parameters shared between threads
Parallelism decorrelates data
Viable alternative to experience replay
Similar speedup to Gorila - on a single machine!
利用標(biāo)準(zhǔn)CPU的多線程
并行執(zhí)行多個(gè)代理實(shí)例
線程之間共享的網(wǎng)絡(luò)參數(shù)
并行去相關(guān)數(shù)據(jù)
經(jīng)驗(yàn)回放的可行替代方案
類似于Gorila的加速,在單臺(tái)機(jī)器上随闪!
Policy-Based 深度強(qiáng)化學(xué)習(xí)
DQN雖然在Atari游戲問(wèn)題中取得了巨大的成功阳似,但適用范圍還是在低維、離散動(dòng)作空間铐伴。
- 如果把連續(xù)動(dòng)作空間離散化撮奏,動(dòng)作空間則會(huì)過(guò)大,極難收斂当宴。劃分本身也帶來(lái)了信息損失畜吊。
- DQN只能給出一個(gè)確定性的action,無(wú)法給出概率值户矢。
Deep Policy Networks
Represent policy by deep network with weights
通過(guò)具有權(quán)重的深度網(wǎng)絡(luò)來(lái)表示policy
or
De?ne objective function as total discounted reward
將目標(biāo)函數(shù)定義為總折扣獎(jiǎng)勵(lì)
Optimise objective end-to-end by SGD
i.e. Adjust policy parameters u to achieve more reward
通過(guò)隨機(jī)梯度下降端到端優(yōu)化目標(biāo)
即調(diào)整policy參數(shù)以獲得更多獎(jiǎng)勵(lì)
Policy Gradients
How to make high-value actions more likely:
如何更可能采取高價(jià)值的行動(dòng):
The gradient of a stochastic policy is given by
隨機(jī)的策略的梯度 is given by
Deterministic Policy Gradient Algorithms
The gradient of a deterministic policy is given by
確定的策略的梯度 is given by
if a is continuous and Q is di?erentiable
如果a是連續(xù)的并且Q是可導(dǎo)的
莫煩
靠獎(jiǎng)勵(lì)來(lái)影響神經(jīng)網(wǎng)絡(luò)反向傳遞
觀測(cè)信息讓神經(jīng)網(wǎng)絡(luò)選擇了左邊的行為玲献,進(jìn)行反向傳遞,使左邊的行為下次被選的可能性增加,但是獎(jiǎng)懲信息表明這次的行為是不好的捌年,那反向傳遞的時(shí)候減小力度瓢娜,動(dòng)作可能性增加的幅度減小。
觀測(cè)信息讓神經(jīng)網(wǎng)絡(luò)選擇了右邊的行為延窜,進(jìn)行反向傳遞恋腕,使右邊的行為下次被選的可能性增加抹锄,但是獎(jiǎng)懲信息表明這次的行為是好的逆瑞,那反向傳遞的時(shí)候加大力度,動(dòng)作可能性增加的幅度增加
policy gradient要輸出不是 action 的 value, 而是具體的那一個(gè) action,跳過(guò)了 value 這個(gè)階段伙单。輸出的這個(gè) action 可以是一個(gè)連續(xù)的值
在 狀態(tài) s 對(duì)所選動(dòng)作 a 的吃驚度:delta(log(Policy(s,a)) * V)
如果Policy(s,a)概率越小,反向的log(Policy(s,a))(即-log(P))反而越大
如果Policy(s,a)很小的情況下,拿到了的R大,也就是大的V,那-delta(log(Policy(s,a)) * V)就更大,表示更吃驚获高。(選了一個(gè)不常選的動(dòng)作,卻發(fā)現(xiàn)原來(lái)它能得到了一個(gè)好的reward,那這次就得對(duì)參數(shù)進(jìn)行一個(gè)大幅修改)
使用loss=-log(prob)*vt當(dāng)做loss
上面提到了兩種形式來(lái)計(jì)算neg_log_prob
第二個(gè)是第一個(gè)的展開(kāi)形式
第一個(gè)形式是在神經(jīng)網(wǎng)絡(luò)分類問(wèn)題中的cross-entropy
使用softmax和神經(jīng)網(wǎng)絡(luò)的最后一層logits輸出和真實(shí)標(biāo)簽(self.tf_acts)對(duì)比的誤差。并將神經(jīng)網(wǎng)絡(luò)的參數(shù)按照這個(gè)真實(shí)標(biāo)簽改進(jìn)吻育。
這顯然和一個(gè)分類問(wèn)題沒(méi)有太多區(qū)別念秧。
能將這個(gè)neg_log_prob理解成cross-entropy的分類誤差。
分類問(wèn)題中的標(biāo)簽是真實(shí)x對(duì)應(yīng)的y
Policy gradient中布疼,x是state摊趾,y就是它按照這個(gè)x所做的動(dòng)作號(hào)碼。所以也可以理解成它按照x做的動(dòng)作永遠(yuǎn)是對(duì)的(出來(lái)的動(dòng)作永遠(yuǎn)是正確標(biāo)簽)游两,它也永遠(yuǎn)會(huì)按照這個(gè)“正確標(biāo)簽”修改自己的參數(shù)砾层。
可是事實(shí)是他的動(dòng)作不一定都是“正確標(biāo)簽”
這就是強(qiáng)化學(xué)習(xí)(Policy gradient)和監(jiān)督學(xué)習(xí)(classification)的不同
為了確保這個(gè)動(dòng)作真的是 “正確標(biāo)簽”, loss 在原本的 cross-entropy 形式上乘以 vt(用來(lái)表明這個(gè) cross-entropy 算出來(lái)的梯度的值得信任的程度)
如果 vt 是負(fù)的, 或很小, 那么梯度不值得信任,應(yīng)該向著另一個(gè)方向更新參數(shù)
如果 vt 是正的, 或很大, 那么梯度值得信任
Actor-Critic Algorithm (AC) 演員評(píng)論家算法
演員評(píng)論家有演員網(wǎng)絡(luò)和評(píng)論家網(wǎng)絡(luò)贱案。
演員使用策略梯度函數(shù)肛炮,該函數(shù)負(fù)責(zé)生成動(dòng)作并與環(huán)境交互。
評(píng)論家使用價(jià)值函數(shù)宝踪,該函數(shù)負(fù)責(zé)評(píng)估演員的表現(xiàn)并在下一階段指導(dǎo)演員的行為侨糟。
它可以加速策略梯度函數(shù)的收斂,但這還不足以解決復(fù)雜的問(wèn)題瘩燥。
Estimate value function
Update policy parameters u by stochastic gradient ascent
通過(guò)隨機(jī)梯度上升更新策略參數(shù)u
Asynchronous Advantage Actor-Critic (A3C)
異步優(yōu)勢(shì)演員評(píng)論家(A3C)
[1602.01783] Asynchronous Methods for Deep Reinforcement Learning
不同于經(jīng)驗(yàn)回放秕重,異步優(yōu)勢(shì)演員評(píng)論家在環(huán)境的多個(gè)實(shí)例上異步地并行執(zhí)行多個(gè)代理。這種并行性還decorrelate代理的數(shù)據(jù)厉膀,變成一個(gè)更加平穩(wěn)的過(guò)程中溶耘,因?yàn)樵谌魏谓o定的時(shí)間步,并行代理都會(huì)經(jīng)歷各種不同的狀態(tài)站蝠。
Estimate state-value function
Q-value estimated by an n-step sample
通過(guò)n步樣本估算的Q值
Actor is updated towards target
Critic is updated to minimise MSE with respect to target
評(píng)論家已更新汰具,以最小化關(guān)于目標(biāo)的均方誤差
4x mean Atari score vs Nature DQN
Asynchronous Advantage Actor-Critic (A3C) in Labyrinth
迷宮中的異步優(yōu)勢(shì)演員評(píng)論家(A3C)
End-to-end learning of softmax policy from pixels
Observations are raw pixels from current frame
State is a recurrent neural network (LSTM)
Outputs both value and softmax over actions
Task is to collect apples (+1 reward)
從像素端到端學(xué)習(xí)softmax policy
觀察值是來(lái)自當(dāng)前幀的原始像素
狀態(tài)是循環(huán)神經(jīng)網(wǎng)絡(luò)(LSTM)
輸出動(dòng)作的值和softmax
任務(wù)是收集蘋果(+1獎(jiǎng)勵(lì))
Demo:
www.youtube.com/watch?v=nMR5mjCFZCw&feature=youtu.be
Labyrinth source code (coming soon):
迷宮源代碼(即將推出):
sites.google.com/a/deepmind.com/labyrinth/
Deep Reinforcement Learning with Continuous Actions
具有連續(xù)動(dòng)作的深度強(qiáng)化學(xué)習(xí)
[1509.02971] Continuous control with deep reinforcement learning
How can we deal with high-dimensional continuous action spaces?
Can’t easily compute
Actor-critic algorithms learn without max
Q-values are di?erentiable with respect to a
Deterministic policy gradients exploit knowledge of
我們?nèi)绾翁幚砀呔S連續(xù)動(dòng)作空間?
無(wú)法輕松計(jì)算
演員評(píng)論家算法無(wú)需max學(xué)習(xí)
Q值關(guān)于a是可導(dǎo)的
確定的policy梯度利用的知識(shí)
Deep DPG
深度確定性策略梯度(DDPG)可以使用與演員評(píng)論家相同的超參數(shù)和網(wǎng)絡(luò)結(jié)構(gòu)菱魔,通過(guò)低維觀測(cè)(例如 cartesian coordinates or joint angles)來(lái)學(xué)習(xí)所有任務(wù)的競(jìng)爭(zhēng)策略留荔。
深度確定性策略梯度是一種off-policy算法,其 replay buffer 可能很大,從而使該算法可從一組不相關(guān)的過(guò)渡學(xué)習(xí)中受益聚蝶。
DPG is the continuous analogue of DQN
Experience replay: build data-set from agent’s experience
Critic estimates value of current policy by DQN
DPG是DQN的連續(xù)類似物
經(jīng)驗(yàn)回放:根據(jù)代理的經(jīng)驗(yàn)建立數(shù)據(jù)集
評(píng)論家通過(guò)DQN估算當(dāng)前policy的價(jià)值
To deal with non-stationarity, targets u?,w? are held ?xed
Actor updates policy in direction that improves Q
為了處理非平穩(wěn)性敷扫,將目標(biāo)u?,w?固定
演員更新policy以改善Q
In other words critic provides loss function for actor
換句話說(shuō)限书,評(píng)論家為演員提供損失函數(shù)
DPG in Simulated Physics
Physics domains are simulated in MuJoCo
End-to-end learning of control policy from raw pixels s
Input state s is stack of raw pixels from last 4 frames
Two separate convnets are used for Q and π
Policy π is adjusted in direction that most improves Q
在MuJoCo中模擬物理域
從原始像素s開(kāi)始對(duì)控制策略進(jìn)行端到端學(xué)習(xí)
輸入狀態(tài)s是最近4幀的原始像素堆棧
兩個(gè)單獨(dú)的卷積用于和
policy被調(diào)整奇瘦,朝著最能改善Q的方向
Asynchronous Advantage Actor-Critic (A3C) in Simulated Physics Demo
模擬物理演示中的異步優(yōu)勢(shì)演員評(píng)論家(A3C)
Asynchronous RL is viable alternative to experience replay
Train a hierarchical, recurrent locomotion controller
Retrain controller on more challenging tasks
異步強(qiáng)化學(xué)習(xí)是經(jīng)驗(yàn)回放的可行替代方案
訓(xùn)練一個(gè)分層的循環(huán)運(yùn)動(dòng)控制器
在更具挑戰(zhàn)性的任務(wù)上對(duì)控制器進(jìn)行再次訓(xùn)練
Fictitious Self-Play (FSP)
Can deep RL ?nd Nash equilibria in multi-agent games?
Q-network learns “best response” to opponent policies
By applying DQN with experience replay
c.f. ?ctitious play
深度強(qiáng)化學(xué)習(xí)能在多代理游戲中找到Nash均衡嗎?
Q-Network學(xué)習(xí)對(duì)對(duì)手policy的“最佳反應(yīng)”
通過(guò)將DQN與經(jīng)驗(yàn)回放一起應(yīng)用
c.f. 虛擬play
Policy network learns an average of best responses
policy網(wǎng)絡(luò)學(xué)習(xí)最佳響應(yīng)的平均
Actions a sample mix of policy network and best response
Actions policy網(wǎng)絡(luò)和最佳響應(yīng)的樣本組合
Neural FSP in Texas Hold’em Poker
Heads-up limit Texas Hold’em
NFSP with raw inputs only (no prior knowledge of Poker)
vs SmooCT (3x medal winner 2015, handcrafted knowlege)
德州撲克中的神經(jīng)虛擬Self-Play
Heads-up 限制德州撲克
神經(jīng)虛擬Self-Play僅具有原始輸入(之前沒(méi)有撲克知識(shí))
vs SmooCT(2015年獲得3枚獎(jiǎng)牌验靡,手工知識(shí))
總結(jié)
強(qiáng)化學(xué)習(xí)的策略梯度方法可以很好地解決連續(xù)動(dòng)作問(wèn)題倍宾。
深度確定性策略梯度(DDPG)和異步優(yōu)勢(shì)演員評(píng)論家(A3C)源自演員評(píng)論家(AC)網(wǎng)絡(luò)。
深度確定性策略梯度(DDPG)和異步優(yōu)勢(shì)演員評(píng)論家(A3C)切斷了數(shù)據(jù)相關(guān)性并加速了收斂胜嗓,解決了演員評(píng)論家(AC)的最大問(wèn)題高职。
[1811.02073] QUOTA: The Quantile Option Architecture for Reinforcement Learning
Model-Based 深度強(qiáng)化學(xué)習(xí)
markov 決策過(guò)程(MDP)
機(jī)器學(xué)習(xí) 強(qiáng)化學(xué)習(xí) 北京理工大學(xué)
強(qiáng)化學(xué)習(xí)入門 第一講 MDP
markov property
系統(tǒng)的下一個(gè)狀態(tài)僅與當(dāng)前狀態(tài)
有關(guān),而與以前的狀態(tài)無(wú)關(guān)辞州。
markov 過(guò)程
是一個(gè)二元組(S,P)怔锌,S是有限狀態(tài)集合, P是狀態(tài)轉(zhuǎn)移概率
狀態(tài)轉(zhuǎn)移概率矩陣:
markov 決策過(guò)程(MDP)
元組
S為有限的狀態(tài)集
A為有限的動(dòng)作集
P為狀態(tài)轉(zhuǎn)移概率
R為回報(bào)函數(shù)
為折扣因子变过,用來(lái)計(jì)算累積回報(bào)埃元。
注意,跟markov 過(guò)程不同的是媚狰,markov 決策過(guò)程的狀態(tài)轉(zhuǎn)移概率是包含動(dòng)作的岛杀,即:
s∈S:有限狀態(tài)state集合,s表示某個(gè)特定狀態(tài)
a∈A:有限動(dòng)作action集合哈雏,a表示某個(gè)特定動(dòng)作
T(S, a, S’)~Pr(s’|s,a):狀態(tài)轉(zhuǎn)移模型, 根據(jù)當(dāng)前狀態(tài)s和動(dòng)作a預(yù)測(cè)下一個(gè)狀態(tài)s楞件,這里的Pr表示從s采取行動(dòng)a轉(zhuǎn)移到s’的概率
R(s,a):表示agent采取某個(gè)動(dòng)作后的即時(shí)獎(jiǎng)勵(lì),它還有R(s,a,s’), R(s)等表現(xiàn)形式
Policy π(s)→a:根據(jù)當(dāng)前state來(lái)產(chǎn)生action裳瘪,可表現(xiàn)為a=π(s)或 π(a|s) = P(a|s)土浸,后者表示某種狀態(tài)下執(zhí)行某個(gè)動(dòng)作的概率
強(qiáng)化學(xué)習(xí)的目標(biāo):給定一個(gè)markov 決策過(guò)程,尋找最優(yōu)策略彭羹,即總回報(bào)最大
策略:狀態(tài)到動(dòng)作的映射黄伊。給定狀態(tài)
時(shí),動(dòng)作集上的一個(gè)分布派殷,即
折扣累積回報(bào):
狀態(tài)值函數(shù):
狀態(tài)值函數(shù)V表示執(zhí)行策略π能得到的累計(jì)折扣獎(jiǎng)勵(lì):
狀態(tài)動(dòng)作值函數(shù):
狀態(tài)動(dòng)作值函數(shù)Q(s,a)表示在狀態(tài)s下執(zhí)行動(dòng)作a能得到的累計(jì)折扣獎(jiǎng)勵(lì):
狀態(tài)值函數(shù)的Bellman方程:
最后一個(gè)等號(hào)的補(bǔ)充證明:
狀態(tài)動(dòng)作值函數(shù)的Bellman方程:
策略迭代
策略評(píng)估:
在當(dāng)前的策略中更新各狀態(tài)的值函數(shù)还最,如果達(dá)到迭代次數(shù)或者值函數(shù)收斂就不再迭代
策略更新:
基于當(dāng)前值函數(shù)得到最優(yōu)策略
策略迭代是累計(jì)平均的計(jì)算方式
策略迭代更接近于樣本的真實(shí)分布
狀態(tài)動(dòng)作值函數(shù)
值迭代
每次值迭代都找到讓當(dāng)前值函數(shù)最大的更新方式,并且用這種方式更新值函數(shù)毡惜。直到值函數(shù)不再變化拓轻。
值迭代是單步最好的方式
值迭代速度更快,尤其是在策略空間較大的時(shí)候
最優(yōu)狀態(tài)值函數(shù)的Bellman最優(yōu)方程:
最優(yōu)狀態(tài)動(dòng)作值函數(shù)的Bellman最優(yōu)方程:
在得到最優(yōu)值函數(shù)之后经伙,可以通過(guò)值函數(shù)的值得到狀態(tài)s時(shí)應(yīng)該采取的動(dòng)作a:
探索和利用
探索:做你以前從來(lái)沒(méi)有做過(guò)的事情扶叉,以期望獲得更高的回報(bào)。
利用:做你當(dāng)前知道的能產(chǎn)生最大回報(bào)的事情
ε貪心
如果0<p<ε,那么隨機(jī)action
如果ε<p<1枣氧,那么
Learning Models of the Environment
Demo: generative model of Atari
Challenging to plan due to compounding errors
Errors in the transition model compound over the trajectory
Planning trajectories di?er from executed trajectories
At end of long, unusual trajectory, rewards are totally wrong
環(huán)境的學(xué)習(xí)模型
演示:Atari的生成模型
由于組合錯(cuò)誤溢十,計(jì)劃具有挑戰(zhàn)性
過(guò)渡模型的誤差在軌跡上組合
規(guī)劃軌跡不同于執(zhí)行軌跡
在漫長(zhǎng)而不尋常的發(fā)展軌跡的盡頭,獎(jiǎng)勵(lì)是完全錯(cuò)誤的
Deep Reinforcement Learning in Go
What if we have a perfect model?
e.g. game rules are known
如果我們有一個(gè)完美的模型怎么辦达吞?
例如 游戲規(guī)則是已知的
AlphaGo paper:
www.nature.com/articles/nature16961
AlphaGo resources:
deepmind.com/alphago/
Conclusion
General, stable and scalable RL is now possible
Using deep networks to represent value, policy, model
Successful in Atari, Labyrinth, Physics, Poker, Go
Using a variety of deep RL paradigms
通用张弛,穩(wěn)定和可擴(kuò)展的強(qiáng)化學(xué)習(xí)現(xiàn)在成為可能
使用深層網(wǎng)絡(luò)表示價(jià)值,policy酪劫,模型
在Atari吞鸭,迷宮,物理契耿,撲克瞒大,圍棋中獲得成功
使用多種深度強(qiáng)化學(xué)習(xí)范例