深度強化學習課程
探索神經網路與強化學習的結合。 Python 和 PyTorch 中的演算法和範例
您是否聽說過 Deepmind 與 AlphaGo Zero 以及 OpenAI 在 Dota 2 中取得的驚人成績?這都是關於深度神經網路和強化學習的。您想了解更多嗎?
這是您最終學習深度強化學習並將其用於令人興奮的新專案和應用程式的絕佳機會。
在這裡您將找到這些演算法的深入介紹。其中你將學習q學習、深度q學習、PPO、演員評論家,並使用Python和PyTorch來實現它們。
最終目標是使用這些通用技術並將其應用於各種重要的現實世界問題。黛米斯·哈薩比斯
該存儲庫包含:
講座(及其他內容)主要來自 DeepMind 和 Berkley Youtube 頻道。
在 PyTorch 中實現的演算法(如 DQN、A2C 和 PPO)並在 OpenAI Gym:RoboSchool 和 Atari 上進行測試。
請繼續關注並關注我#60DaysRLChallenge
現在我們還有一個Slack 頻道。如需邀請,請發送電子郵件至 [email protected]。另外,如果您有任何想法、建議或改進,請給我發電子郵件。
要學習深度學習、電腦視覺或自然語言處理,請查看我的1 年 ML 之旅
開始之前..先決條件
- Python 和 PyTorch 的基礎水平
- 機器學習
- 深度學習基礎知識(MLP、CNN 和 RNN)
小提示:我的新書已經出版了!
要更深入學習強化學習和深度強化學習,請查看我的書《Python 強化學習演算法》!
目錄
- 強化學習的前景
- 實施 RL Cycle 和 OpenAI Gym
- 用動態規劃解決問題
- Q 學習和 SARSA 應用
- 深度Q網絡
- 學習隨機和 DDPG 優化
- TRPO 和 PPO 實施
- DDPG 和 TD3 應用
- 基於模型的強化學習
- 使用 DAgger 演算法進行模仿學習
- 了解黑盒優化演算法
- 開發 ESBAS 演算法
- 解決強化學習挑戰的實際實施
索引 - 強化學習
- 第一周 -簡介
- 第 2 週 -強化學習基礎知識
- 第 3 週 -基於價值的演算法 - DQN
- 第 4 週 -策略梯度演算法 - REINFORCE 和 A2C
- 第 5 週 -進階策略梯度 - PPO
- 第 6 週 -演化策略和遺傳演算法 - ES
- 第 7 週 -基於模型的強化學習 - MB-MF
- 第 8 週 -進階概念和您選擇的項目
- 過去 4 天 -回顧 + 分享
- 最好的資源
- 其他資源
第一周 - 簡介
- 為什麼強化學習如此重要的學習方法 - 一個簡單的解釋
- 簡介和課程概述 - CS294,作者:Levine,伯克利
- 深度強化學習:Karpathy 的 Pixels 中的 Pong
其他資源
- 強化學習的「聖經」:第一章 - Sutton & Barto
- 很棒的介紹論文:深度強化學習:概述
- 開始編碼:從頭開始:用 50 行 Python 實現 AI 平衡
第 2 週 - 強化學習基礎: MDP、動態規劃與無模型控制
那些不記得過去的人注定要重蹈覆轍——喬治·桑塔亞納
本週,我們將學習強化學習的基本模組,從問題的定義開始,一直到用於表達政策或狀態品質的函數的估計和最佳化。
講座 - 理論
- 馬可夫決策過程 - David Silver (DeepMind)
- 動態規劃規劃 - David Silver (DeepMind)
- 無模型預測 - David Silver (DeepMind)
- 無模型控制 - David Silver (DeepMind)
- Ɛ-貪婪策略迭代
- GLIE 蒙特卡羅搜索
- 非典
- 重要性抽樣
本週專案 - Q-learning
Q-learning 應用於 FrozenLake - 作為練習,您可以使用 SARSA 解決遊戲或自行實現 Q-learning。在前一種情況下,只需要進行很少的更改。
其他資源
- 強化學習的「聖經」:第 3 章和第 4 章 - Sutton 和 Barto
- 價值函數介紹 - DRL UC Berkley by Sergey Levine
第 3 週 - 基於價值的演算法 - DQN
本週我們將學習更多高階概念並將深度神經網路應用於 Q 學習演算法。
講座 - 理論
- 價值函數近似 - David Silver (DeepMind)
- 高級 Q 學習演算法 - Sergey Levine(加州大學柏克萊分校)
- 重播緩衝區
- 雙Q學習
- 連續動作(NAF、DDPG)
- 實用技巧
本週項目 - DQN 及其變體
DQN 和一些應用於 Pong 的變體- 本週的目標是開發 DQN 演算法來玩 Atari 遊戲。為了讓它更有趣,我開發了 DQN 的三個擴展:雙 Q 學習、多步驟學習、決鬥網路和噪音網路。與它們一起玩,如果您有信心,您可以實施優先重播、決鬥網路或分散式強化學習。要了解有關這些改進的更多信息,請閱讀論文!
文件
必讀
- 使用深度強化學習玩 Atari - 2013
- 透過深度強化學習進行人性化控制 - 2015
- Rainbow:結合深度強化學習的改進 - 2017
DQN 的擴展
- 使用雙 Q 學習的深度強化學習 - 2015
- 優先體驗重播 - 2015
- 深度強化學習的決鬥網路架構 - 2016
- 用於探索的嘈雜網路 - 2017
- 分位數迴歸的分佈強化學習 - 2017
其他資源
- 強化學習的「聖經」:第 5 章和第 6 章 - Sutton 和 Barto
- 企業中的深度強化學習:彌合遊戲與工業之間的差距
第 4 週 - 策略梯度演算法 - REINFORCE 和 A2C
第四周介紹策略梯度方法,一類直接最佳化策略的演算法。此外,您還將了解 Actor-Critic 演算法。這些演算法結合了策略梯度(參與者)和價值函數(批評者)。
講座 - 理論
- 策略梯度方法 - David Silver (DeepMind)
- 有限差分策略梯度
- 蒙特卡羅策略梯度
- 演員-評論家政策梯度
- 政策梯度介紹 - Sergey Levine(回顧,可選)
- 策略梯度(REINFORCE 和 Vanilla PG)
- 變異數減少
- 演員評論家 - 謝爾蓋·萊文(更深入)
- 演員評論家
- 折扣係數
- Actor-Critic演算法設計(批次模式或線上)
- 狀態相關基線
本週項目 - Vanilla PG 和 A2C
Vanilla PG 和 A2C 應用於 CartPole - 本週的練習是實施策略梯度方法或更複雜的 actor-critic。在儲存庫中,您可以找到 PG 和 A2C 的實作版本。錯誤警報!注意 A2C 給了我奇怪的結果。如果您發現PG和A2C的實作很容易,您可以嘗試使用非同步版本的A2C(A3C)。
文件
- 函數逼近強化學習的策略梯度方法
- 深度強化學習的非同步方法
其他資源
- 強化學習的「聖經」:第 9 章和第 10 章 - Sutton & Barto
- 直覺強化學習:優勢-行動者-批評者 (A2C) 簡介
- 非同步 Actor-Critic 代理 (A3C)
第 5 週 - 進階策略梯度 - PPO
本週介紹的是先進的政策梯度方法,可提高「普通」政策梯度方法的穩定性和收斂性。您將學習並實現 PPO,這是由 OpenAI 開發並在 OpenAI Five 中採用的 RL 演算法。
講座 - 理論
- 高級政策梯度 - Sergey Levine(加州大學柏克萊分校)
- 「普通」策略梯度法的問題
- 政策績效界限
- 單調改進理論
- 演算法:NPO、TRPO、PPO
- 自然策略梯度、TRPO、PPO - John Schulman(伯基 DRL 訓練營) -(回顧,可選)
- 「普通」策略梯度方法的局限性
- 自然政策梯度
- 信任域策略優化,TRPO
- 近端策略優化,PPO
本週項目 - PPO
PPO 應用於 BipedalWalker - 本週,您必須實施 PPO 或 TRPO。我建議使用 PPO,因為它很簡單(與 TRPO 相比)。在專案資料夾 Week5 中,您可以找到學習玩 BipedalWalker 的 PPO實作。此外,在該資料夾中,您可以找到有助於您開發專案的其他資源。玩得開心!
要了解有關 PPO 的更多信息,請閱讀論文並觀看 Arxiv Insights 的視頻
文件
- 信託區域政策優化 - 2015
- 近端策略優化演算法 - 2017
其他資源
- 更能理解PPO和TRPO:(機器人)幸福的追求
- 深度強化學習的具體細節
- PPO 最佳實踐:使用近端策略優化進行訓練
- Arxiv Insights 對 PPO 演算法的解釋
第 6 週 - 演化策略與遺傳演算法 - ES
去年,演化策略(ES)和遺傳演算法(GA)已被證明可以達到與強化學習方法相當的結果。它們是無衍生的黑盒子演算法,需要比 RL 更多的數據來學習,但能夠擴展到數千個 CPU。本週我們將研究這個黑盒子演算法。
講座和文章 - 理論
- 演化策略
- ES 簡介:演化策略視覺化指南
- ES for RL:不斷發展的穩定策略
- 無導數方法 - 講座
- 演化策略(論文討論)
- 遺傳演算法
本週專案 - ES
應用於 LunarLander 的進化策略- 本週該專案將實施 ES 或 GA。在Week6 資料夾中,您可以找到論文 Evolution Strategies as a Scalable Alternative to Reinforcement Learning 的基本實現,以解決 LunarLanderContinously 問題。您可以修改它以玩更困難的環境或添加您的想法。
文件
- 深度神經演化:遺傳演算法是訓練深度神經網路進行強化學習的有競爭力的替代方案
- 演化策略作為強化學習的可擴展替代方案
其他資源
第 7 週 - 基於模型的強化學習 - MB-MF
到目前為止研究的演算法是無模型的,這意味著它們只在給定狀態下選擇更好的動作。這些演算法取得了非常好的性能,但需要大量的訓練資料。相反,基於模型的演算法可以學習環境並根據所學習的模型規劃下一步。這些方法比無模型方法的樣本效率更高,但整體表現最差。本週,您將學習這些方法背後的理論並實現最後的演算法之一。
講座 - 理論
- 基於模型的強化學習,David Silver (DeepMind)(簡潔版)
- 基於模型的密集學習,Sergey Levine(加州大學柏克萊分校)(深入版本)
- 從數據中學習動力系統
- 基於模型的強化學習概述
- 全球和本地模型
- 使用本地模型和信任區域學習
- 透過模仿最優控制器來學習策略
- 使用學習模型反向傳播到策略中
- 引導策略搜尋演算法
- 使用 DAgger 模擬最優控制
- 進階模型學習和圖像
本週項目 - MB-MF
MB-MF 應用於 RoboschoolAnt - 本週我選擇實現本文中描述的基於模型的演算法。您可以在這裡找到我的實作。注意:我沒有像論文中那樣在 Mujoco 上實現,而是使用 RoboSchool,這是一個與 OpenAI Gym 整合的開源機器人模擬器。
文件
- 用於深度強化學習的想像力增強代理 - 2017
- 無監督輔助任務的密集學習 - 2016
- 用於基於模型的深度強化學習和無模型微調的神經網路動力學 - 2018
其他資源
- 強化學習的「聖經」:第 8 章 - Sutton 與 Barto
- 世界模特兒 - 特工可以在自己的夢中學習嗎?
第 8 週 - 進階概念和您選擇的項目
上週是關於高階強化學習概念和您選擇的項目。
講座 - 理論
- 謝爾蓋·萊文(伯克利)
- 推理與控制之間的聯繫
- 逆向強化學習
- 探索(第 1 部分)
- 探索(第 2 部分)與遷移學習
- 多工學習和遷移
- 元學習和平行性
- 高階模仿學習和開放問題
- 大衛·西爾弗(DeepMind)
最終項目
在這裡您可以找到一些專案想法。
- Pommerman(多人)
- 人工智慧義肢挑戰賽(挑戰)
- Word 模型(論文實作)
- 請求研究 OpenAI(研究)
- 復古大賽(遷移學習)
其他資源
- 阿爾法狗零式
- 紙
- DeepMind 部落格文章:AlphaGo Zero:從頭開始學習
- Arxiv Insights 影片:AlphaGo Zero 的工作原理 - Google DeepMind
- 開放人工智慧五
- OpenAI 部落格文章:OpenAI 5
- Arxiv Insights 影片:OpenAI Five:在 Dota II 中面對人類職業選手
過去 4 天 - 回顧 + 分享
恭喜您完成 60 天 RL 挑戰!如果您喜歡它並分享,請告訴我!
再見!
最好的資源
強化學習:簡介 - Sutton 和 Barto。強化學習的「聖經」。在這裡您可以找到第二版的 PDF 草稿。
深度強化學習實踐 - 作者:Maxim Lapan
深度學習——伊恩·古德費洛
深度密集學習 - Levine 的加州大學柏克萊分校課程,請在此處查看他們的網站。
密集學習課程 - 由 DeepMind 的 David Silver 教授。 AlphaGo 首席研究員 Silver 的精彩介紹性講座。他們遵循 Sutton 和 Barto 所寫的《強化學習》一書。
其他資源
很棒的強化學習。專門用於強化學習的精選資源列表
強化學習上的 GroundAI。強化學習論文
一杯咖啡☕
任何貢獻都將受到高度讚賞!乾杯!