rget
q=r+
γmaxa′
q(s′
,a′;
θ−i)
其中θ−i
是targetnet的引數。
在ddqn中,先用mainnet找到 maxa′
q(s′
,a′;
θi) 的action(θi
是mainnet的引數),再去targetnet中找到這個action的q值以構成target q值,這個q值在targetnet中不一定是最大的,因此可以避免選到被高估的次優action。最終要學習的loss function為: l(
θ)=e
[(ta
rget
q−q(
s,a;
θi))
2] t
arge
tq=r
+γq(
s′,maxa′
q(s′
,a′;
θi);
θ−i)
除此之外,其他設定與dqn一致。實驗表明,ddqn能夠估計出更準確出q值,在一些atari2600遊戲中可獲得更穩定有效的策略。
loss function 的構造流程圖
在許多基於視覺的感知的drl任務中,不同的狀態動作對的值函式是不同的,但是在某些狀態下,值函式的大小與動作無關。根據以上思想,wang等人提出了一種競爭網路結構(dueling network)作為dqn的網路模型。
先來看結構
如上圖所示,第乙個模型是一般的dqn網路模型,即輸入層接三個卷積層後,接兩個全連線層,輸出為每個動作的q值。
而(第二個模型)競爭網路(dueling net)將卷積層提取的抽象特徵分流到兩個支路中。其中上路代表狀態值函式 v(s
),表示靜態的狀態環境本身具有的價值;下路代表依賴狀態的動作優勢函式 a(
a)(advantage function),表示選擇某個action額外帶來的價值。最後這兩路再聚合再一起得到每個動作的q值。
這種競爭結構能學到在沒有動作的影響下環境狀態的價值 v(s
)。如下圖,在訓練過程中,上下兩行圖表示不同時刻,左右兩列表示屬於 v(
s)和 a(a
),(通過某種方法處理後)圖中紅色區域代表 v(
s)和 a(a
) 所關注的地方。v(
s)關注於地平線上是否有車輛出現(此時動作的選擇影響不大)以及分數;a(
a)則更關心會立即造成碰撞的車輛,此時動作的選擇很重要。
公式:
狀態價值函式表示為 v(
s;θ,
β)動作優勢函式表示為 a(
s,a;
θ,α)
動作q值為兩者相加 q(
s,a;
θ,α,
β)=v
(s;θ
,β)+
a(s,
a;θ,
α)其中
θ 是卷積層引數,
β 和
α 是兩支路全連線層引數。
而在實際中,一般要將動作優勢流設定為單獨動作優勢函式減去某狀態下所有動作優勢函式的平均值 q(
s,a;
θ,α,
β)=v
(s;θ
,β)+
(a(s
,a;θ
,α)−
1|a|
∑a′a
(s,a
′;θ,
α))
這樣做可以保證該狀態下各動作的優勢函式相對排序不變,而且可以縮小 q 值的範圍,去除多餘的自由度,提高演算法穩定性。
**中dueling net結合了ddqn以及優先順序取樣(prioritized experience replay)的訓練方式。
prioritized experience replay
簡單來說,經驗池中td誤差(r+γ
maxa′q
(s′,
a′;θ
−)−q
(s,a
;θ))絕對值越大的樣本被抽取出來訓練的概率越大,加快了最優策略的學習。
實驗證明,dueling-ddqn估計的值函式更加精確。在頻繁出現 agent 採取不同動作但對應值函式相等的情形下,dueling-ddqn優勢最明顯。
[2]dueling network architectures for deep reinforcement learning
[3]深度強化學習綜述_劉全等
深度強化學習
這是寫給自己看的,大佬請忽略 深度學習和其他機器學習演算法最大的不同在於如何找到特徵,而特徵的抽取過程就是乙個抽象的全過程。以往機器學習演算法的特徵抽取都是對一類問題有解,比如k means等聚類。深度學習抽象模擬了人類神經元傳遞和連線方式,理論上可以解決多種分類問題和 問題,甚至研究未知領域。深度...
深度強化學習
一 簡介 1 深度強化學習出現的原因 傳統的強化學習中當狀態和動作空間是離散且維數不高時可使用q table儲存每個狀態動作對的q值。然而比較複雜的 更加接近實際情況的任務則往往有著很大的狀態空間和連續的動作空間,這種情況下使用q table不現實。同時實現端到端的控制也是要求能處理高維的,如影象 ...
深度強化學習
強化學習 reinforcement learning 與深度學習同屬機器學習的範疇,是其中 一 個重要的分支,主要用來解決連續決策的問題。強化不像無監督學習那樣完全沒有學習目標,也不像監督學習那樣有非常明確的目標 如影象分類問題中的label 強化學習的目標是不明確的,模型只會向著能夠得到更多獎勵...