深度強化學習:基於 Python 的理論及實踐 Foundations of Deep Reinforcement Learning: Theory and Practice in Python

Laura Graesser,Wah Loon Keng 許靜,過辰楷,金驍,劉磊,朱靜雯 等 譯

買這商品的人也買了...

商品描述

本書介紹了深度強化學習理論和實現的獨特結合。
它從入門開始,然後詳細地解釋了深度強化學習算法的理論,
也討論了它的配套軟件庫SLM實驗室的實現,
並以使深度強化學習工作的實際細節結束。

作者簡介

勞拉·格雷澤
(Laura Graesser)
軟件工程師,在谷歌從事機器人技術方面的工作。她擁有紐約大學計算機科學碩士學位,專攻機器學習方向。


龔輝倫
(Wah Loon Keng)
Machine Zone的人工智能工程師,致力於將深度強化學習應用於工業問題。他擁有理論物理和計算機科學的背景。
他們共同開發了兩個深度強化學習軟件庫,並就此進行了多次主題講座和技術輔導。


主要譯者:
許靜
南開大學人工智能學院副院長,機器智能所所長,教授,博士生導師。 2003年獲得南開大學博士學位,主要研究方向為人工智能、大數據分析和軟件安全。已完成多項國jia級、省部級、國際合作、國內合作項目,發表學術論文100餘篇,出版教材一部,申請發明專利20餘項;獲得天津市科技進步二等獎兩項;現為IEEE會員、CCF高級會員、天津市圖形圖像學會常務理事。

目錄大綱

讚譽
譯者序
序言
前言
致謝
第1章 強化學習簡介1
1.1 強化學習1
1.2 強化學習中的MDP4
1.3 強化學習中的學習函數7
1.4 深度強化學習算法9
1.4.1 基於策略的算法9
1.4.2 基於值的算法10
1.4.3 基於模型的算法10
1.4.4 組合方法11
1.4.5 本書中的算法12
1.4.6 同策略和異策略算法12
1.4.7 小結12
1.5 強化學習中的深度學習13
1.6 強化學習與監督學習14
1.6.1 缺乏先知14
1.6.2 反饋稀疏性15
1.6.3 數據生成15
1.7 總結16

第一部分 基於策略的算法和基於值的算法
第2章 REINFORCE18
2.1 策略18
2.2 目標函數19
2.3 策略梯度19
2.3.1 策略梯度推導20
2.4 蒙特卡羅採樣22
2.5 REINFORCE算法23
2.5.1 改進的REINFORCE算法23
2.6 實現REINFORCE24
2.6.1 一種最小化REINFORCE的實現24
2.6.2 用PyTorch構建策略26
2.6.3 採樣動作28
2.6.4 計算策略損失29
2.6.5 REINFORCE訓練循環30
2.6.6 同策略內存回放31
2.7 訓練REINFORCE智能體33
2.8 實驗結果36
2.8.1 實驗:評估折扣因子γ的影響36
2.8.2 實驗:評估基準線的影響37
2.9 總結39
2.10 擴展閱讀39
2.11 歷史回顧39

第3章 SARSA40
3.1 Q函數和V函數40
3.2 時序差分學習42
3.2.1 時間差分學習示例44
3.3 SARSA中的動作選擇48
3.3.1 探索和利用49
3.4 SARSA算法50
3.4.1 同策略算法51
3.5 實現SARSA52
3.5.1 動作函數:ε-貪婪52
3.5.2 計算Q損失52
3.5.3 SARSA訓練循環54
3.5.4 同策略批處理內存回放55
3.6 訓練SARSA智能體56
3.7 實驗結果58
3.7.1 實驗:評估學習率的影響58
3.8 總結60
3.9 擴展閱讀60
3.10 歷史回顧60

第4章 深度Q網絡62
4.1 學習DQN中的Q函數62
4.2 DQN中的動作選擇64
4.2.1 Boltzmann策略65
4.3 經驗回放67
4.4 DQN算法68
4.5 實現DQN69
4.5.1 計算Q損失70
4.5.2 DQN訓練循環70
4.5.3 內存回放71
4.6 訓練DQN智能體74
4.7 實驗結果77
4.7.1 實驗:評估網絡架構的影響77
4.8 總結78
4.9 擴展閱讀79
4.10 歷史回顧79

第5章 改進的深度Q網絡80
5.1 目標網絡80
5.2 雙重DQN算法82
5.3 優先級經驗回放85
5.3.1 重要性抽樣86
5.4 實現改進的DQN88
5.4.1 網絡初始化88
5.4.2 計算Q損失89
5.4.3 更新目標網絡90
5.4.4 包含目標網絡的DQN91
5.4.5 雙重DQN91
5.4.6 優先級經驗回放91
5.5 訓練DQN智能體玩Atari遊戲96
5.6 實驗結果101
5.6.1 實驗:評估雙重DQN與PER的影響101
5.7 總結104
5.8 擴展閱讀104

