深度強化學習實戰 Deep Reinforcement Learning in Action

[美]亞歷山大 · 扎伊(Alexander Zai)[美]布蘭登·布朗(Brandon Brown)

  • 深度強化學習實戰-preview-1
  • 深度強化學習實戰-preview-2
深度強化學習實戰-preview-1

商品描述

本書先介紹深度強化學習的基礎知識及相關算法,然後給出多個實戰項目,以期讓讀者可以根據環境的直接反饋對智能體加以調整和改進,提升運用深度強化學習技術解決實際問題的能力。

本書涵蓋深度Q網絡、策略梯度法、演員-評論家算法、進化算法、Dist-DQN、多智能體強化學習、可解釋性強化學習等內容。本書給出的實戰項目緊跟深度強化學習技術的發展趨勢,且所有項目示例以Jupter Notebook樣式給出,便於讀者修改代碼、觀察結果並及時獲取經驗,能夠帶給讀者交互式的學習體驗。

本書適合有一定深度學習和機器學習基礎並對強化學習感興趣的讀者閱讀。

作者簡介

Alexander Zai曾担任Codesmith(一个沉浸式的编码训练营)首席技术官和技术顾问、Uber 软件工程师、Bonjo和AmazonAI机器学习工程师,他也是开源深度学习框架Apache MXNet的贡献者。此外,他还是两家公司的联合创立人,其中一家曾是Y-combinator的参与者。

 

Brandon Brown从很小的时候就开始编程,大学期间做过兼职软件工程师,但最终选择投身医疗行业(在此期间,他在医疗保健科技领域担任软件工程师)。受深度强化学习的启发,他近期专注于计算精神病学的研究。

目錄大綱

第 一部分 基礎篇

第 1章 什麽是強化學習 3

1.1 深度強化學習中的“深度” 4

1.2 強化學習 5

1.3 動態規劃與蒙特卡洛 7

1.4 強化學習框架 9

1.5 強化學習可以做什麽 12

1.6 為什麽是深度強化學習 14

1.7 教學工具:線圖 15

1.8 後續內容概述 17

小結 18

第 2章 強化學習問題建模: 馬爾可夫決策過程 19

2.1 線圖與本書的教學方法 19

2.2 解決多臂老虎機問題 22

2.2.1 探索與利用 23

2.2.2 貪婪策略 24

2.2.3 Softmax選擇策略 29

2.3 應用老虎機算法優化廣告投放 31

2.3.1 上下文老虎機 31

2.3.2 狀態、動作和獎勵 32

2.4 利用PyTorch構建網絡 33

2.4.1 自動微分 33

2.4.2 構建模型 34

2.5 解決上下文老虎機問題 35

2.6 馬爾可夫性質 39

2.7 預測未來獎勵:價值和策略函數 41

2.7.1 策略函數 42

2.7.2 最優策略 43

2.7.3 價值函數 43

小結 44

第3章 預測最佳狀態和動作: 深度Q網絡 46

3.1 Q函數 46

3.2 Q-learning導航 47

3.2.1 Q-learning是什麽 48

3.2.2 應用於Gridworld游戲 49

3.2.3 超參數 50

3.2.4 貼現因子 50

3.2.5 構建網絡 52

3.2.6 介紹Gridworld游戲引擎 53

3.2.7 構建Q函數的神經網絡 55

3.3 防止災難性遺忘:經驗回放 64

3.3.1 災難性遺忘 64

3.3.2 經驗回放 65

3.4 利用目標網絡提高穩定性 69

學習的不穩定性 70

3.5 回顧 74

小結 76

第4章 學習選擇最佳策略:策略梯度法 77

4.1 使用神經網絡的策略函數 77

4.1.1 神經網絡作為策略函數 78

4.1.2 隨機策略梯度 78

4.1.3 探索 80

4.2 強化良好動作:策略梯度算法 81

4.2.1 定義目標 81

4.2.2 強化動作 82

4.2.3 對數概率 84

4.2.4 信用分配 84

4.3 與OpenAI Gym配合 85

4.3.1 CartPole 87

4.3.2 OpenAI Gym API 87

4.4 REINFORCE算法 88

4.4.1 創建策略網絡 88

4.4.2 使智能體與環境交互 89

4.4.3 訓練模型 89

4.4.4 完整訓練循環 91

4.4.5 所得到的結論 93

小結 93

第5章 利用演員-評論家算法 解決更復雜的問題 94

5.1 重構價值-策略函數 95

5.2 分佈式訓練 99

5.3 演員-評論家優勢算法 104

5.4 N-step演員-評論家算法 112

小結 116

第二部分 進階篇

第6章 可替代的優化方法: 進化算法 119

6.1 另一種強化學習方法 119

6.2 具有進化策略的強化學習 121

6.2.1 進化理論 121

6.2.2 進化實踐 123

6.3 CartPole的遺傳算法 128

6.4 進化算法的優缺點 134

6.4.1 進化算法探索更多 134

6.4.2 進化算法令人難以置信的樣本密集性 134

6.4.3 模擬器 135

6.5 進化算法作為一種可擴展的替代方案 135

6.5.1 擴展的進化算法 135

6.5.2 並行與串行處理 137

6.5.3 擴展效率 138

6.5.4 節點間通信 138

6.5.5 線性擴展 140

6.5.6 擴展基於梯度的算法 140

小結 141

第7章 Dist-DQN:獲取完整故事 142

7.1 Q-learning存在的問題 143

7.2 再論概率統計 147

7.2.1 先驗和後驗 148

7.2.2 期望和方差 149

7.3 貝爾曼方程 153

分佈式貝爾曼方程 153

7.4 分佈式Q-learning 154

7.4.1 使用Python表示概率分佈 154

7.4.2 實現Dist-DQN 162

7.5 比較概率分佈 164

7.6 模擬數據上的Dist-DQN 167

7.7 使用分佈式Q-learning玩Freeway 172

小結 177

第8章 好奇心驅動的 探索 178

8.1 利用預測編碼處理稀疏獎勵 179

8.2 反向動態預測 182

8.3 搭建《超級馬里奧兄弟》環境 184

8.4 預處理和Q網絡 186

8.5 創建Q網絡和策略函數 188

8.6 內在好奇心模塊 191

8.7 可替代的內在獎勵機制 203

小結 205

第9章 多智能體強化 學習 206

9.1 從單個到多個智能體 206

9.2 鄰域Q-learning 210

9.3 一維伊辛模型 213

9.4 平均場Q-learning和二維伊辛模型 221

9.5 混合合作競技游戲 230

小結 239

第 10章 強化學習可解釋性: 註意力和關系 模型 241

10.1 帶註意力和關系偏差的 機器學習可解釋性 242

不變性和等變性 243

10.2 利用註意力進行關系 推理 244

10.2.1 註意力模型 245

10.2.2 關系推理 246

10.2.3 自註意力模型 251

10.3 對MNIST實現 自註意力 253

10.3.1 轉換的MNIST 254

10.3.2 關系模塊 255

10.3.3 張量縮並和愛因斯坦 標記法 258

10.3.4 訓練關系模塊 261

10.4 多頭註意力和 關系DQN 264

10.5 雙Q-learning 270

10.6 訓練和註意力 可視化 271

10.6.1 最大熵學習 275

10.6.2 課程學習 275

10.6.3 可視化註意力權重 276

小結 278

第 11章 總結:回顧和 路線圖 280

11.1 我們學到了什麽 280

11.2 深度強化學習中的 未知課題 282

11.2.1 優先經驗回放 282

11.2.2 近端策略優化 282

11.2.3 分層強化學習和 options框架 283

11.2.4 基於模型的規劃 283

11.2.5 蒙特卡洛樹搜索 284

全書結語 284

附錄A 數學、深度學習和

PyTorch 285

A.1 線性代數 285

A.2 微積分 287

A.3 深度學習 290

A.4 PyTorch 291

參考資料 295