魚羊 發自 凹非寺
量子位 報道 | 公眾號 QbitAI
炎炎夏日,燥熱難耐,不如學學深度學習冷靜一下?
這裡有一份乾貨教程,手把手帶你入門深度強化學習(Deep Reiforcement Learning),背景理論、代碼實現全都有,在線領取無需安裝喲!
廢話不多說,趕緊領取教程看看裡頭具體都有哪些寶藏知識吧~
步步深入RL
這份Pytorch強化學習教程一共有八章,從DQN(Deep Q-Learning)開始,步步深入,最後向你展示Rainbow到底是什麼。
不僅有Jupyter Notebook,作者還在Colab上配置好了代碼,無需安裝,你就能直觀地感受到算法的效果,甚至還可以直接在手機上進行學習!
1. DQN
DeepRL入門第一步,當先了解DQN(Deep Q-Learning)。這是DeepMind提出的一種算法,2015年登上Nuture。它首次將深度神經網絡與強化學習進行了結合,實現了從感知到動作的端到端學習,在多種雅達利遊戲當中達到了超人水平。
Pytorch Jupyter Notebook:
https://nbviewer.jupyter.org/github/Curt-Park/rainbow-is-all-you-need/blob/master/01.dqn.ipynb
Colab:
https://colab.research.google.com/github/Curt-Park/rainbow-is-all-you-need/blob/master/01.dqn.ipynb#scrollTo=nEcnUNg8Sn3I
△Colab在線訓練
2. Double DQN
Double DQN(DDQN)是DQN的一種改進。在DDQN之前,基本所有的目標Q值都是通過貪婪法得到的,而這往往會造成過度估計(overestimations)的問題。DDQN將目標Q值的最大動作分解成動作選擇和動作評估兩步,有效解決了這個問題。
Pytorch Jupyter Notebook:
https://nbviewer.jupyter.org/github/Curt-Park/rainbow-is-all-you-need/blob/master/02.double_q.ipynb
Colab:
https://colab.research.google.com/github/Curt-Park/rainbow-is-all-you-need/blob/master/02.double_q.ipynb
3.Prioritized Experience Replay
該算法的核心在於抽取經驗池中過往經驗樣本時,引入了優先級的概念。也就是說,優先級的大小會影響樣本被採樣的概率。
採用這種方法,重要經驗被回放的概率會增大,算法會更容易收斂,學習效率也就相應提高了。
Pytorch Jupyter Notebook:
https://nbviewer.jupyter.org/github/Curt-Park/rainbow-is-all-you-need/blob/master/03.per.ipynb
Colab:
https://colab.research.google.com/github/Curt-Park/rainbow-is-all-you-need/blob/master/03.per.ipynb
4. Dueling Networks
Dueling DQN是通過優化神經網絡的結構來優化算法的。Dueling Networks用兩個子網絡來分別估計狀態值和每個動作的優勢。
Pytorch Jupyter Notebook:
https://nbviewer.jupyter.org/github/Curt-Park/rainbow-is-all-you-need/blob/master/04.dueling.ipynb
Colab:
https://colab.research.google.com/github/Curt-Park/rainbow-is-all-you-need/blob/master/04.dueling.ipynb
5. Noisy Network
NoisyNet通過學習網絡權重的擾動來推動探索。其關鍵在於,對權重向量的單一更改可以在多個時間步驟中引發一致的,可能非常複雜的狀態相關的策略更改。
Pytorch Jupyter Notebook:
https://nbviewer.jupyter.org/github/Curt-Park/rainbow-is-all-you-need/blob/master/05.noisy_net.ipynb
Colab:
https://colab.research.google.com/github/Curt-Park/rainbow-is-all-you-need/blob/master/05.noisy_net.ipynb
6. Categorical DQN(C51)
Categorical DQN是一種採用分佈視角來設計的算法,它建模的是狀態-動作價值Q的分佈,這樣學習的結果會更加準確。
Pytorch Jupyter Notebook:
https://nbviewer.jupyter.org/github/Curt-Park/rainbow-is-all-you-need/blob/master/06.categorical_dqn.ipynb
Colab:
https://colab.research.google.com/github/Curt-Park/rainbow-is-all-you-need/blob/master/06.categorical_dqn.ipynb
7. N-step Learning
DQN使用當前的即時獎勵和下一時刻的價值估計作為目標價值,學習速度可能相對較慢。而使用前視多步驟目標實際上也是可行的。N-step Learning通過調整多步驟目標n來加快學習速度。
Pytorch Jupyter Notebook:
https://nbviewer.jupyter.org/github/Curt-Park/rainbow-is-all-you-need/blob/master/07.n_step_learning.ipynb
Colab:
https://colab.research.google.com/github/Curt-Park/rainbow-is-all-you-need/blob/master/07.n_step_learning.ipynb
8. Rainbow
有了前七章的鋪墊,現在你就能了解到Rainbow的真意了。
Rainbow是結合了DQN多種擴展算法的一種新算法,在數據效率和最終性能方面,該方法表現出了驚人的效果。
然而,整合併非一件簡單的事情,針對這一點,教程也做出了討論。
Pytorch Jupyter Notebook:
https://nbviewer.jupyter.org/github/Curt-Park/rainbow-is-all-you-need/blob/master/08.rainbow.ipynb
Colab:
https://colab.research.google.com/github/Curt-Park/rainbow-is-all-you-need/blob/master/08.rainbow.ipynb#scrollTo=ougv5VEKX1d1
系統學習是個非常不錯的選擇,當然作者也說了,以上知識點,你也可以選擇想學哪裡點哪裡。
學習小技巧
如果你想在本地運行這些代碼,那麼這裡有些小技巧請拿好。
首先是運行環境:
$ conda create -n rainbow_is_all_you_need python=3.6.1 $ conda activate rainbow_is_all_you_need
進入安裝環節,首先,克隆存儲庫:
其次,安裝執行代碼所需的包,這很簡單:
make dep
那麼,快開始學習吧~
— 完 —
誠摯招聘
量子位正在招募編輯/記者,工作地點在北京中關村。期待有才氣、有熱情的同學加入我們!相關細節,請在量子位公眾號(QbitAI)對話界面,回復「招聘」兩個字。
量子位 QbitAI · 頭條號簽約作者
վ'ᴗ' ի 追蹤AI技術和產品新動態