第二部分 組合方法
第6章 優勢演員-評論家算法106
6.1 演員106
6.2 評論家107
6.2.1 優勢函數107
6.2.2 學習優勢函數110
6.3 A2C算法111
6.4 實現A2C113
6.4.1 優勢估計113
6.4.2 計算值損失和策略損失115
6.4.3 演員-評論家訓練循環116
6.5 網絡架構117
6.6 訓練A2C智能體118
6.6.1 在Pong上使用n步回報的A2C算法118
6.6.2 在Pong上使用GAE的A2C算法121
6.6.3 在BipedalWalker上使用n步回報的A2C算法122
6.7 實驗結果124
6.7.1 實驗:評估n步回報的影響124
6.7.2 實驗:評估GAE中λ的影響126
6.8 總結127
6.9 擴展閱讀128
6.10 歷史回顧128

第7章 近端策略優化算法130
7.1 替代目標函數130
7.1.1 性能突然下降130
7.1.2 修改目標函數132
7.2 近端策略優化136
7.3 PPO算法139
7.4 實現PPO141
7.4.1 計算PPO的策略損失141
7.4.2 PPO訓練循環142
7.5 訓練PPO智能體143
7.5.1 在Pong上使用PPO算法143
7.5.2 在BipedalWalker上使用PPO算法146
7.6 實驗結果149
7.6.1 實驗:評估GAE中λ的影響149
7.6.2 實驗:評估裁剪變量ε的影響150
7.7 總結152
7.8 擴展閱讀152

第8章 並行方法153
8.1 同步並行153
8.2 異步並行154
8.2.1 Hogwild!算法155
8.3 訓練A3C智能體157
8.4 總結160
8.5 擴展閱讀160

第9章 算法總結161
第三部分 實踐細節

第10章 深度強化學習工程實踐164
10.1 軟件工程實踐164
10.1.1 單元測試164
10.1.2 代碼質量169
10.1.3 Git工作流170
10.2 調試技巧171
10.2.1 生命跡象172
10.2.2 策略梯度診斷172
10.2.3 數據診斷173
10.2.4 預處理器174
10.2.5 內存174
10.2.6 算法函數174
10.2.7 神經網絡175
10.2.8 算法簡化177
10.2.9 問題簡化177
10.2.10 超參數178
10.2.11 實驗室工作流178
10.3 Atari技巧179
10.4 深度強化學習小結181
10.4.1 超參數表181
10.4.2 算法性能比較184
10.5 總結186

第11章 SLM Lab187
11.1 SLM Lab算法實現187
11.2 spec文件188
11.2.1 搜索spec語法190
11.3 運行SLM Lab192
11.3.1 SLM Lab指令193
11.4 分析實驗結果193
11.4.1 實驗數據概述193
11.5 總結195

第12章 神經網絡架構196
12.1 神經網絡的類型196
12.1.1 多層感知機196
12.1.2 卷積神經網絡198
12.1.3 循環神經網絡199
12.2 選擇網絡族的指導方法199
12.2.1 MDP與POMDP200
12.2.2 根據環境選擇網絡202
12.3 網絡API204
12.3.1 輸入層和輸出層形狀推斷205
12.3.2 自動構建網絡207
12.3.3 訓練步驟209
12.3.4 基礎方法的使用210
12.4 總結211
12.5 擴展閱讀212

第13章 硬件213
13.1 計算機213
13.2 數據類型217
13.3 在強化學習中優化數據類型219
13.4 選擇硬件222
13.5 總結223

第四部分 環境設計
第14章 狀態226
14.1 狀態示例226
14.2 狀態完整性231
14.3 狀態復雜性231
14.4 狀態信息損失235
14.4.1 圖像灰度235
14.4.2 離散化235
14.4.3 散列衝突236
14.4.4 元信息損失236
14.5 預處理238
14.5.1 標準化239
14.5.2 圖像預處理240
14.5.3 時間預處理241
14.6 總結244

第15章 動作245
15.1 動作示例245
15.2 動作完整性247
15.3 動作複雜性248
15.4 總結251
15.5 擴展閱讀:日常事務中的動作設計252

第16章 獎勵255
16.1 獎勵的作用255
16.2 獎勵設計準則256
16.3 總結259

第17章 轉換函數260
17.1 可行性檢測260
17.2 真實性檢測262
17.3 總結263後記264
附錄A 深度強化學習時間線267
附錄B 示例環境269
參考文獻274