Deep Q Learning
Generalization
Deep Reinforcement Learning
- 使用深度神經網絡來表示
- 使用隨機梯度下降(SGD)優化loss函數
Deep Q-Networks(DQNs)
- 使用帶權重集w的Q-network來表示狀態-動作價值函數
Q^(s,a;w)≈Q(s,a)
Recall: Action-Value Function Approximation with an Oracle
這是在做control
- Q^π(s;a;w)≈Qπ
- 最小化真實動作-價值函數Qπ和近似動作-價值函數的均方誤差:
J(w)=Eπ[(Qπ(s,a)−Q^(s,a;w))2]
- 使用隨機梯度下降來尋找一個局部最小值
−21∇wJ(w)=Eπ[(Qπ(s,a)−Q^π(s,a;w))∇wQ^π(s,a;w)]
Δ(w)=−21α∇wJ(w)
- 隨機梯度下降(SGD)採樣梯度
Recall: Incremental Model-Free Control Approaches
- 如同策略評估,一個狀態的真實狀態-動作價值函數是未知的所以使用一個目標值來替代
- 在蒙特·卡羅爾方法,使用一個回報Gt作爲一個替代目標
Δw=α(Gt−Q^(st,at;w))∇wQ^(st,at;w)
- 在SARSA,代替真實值的是TD目標r+γ(st+1,at+1;w),它利用了當前的函數近似價值
Δw=α(r+γQ^(st+1,at+1;w)−Q^(st,at;w))∇w(st,at;w)
- 在Q-learning,替代真實值的是TD目標r+γmaxaQ^(st+1,a;w),它利用了當前函數近似價值的最大值
Δw=α(r+γmaxaQ^(st+1,a;w)−Q^(st,at;w))∇wQ^(st,at;w)
DQNs in Atari
DeepMind發表在nature上的文章,源代碼可以在sites.google.com/a/deepmind.com/dqn找到
- 端到端從像素集s中學習Q(s,a)價值
- 輸入狀態s是最後四幀的原始像素集的堆砌
- 輸出是18個控制桿/按鈕位置的Q(s,a)值
- 回報是那一步的得分
- 網絡結構和超參數在所有的遊戲中都是固定的
他們的核心論點是不必在每一個遊戲單獨使用完全不同的網絡架構來做完全不同的超參數調參來獲得成功,這是一個通用的結構足夠針對所有的遊戲去學習好的決策。它的貢獻在於我們嘗試得到某種通用的算法和相關配置,能超越我們其他在強化學習論文上看到的只能在三個普通例子上運行。它在50種遊戲上的嘗試都做到很好。
Q-Learning with Value Function Approximation
- 使用隨機梯度下降最小化MSE損失
- 使用表格查詢表示收斂到最優Q∗(s,a)
- 但是使用VFA的Q-learning會發散
- 兩個擔憂引發了這個問題
- Deep Q-learning(DQN)同時通過下列方式解決這兩項挑戰
- 經驗重播(Experience replay)
- 固定Q-targets
DQNs: 經驗重播
- 爲了有助於移除相關性,從先前的經驗中存儲數據集(稱作重播緩存)D
- 爲進行經驗重播,循環以下步驟:
- (s,a,r,s′)∼D:從數據集中採樣一個tuple
- 計算採樣s的目標價值:r+γmaxa′Q^(s′,a′;w)
- 使用隨機梯度下降來更新網絡權重
∇w=α(r+γmaxa′Q^(s′,a′;w)−Q^(s,a;w))ΔwQ^(s,a;w)
不重用數據能降低內存消耗,但對弱化模型表現。經驗重播相當於重用數據,而這是有幫助的。
- 可以把目標視作一個標量,但是權重將會在下一次更新,這改變了目標價值。
DQNs: fixed Q-Targets
- 爲了提升穩定性,使用在多次更新中的目標計算固定目標權重
- 使用一個不同的權重來計算目標更不是更新目標
- 記參數集w−爲在目標中使用的權重,w是被更新的權重
- 計算目標值時有細微的改變:
- (s,a,r,s′)∼D:從數據集中採樣
- 從採樣s中計算目標值r+γmaxa′Q^(s′,a′;w−)
- 使用隨機梯度下降來更新網絡權重
Δw=α(r+γmaxa′Q^(s′,a′;w−)−Q^(s,a;w))∇wQ^(s,a;w)
這種Q-learing不是真正的梯度下降方法。GTD(gradient temporal difference) learning 是"更加"真實的梯度下降算法。這樣做非常有幫助,但仍然不能保證收斂。
DQNs Summary
- DQN 使用經驗重播或固定Q-targets
- 在重播緩存D中存儲變遷st,at,rt+1,st+1
- 從D中採樣隨機的小批量變遷(s,a,r,s′)
- 計算相對於舊的,固定的參數集w−的Q-learnning目標
- 優化Q-network和Q-learning 目標之間的均方誤差
- 使用隨機梯度下降
基本上都是用ϵ-greedy exploration
DQN Result in Atari
這張圖來自Deep Mind團隊2015年的一篇論文,他們在50中游戲上實驗了DQN算法,使用了CNN處理每一幀遊戲畫面。在超過半數的遊戲裏,都能實現接近人類甚至大幅領先人類的水平,但是需要大量的數據和時間來訓練。
Which Aspects of DQN were Import for Success?
哪一部分對成功貢獻最大?
Deep RL
- 在Atari遊戲上的成功引起了使用深度神經網絡來做價值函數近似的濃厚興趣
- 這裏列舉了一些在之後馬上的改進(還有很多其他的)
補充一點:
2018年Deep Mind在AAAI發表了組合6中DQN改進方法(包括上述)的Rainbow,Rainbow: Combining Improvements
in Deep Reinforcement Learning
Recall: Double Q-Learning
1: Intialize Q1(s,a) and Q2(s,a),∀s∈S,a∈A t=0, initial state st=s0
2: loop
3: Select at using ϵ-greedy π(s)=argmaxaQ1(st,a)+Q2(st,a)
4: Observe (rt,st+1)
5: if(with 0.5 probability) then
6: Q1(sa,at)←Q1(st,at)+α
7: else
8: Q2(st,at)←Q2(st,at)+α
9: endif
10: t=t+1
11:end loop
這是在將我們如何選擇action與評估那個action的價值分離開,以解決過估計的問題。
Double DQN
- 擴展Double Q-Learning的思想到DQN
- 當前Q-network的w用於選擇動作
- 舊的Q-network的w−用於評估動作
Δw=α(r+γQ^(argmaxa′Q^(s′,a′;w);w−)−Q^(s,a;w))
Double DQN
在Atari遊戲中,Double DQN通常會有很大幫助。
Refresher: Mars Rover Model-Free Policy Evaluation
先選擇(s2,a1,0,s1),0+γV(s1),再選擇(s3,a1,0,s2),這跟蒙特·卡羅爾方法一樣,意味着沒有誤差。所以重播時選擇元組的順序是有影響的。
Impact of Replay
- 在表格法TD-learning中,重播更新的順序能加速學習
- 重複某些更新能比其他更新看起來能夠更好地反向傳播信息
- 如何系統化的做prioritize updates?
Potential Impact of Ordering Episodic Replay Updates
- Schaul, Quan, Antonoglou, Silver ICLR 2016
- 黑盒(Oracle): 選擇(s,a,r,s′)元組來重播將會降低全局loss
- 在收斂方面能有指數級別的提升
- 黑盒不是一個實際的方法但是描述了順序的影響
Prioritized Experiemce Replay
讓我們來根據TD error賦予一些元組優先級
- 記i是第i個經驗元組(si,ai,ri,si+1)
- 採樣元組以使用優先級函數來更新
- 一個元組的優先級和DQN error成比例
pi=∣r+γmaxa′Q(si+1,a′;w−)−Q(si,ai;w)∣
(兩邊豎線絕對值的意思)
- 每一個元組都更新pi
- 其中一個方法1: 成比例(隨機優先化)
P(i)=∑kpiαpiα
- α=0的話會產生了什麼樣的規則在現有的元組中做選擇?
均勻採樣
α的選取是一個平衡點
1請從上面的論文鏈接裏查閱原論文以獲得更詳細的信息。
Performance of Prioritized Replay vs Double DQN
Value & Advantage Function
Advantage Fuction在採取一個動作和另一個動作的差別之間做度量。希望能理解哪一些動作會有更好的價值。
- 直觀理解:用來確定價值的需要特比注意的特徵,可能會和那些決定動作收益特徵的不同
- E.g.
- 遊戲得分和預測V(s)是相關的
- 但是在揭示相關動作價值時不是必須的
- 所以提出了優勢函數(Advantage function, Baird 1993)
Aπ(s,a)=Qπ(s,a)−Vπ(s)
Dueling DQN
Identifiability
- 優勢函數(Advantage function)
Aπ(s,a)=Qπ(s,a)−Vπ(s)
- (優勢是)可辨識的嗎?
- 不可辨別
指定優勢函數,做了一些預先設定的假設
- Unidentifiable
- 觀點1:如果a是選擇的動作,強迫A(s,a)=0
Q^(s,a;w)=V^(s;w)+(A^(s,a;w)−maxa′∈AA^(s,a′;w))
- 觀點2:使用平均值作爲baseline(更穩定)
Q^(s,a;w)=V^(s;w)+(A^(s,a;w)−∣A∣1∑a′A^(s,a′;w)
Dueling DQN V.S. Double DQN with Prioritized Replay
Practical Tips for DQN on Atati (From J. Schulman)
以下是來自伯克利博士John Schulman,OpanAI老大的在Atari上使用DQN的建議: