強化學習模型實現RL-Adventure(DQN)


源代碼:https://github.com/higgsfield/RL-Adventure

在Pytorch1.4.0上解決bug后的復現版本:https://github.com/lucifer2859/DQN

DQN Adventure: from Zero to State of the Art

This is easy-to-follow step-by-step Deep Q Learning tutorial with clean readable code.

The deep reinforcement learning community has made several independent improvements to the DQN algorithm. This tutorial presents latest extensions to the DQN algorithm in the following order:

1. Playing Atari with Deep Reinforcement Learning(DQN with experience replay)

[[arxiv]](https://www.cs.toronto.edu/~vmnih/docs/dqn.pdfCoRR 2013

[[code]](https://github.com/higgsfield/RL-Adventure/blob/master/1.dqn.ipynb)

本文提出了基於經驗回放的DQN,標志着DQN的誕生,也標志着深度強化學習的誕生。

經驗回放(experience replay):將經驗(即歷史的狀態、動作、獎勵等)存儲起來,再在存儲的經驗中按一定的規則采樣。

經驗回放主要有"存儲"和"采樣回放"兩大關鍵步驟。

  • 存儲:將軌跡以(St,At,Rt+1,St+1)等形式存儲起來;
  • 采樣回放:使用某種規則從存儲的(St,At,Rt+1,St+1)中隨機取出一條或多條經驗。

經驗回放有以下好處。

  • 在訓練Q網絡時,可以消除數據的關聯,使得數據更像是獨立同分布的(獨立同分布是很多有監督學習的證明條件)。這樣可以減小參數更新的方差,加快收斂。
  • 能夠重復使用經驗,對於數據獲取困難的情況尤其有用。

 

2. Human-level control through deep reinforcement learning(DQN with target network)

[[arxiv]](https://www.nature.com/articles/nature14236) Nature 2015

[[code]](https://github.com/devsisters/DQN-tensorflow)

本文提出了目標網絡(target network)這一概念,目標網絡是在原有的神經網絡之外再搭建一份結構完全相同的網絡。原先就有的神經網絡稱為評估網絡(evaluation network)。在學習的過程中,使用目標網絡來進行自益得到回報的評估值,作為學習的目標。在權重更新的過程中,只更新評估網絡的權重,而不更新目標網絡的權重。這樣,更新權重時針對的目標就不會再每次迭代都變化,是一個固定的目標。在完成一定次數的更新后,再將評估網絡的權重值賦給目標網絡,進而進行下一批更新。這樣,目標網絡也能得到更新。由於在目標網絡沒有變化的一段時間內回報的估計是相對固定的。目標網絡的引入增加了學習的穩定性。所以,目標網絡目前已經成為深度Q學習的主流做法。

 

3. Deep Reinforcement Learning with Double Q-learning(Double DQN)

[[arxiv]](https://arxiv.org/abs/1509.06461) AAAI 2016

[[code]](https://github.com/higgsfield/RL-Adventure/blob/master/2.double%20dqn.ipynb)

雙重Q學習可以消除最大化偏差(maximization bias)。

本文將雙重Q學習用於DQN,得到雙重DQN(Double DQN,DDQN)。考慮到DQN已經有了評估網絡和目標網絡兩個網絡,所以雙重DQN在估計回報時只需要用評估網絡確定動作,用目標網絡確定回報的估計即可。

 

4. Dueling Network Architectures for Deep Reinforcement Learning(Dueling DQN)

[[arxiv]](https://arxiv.org/abs/1511.06581) ICML 2016

[[code]](https://github.com/higgsfield/RL-Adventure/blob/master/3.dueling%20dqn.ipynb)

本文提出了一種神經網絡結構——對偶網絡(dual network)。

對偶網絡理論利用動作價值函數和狀態價值函數之差定義了一個新的函數——優勢函數A(advantage function):

由於同一個Q函數事實上存在着無窮多種分解為V函數和A函數的方式。為了不給訓練帶來不必要的麻煩,往往可以通過增加一個由優勢函數導出的量,使得等效的優勢函數滿足固定的特征,使得分解唯一。常見的方法有以下兩種:

  • 考慮優勢函數的最大值,令
  • 考慮優勢函數的平均值,令

 

5. Prioritized Experience Replay(PER,Prioritized DQN

[[arxiv]](https://arxiv.org/abs/1511.05952ICLR 2016

[[code]](https://github.com/higgsfield/RL-Adventure/blob/master/4.prioritized%20dqn.ipynb)

本文提出了優先回放。優先回放的思想是為經驗池里的經驗指定一個優先級,在選取經驗時更傾向於選擇優先級高的經驗。

 

6. Noisy Networks for Exploration(Noisy DQN)

[[arxiv]](https://arxiv.org/abs/1706.10295ICLR 2018

[[code]](https://github.com/higgsfield/RL-Adventure/blob/master/5.noisy%20dqn.ipynb)

[[blog]](https://zhuanlan.zhihu.com/p/138504673)

本文提出了一種將參數化的噪音加入到神經網絡權重上去的方法來增加強化學習中的探索,稱為NoisyNet。

用於探索的NoisyNet可以替代原本的ε-貪婪策略(DQN -> NoisyNet-DQN)。

Noisy Linear Layer:

The NoisyNet-DQN Loss:

The NoisyNet-Dueling Loss:

 

7. A Distributional Perspective on Reinforcement Learning(C51)

[[arxiv]](https://arxiv.org/pdf/1707.06887.pdf) ICML 2017

[[code]](https://github.com/higgsfield/RL-Adventure/blob/master/6.categorical%20dqn.ipynb)

[[blog]](https://www.cnblogs.com/lucifer1997/p/13278861.html)

本文主張采用分布觀點來進行強化學習,研究的主要對象是期望價值為Q的隨機回報Z。此隨機回報也由遞歸方程描述,但具有分布性質:


8. Rainbow: Combining Improvements in Deep Reinforcement Learning

[[arxiv]](https://arxiv.org/abs/1710.02298AAAI 2018

[[code]](https://github.com/higgsfield/RL-Adventure/blob/master/7.rainbow%20dqn.ipynb)

源代碼缺乏關鍵的多步回報以及優先重播的實現。

[[code]](https://github.com/Kaixhin/Rainbow)

 

本文研究了DQN算法的六個擴展(雙重DQN、優先DQN、對偶DQN、多步回報、分布DQN以及帶噪DQN),並實證研究了它們的組合。實驗表明,該組合在數據效率和最終性能方面均提供了Atari 2600基准測試的最先進性能。本文還提供了詳細的消融研究結果,顯示了每個組件對整體性能的貢獻。

 

 

9. Dopamine: A Research Framework for Deep Reinforcement Learning

[[arxiv]](https://arxiv.org/abs/1812.06110

[[code]](https://github.com/google/dopamine)

Dopamine Rainbow智能體(Castro et al., 2018),是對原始Rainbow智能體的開源實現(Hessel et al., 2018),但是做出了一些簡化的設計選擇。原始智能體通過使用(a) 分布學習目標,(b) 多步回報,(c) Adam優化器,(d) 優先回放,(e) 雙重Q學習,(f) 對偶結構,以及(g) 帶噪的探索網絡。Dopamine Rainbow智能體僅使用這些調整的前四個,在Hessel et al. (2018)的原始分析中被確定為該智能體最重要的方面。

 

10. Distributional Reinforcement Learning with Quantile Regression(QR-DQN)

[[arxiv]](https://arxiv.org/pdf/1710.10044.pdf) AAAI 2018

[[code]](https://github.com/higgsfield/RL-Adventure/blob/master/8.quantile%20regression%20dqn.ipynb)

[[blog]](https://www.cnblogs.com/lucifer1997/p/13278817.html)

首先,本文將現有結果擴展到近似分布設置。其次,本文提出了一種與理論公式相一致的新穎的分布強化學習算法。

 

11. Hierarchical Deep Reinforcement Learning: Integrating Temporal Abstraction and Intrinsic Motivation

[[arxiv]](https://arxiv.org/abs/1604.06057) NIPS 2016

[[code]](https://github.com/higgsfield/RL-Adventure/blob/master/9.hierarchical%20dqn.ipynb)

 

12. Neural Episodic Control

[[arxiv]](https://arxiv.org/pdf/1703.01988.pdf) ICML 2017

[[code]](#)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM