dueling dqn 和 double dqn_强化学习(十一)--DQN三个经典的变种
DQN三個經典的變種:Double DQN、Dueling DQN、Prioritized Replay Buffer。
Double-DQN:將動作選擇和價值估計分開,避免價值過高估計。
Dueling-DQN:將Q值分解為狀態價值和優勢函數,得到更多有用信息。
Prioritized Replay Buffer:將經驗池中的經驗按照優先級進行采樣。
1.Double DQN
(1)為什么提出Double DQN ?
為了解決原始DQN存在的過估計問題。
(2)什么是過估計?
過估計是指估計的值函數比真實的值函數大。
(3)為什么DQN存在過估計的問題?
因為DQN是一種off-policy的方法,每次學習時,不是使用下一次交互的真實動作,而是使用當前認為價值最大的動作來更新目標值函數,所以會出現對Q值的過高估計。通過基于函數逼近方法的值函數更新公式可以看出:
(4)怎么解決這個問題?
為了解決過估計的問題,Hasselt提出了Double Q Learning方法,將此方法應用到DQN中,就是Double DQN,即DDQN。所謂的Double Q Learning是將動作的選擇和動作的評估分別用不同的值函數來實現。
動作的選擇:選擇該狀態下動作值函數最大的動作,即
。動作的選擇所用的動作值函數:動作的評估:選出
后,利用 處的動作值函數構造TD目標,TD目標公式為:2.經驗回放(Prioritized Replay)
DQN的經驗回放采用均勻分布,而均勻分布采樣并不能高效利用數據。因為agent的經驗就是經歷過的數據,但這些數據對于訓練并不是具有同等重要的意義,agent在某些狀態的學習效率比其他狀態的學習效率高。
優先回放的基本思想:打破均勻采樣,賦予學習效率高的狀態以更大的采樣權重。
如何選擇權重?
一個理想的標準是agent學習的效率越高,權重越大。TD偏差越大,說明該狀態處的值函數與TD目標的差距越大,agent的更新量越大,因此該處的學習效率越高。
(如果TD-error越大, 就代表我們的預測精度還有很多上升空間, 那么這個樣本就越需要被學習, 也就是優先級p越高。)
有了 TD-error 就有了優先級 p, 那我們如何有效地根據 p 來抽樣呢?
如果每次抽樣都需要針對 p 對所有樣本排序, 這將會是一件非常消耗計算能力的事. 可以采用更高級的算法——SumTree方法。
SumTree是一種樹形結構,每片樹葉存儲每個樣本的優先級P,每個樹枝節點只有兩個分叉,節點的值是兩個分叉的和,所以SumTree的頂端就是所有p的和。
抽樣時,將 p 的總合除以 batch size, 分成batch size個區間。
比如p的總和是42的話, 如果抽6個樣本,劃分成區間[0-7], [7-14], [14-21], [21-28], [28-35], [35-42]。然后在每個區間里隨機選取一個數。
(i)比如在區間 [21-28] 里選到了24, 就按照這個 24 從最頂上的42開始向下搜索.。
(ii)首先頂端42 下面有兩個子結點,先對比左邊的子結點, 如果比24大, 那就走左邊這條路。
(iii)接著再對比 29 下面的左邊子結點,13比24小, 那就走右邊的路, 并且初始值24根據 13 修改, 變成 24-13 = 11。
(iiii)接著拿著 11 和 16 左子結點比,12 比 11 大, 選 12 當做這次選到的 priority, 并且選擇 12 對應的一條數據.
簡而言之,每次我們都選較大的節點數,因為每個父節點都是兩個子節點的和,那么父節點較大的數也對應著較大的子節點數。
3.Dueling-DQN
Dueling-DQN從網絡結構上改進了DQN,動作值函數可以分為狀態值函數和優勢函數,即
,對這兩個函數分別利用神經網絡逼近。原始DQN(上)和Dueling DQN(下)什么是優勢函數?
狀態值函數
可以理解為:在該狀態下所有可能動作所對應的動作值函數乘以采取該動作的概率的和。更通俗的講,值函數是該狀態下所有動作值函數關于動作概率的平均值;動作值函數
是單個動作所對應的值函數;優勢函數
能評價當前動作值函數相對于平均值的大小。所以,這里的優勢指的是動作值函數相比于當前狀態的值函數的優勢。如果優勢函數大于零,則說明該動作比平均動作好,如果優勢函數小于零,則說明當前動作還不如平均動作好。優勢函數示意圖本節涉及到的論文:
1.Deep Reinforcement Learning with Double Q-learning(https://arxiv.org/pdf/1509.06461v3.pdf)
2.PRIORITIZED EXPERIENCE REPLAY(https://arxiv.org/pdf/1511.05952.pdf)
3.Dueling Network Architectures for Deep Reinforcement Learning(https://arxiv.org/pdf/1511.06581.pdf)
總結
以上是生活随笔為你收集整理的dueling dqn 和 double dqn_强化学习(十一)--DQN三个经典的变种的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: gitee markdown 笔记_使用
- 下一篇: ffmpeg 命令_Qt音视频开发11-