手機(jī)上就能學(xué)!Pytorch深度學(xué)習(xí)教程手把手教你從DQN到Rainbow
教程在手,天下我有
魚(yú)羊 發(fā)自 凹非寺
量子位 報(bào)道 | 公眾號(hào) QbitAI
炎炎夏日,燥熱難耐,不如學(xué)學(xué)深度學(xué)習(xí)冷靜一下?
這里有一份干貨教程,手把手帶你入門深度強(qiáng)化學(xué)習(xí)(Deep Reiforcement Learning),背景理論、代碼實(shí)現(xiàn)全都有,在線領(lǐng)取無(wú)需安裝喲!
廢話不多說(shuō),趕緊領(lǐng)取教程看看里頭具體都有哪些寶藏知識(shí)吧~
步步深入RL
這份Pytorch強(qiáng)化學(xué)習(xí)教程一共有八章,從DQN(Deep Q-Learning)開(kāi)始,步步深入,最后向你展示Rainbow到底是什么。
不僅有Jupyter Notebook,作者還在Colab上配置好了代碼,無(wú)需安裝,你就能直觀地感受到算法的效果,甚至還可以直接在手機(jī)上進(jìn)行學(xué)習(xí)!
1. DQN
DeepRL入門第一步,當(dāng)先了解DQN(Deep Q-Learning)。這是DeepMind提出的一種算法,2015年登上Nuture。它首次將深度神經(jīng)網(wǎng)絡(luò)與強(qiáng)化學(xué)習(xí)進(jìn)行了結(jié)合,實(shí)現(xiàn)了從感知到動(dòng)作的端到端學(xué)習(xí),在多種雅達(dá)利游戲當(dāng)中達(dá)到了超人水平。
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在線訓(xùn)練
2. Double DQN
Double DQN(DDQN)是DQN的一種改進(jìn)。在DDQN之前,基本所有的目標(biāo)Q值都是通過(guò)貪婪法得到的,而這往往會(huì)造成過(guò)度估計(jì)(overestimations)的問(wèn)題。DDQN將目標(biāo)Q值的最大動(dòng)作分解成動(dòng)作選擇和動(dòng)作評(píng)估兩步,有效解決了這個(gè)問(wèn)題。
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
該算法的核心在于抽取經(jīng)驗(yàn)池中過(guò)往經(jīng)驗(yàn)樣本時(shí),引入了優(yōu)先級(jí)的概念。也就是說(shuō),優(yōu)先級(jí)的大小會(huì)影響樣本被采樣的概率。
采用這種方法,重要經(jīng)驗(yàn)被回放的概率會(huì)增大,算法會(huì)更容易收斂,學(xué)習(xí)效率也就相應(yīng)提高了。
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是通過(guò)優(yōu)化神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)來(lái)優(yōu)化算法的。Dueling Networks用兩個(gè)子網(wǎng)絡(luò)來(lái)分別估計(jì)狀態(tài)值和每個(gè)動(dòng)作的優(yōu)勢(shì)。
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通過(guò)學(xué)習(xí)網(wǎng)絡(luò)權(quán)重的擾動(dòng)來(lái)推動(dòng)探索。其關(guān)鍵在于,對(duì)權(quán)重向量的單一更改可以在多個(gè)時(shí)間步驟中引發(fā)一致的,可能非常復(fù)雜的狀態(tài)相關(guān)的策略更改。
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是一種采用分布視角來(lái)設(shè)計(jì)的算法,它建模的是狀態(tài)-動(dòng)作價(jià)值Q的分布,這樣學(xué)習(xí)的結(jié)果會(huì)更加準(zhǔn)確。
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使用當(dāng)前的即時(shí)獎(jiǎng)勵(lì)和下一時(shí)刻的價(jià)值估計(jì)作為目標(biāo)價(jià)值,學(xué)習(xí)速度可能相對(duì)較慢。而使用前視多步驟目標(biāo)實(shí)際上也是可行的。N-step Learning通過(guò)調(diào)整多步驟目標(biāo)n來(lái)加快學(xué)習(xí)速度。
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
有了前七章的鋪墊,現(xiàn)在你就能了解到Rainbow的真意了。
Rainbow是結(jié)合了DQN多種擴(kuò)展算法的一種新算法,在數(shù)據(jù)效率和最終性能方面,該方法表現(xiàn)出了驚人的效果。
然而,整合并非一件簡(jiǎn)單的事情,針對(duì)這一點(diǎn),教程也做出了討論。
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
系統(tǒng)學(xué)習(xí)是個(gè)非常不錯(cuò)的選擇,當(dāng)然作者也說(shuō)了,以上知識(shí)點(diǎn),你也可以選擇想學(xué)哪里點(diǎn)哪里。
學(xué)習(xí)小技巧
如果你想在本地運(yùn)行這些代碼,那么這里有些小技巧請(qǐng)拿好。
首先是運(yùn)行環(huán)境:
$ conda create -n rainbow_is_all_you_need python=3.6.1
$ conda activate rainbow_is_all_you_need
進(jìn)入安裝環(huán)節(jié),首先,克隆存儲(chǔ)庫(kù):
git clone https://github.com/Curt-Park/rainbow-is-all-you-need.git
cd rainbow-is-all-you-need
其次,安裝執(zhí)行代碼所需的包,這很簡(jiǎn)單:
make dep
那么,快開(kāi)始學(xué)習(xí)吧~
傳送門
教程地址:https://github.com/Curt-Park/rainbow-is-all-you-need
— 完 —
- 標(biāo)準(zhǔn)化3D生成質(zhì)量榜單來(lái)了!首創(chuàng)層次化評(píng)價(jià)體系,告別“誰(shuí)的demo更吸睛”主觀評(píng)估2025-08-16
- 阿里閃電入局Agent Infra!智能體新基建亮相WAIC,“超級(jí)大腦”開(kāi)箱即用2025-07-31
- 世紀(jì)華通謝斐:在“三大平衡”中領(lǐng)跑,實(shí)現(xiàn)游戲行業(yè)更高質(zhì)量的發(fā)展2025-08-01
- 1.5B參數(shù)撬動(dòng)“吉卜力級(jí)”全能體驗(yàn),國(guó)產(chǎn)開(kāi)源之光多模態(tài)統(tǒng)一模型,來(lái)了2025-07-30