深度強化學習:基礎、研究與應用

董豪 等

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

商品描述

深度強化學習結合深度學習與強化學習算法各自的優勢解決復雜的決策任務。得益於 DeepMind AlphaGo 和 OpenAI Five 成功的案例,深度強化學習受到大量的關註,相關技術廣泛應用於不同的領域。本書分為三大部分,覆蓋深度強化學習的全部內容。第一部分介紹深度學習和強化學習的入門知識、一些非常基礎的深度強化學習算法及其實現細節,包括第 1~6 章。第二部分是一些精選的深度強化學習研究題目,這些內容對準備開展深度強化學習研究的讀者非常有用,包括第 7~12 章。第三部分提供了豐富的應用案例,包括 AlphaZero、讓機器人學習跑步等,包括第 13~17 章。本書是為電腦科學專業背景、希望從零開始學習深度強化學習並開展研究課題和實踐項目的學生準備的。本書也適合沒有很強的機器學習背景、但是希望快速學習深度強化學習並將其應用到具體產品中的軟件工程師閱讀。

作者簡介

董豪
北京大學計算機系前沿計算研究中心助理教授、深圳鵬城實驗室雙聘成員。
於2019 年秋獲得英國帝國理工學院博士學位。
研究方向主要涉及計算機視覺和生成模型,目的是降低學習智能係統所需要的數據。
致力於推廣人工智能技術,是深度學習開源框架TensorLayer 的創始人,此框架獲得ACM MM 2017 年度最佳開源軟件獎。
在英國帝國理工學院和英國中央蘭開夏大學獲得一等研究生和一等本科學位。


丁子涵英國帝國理工學院碩士。
獲普林斯頓大學博士生全額獎學金,曾在加拿大Borealis AI、騰訊Robotics X 實驗室有過工作經歷。
本科就讀於中國科學技術大學,獲物理和計算機雙學位。
研究方向主要涉及強化學習、機器人控制、計算機視覺等。
在ICRA、NeurIPS、AAAI、IJCAI、Physical Review 等頂級期刊與會議發表多篇論文,是TensorLayer-RLzoo、TensorLet 和Arena 開源項目的貢獻者。


仉尚航加州大學伯克利分校,BAIR 實驗室(Berkeley AI Research Lab)博士後研究員。
於2018年獲得卡內基・梅隆大學博士學位。
研究方向主要涉及深度學習、計算機視覺及強化學習。
在NeurIPS、CVPR、ICCV、TNNLS、AAAI、IJCAI 等人工智能頂級期刊和會議發表多篇論文。
目前主要從事Human-inspired sample-efficient learning 理論與算法研究,包括low-shot learning、domain adaptation、self learning 等。
獲得AAAI 2021 Best Paper Award, 美國2018 Rising Stars in EECS,及Adobe Collaboration Fund、Qualcomm Innovation Fellowship Finalist Award 等獎勵。


袁航英國牛津大學計算機科學博士在讀、李嘉誠獎學金獲得者,主攻人工智能安全和深度學習在健康醫療中的運用。
曾在歐美各大高校和研究機構研習,如帝國理工學院、馬克斯普朗克研究所、瑞士聯邦理工和卡內基・梅隆大學。


張鴻銘中國科學院自動化研究所算法工程師。
於2018 年獲得北京大學碩士研究生學位。
本科就讀於北京師範大學,獲理學學士學位。
研究方向涉及統計機器學習、強化學習和啟發式搜索。


張敬卿英國帝國理工學院計算機系博士生,師從帝國理工學院數據科學院院長郭毅可院士。
主要研究方向為深度學習、機器學習、文本挖掘、數據挖掘及其應用。
曾獲得中國國家獎學金。
2016年於清華大學計算機科學與技術系獲得學士學位,2017 年於帝國理工學院計算機系獲得一等研究性碩士學位。


黃彥華就職於小紅書,負責大規模機器學習及強化學習在推薦系統中的應用。
2016 年在華東師範大學數學系獲得理學學士學位。
曾貢獻過開源項目PyTorch、TensorFlow 和Ray。


余天洋啟元世界算法工程師,負責強化學習在博弈場景中的應用。
碩士畢業於南昌大學,是TensorLayer-RLzoo 開源項目的貢獻者。


張華清穀歌公司算法和機器學習工程師,側重於多智能體強化學習和多層次結構博弈論方向研究,於華中科技大學獲得學士學位,後於2017 年獲得休斯敦大學博士學位。


黃銳桐Borealis AI (加拿大皇家銀行研究院)團隊主管。
於2017 年獲得阿爾伯塔大學統計機器學習博士學位。
本科就讀於中國科學技術大學數學系,後於滑鐵盧大學獲得計算機碩士學位。
研究方向主要涉及在線學習、優化、對抗學習和強化學習。


廖培元目前本科就讀於卡內基・梅隆大學計算機科學學院。
研究方向主要涉及表示學習和多模態機器學習。曾貢獻過開源項目

目錄大綱

基礎部分1第1章深度學習入門2
1.1簡介.............................................2
1.2感知器...........................................3
1.3多層感知器.........................................7
1.4激活函數..........................................9
1.5損失函數..........................................11
1.6優化.............................................13
1.6.1梯度下降和誤差的反向傳播...........................13
1.6.2隨機梯度下降和自適應學習率..........................15
1.6.3超參數篩選....................................17
1.7正則化...........................................18
1.7.1過擬合.......................................18
1.7.2權重衰減......................................18
1.7.3 Dropout .......................................20
1.7.4批標準化......................................20
1.7.5其他緩和過擬合的方法..............................21
1.8卷積神經網絡.......................................22
1.9循環神經網絡.......................................25
1.10深度學習的實現樣例...................................28
1.10.1張量和梯度....................................28
1.10.2定義模型......................................29
1.10.3自定義層......................................31
1.10.4多層感知器:MNIST數據集上的圖像分類...................33
1.10.5卷積神經網絡:CIFAR-10數據集上的圖像分類................35
1.10.6序列到序列模型:聊天機器人..........................36

第2章強化學習入門43
2.1簡介.............................................43
2.2在線預測和在線學習...................................46
2.2.1簡介........................................46
2.2.2隨機多臂賭博機..................................48
2.2.3對抗多臂賭博機..................................50
2.2.4上下文賭博機...................................51
2.3馬爾可夫過程.......................................52
2.3.1簡介........................................52
2.3.2馬爾可夫獎勵過程................................54
2.3.3馬爾可夫決策過程................................57
2.3.4貝爾曼方程和最優性...............................61
2.3.5其他重要概念...................................64
2.4動態規劃..........................................64
2.4.1策略迭代......................................65
2.4.2價值迭代......................................67
2.4.3其他DPs:異步DP、近似DP和實時DP ...................68
2.5蒙特卡羅..........................................70
2.5.1蒙特卡羅預測...................................70
2.5.2蒙特卡羅控制...................................71
2.5.3增量蒙特卡羅...................................72
2.6時間差分學習.......................................73
2.6.1時間差分預測...................................73
2.6.2 Sarsa:在線策略TD控制.............................77
2.6.3 Q-Learning:離線策略TD控制.........................80
2.7策略優化..........................................80
2.7.1簡介........................................80
2.7.2基於價值的優化..................................84
2.7.3基於策略的優化..................................89
2.7.4結合基於策略和基於價值的方法........................105

第3章強化學習算法分類110
3.1基於模型的方法和無模型的方法.............................111
3.2基於價值的方法和基於策略的方法...........................113
3.3蒙特卡羅方法和時間差分方法..............................114
3.4在線策略方法和離線策略方法..............................115

第4章深度Q網絡119
4.1 Sarsa和Q-Learning ....................................121
4.2為什麼使用深度學習:價值函數逼近...........................121
4.3 DQN .............................................123
4.4 Double DQN ........................................124
4.5 Dueling DQN ........................................125
4.6優先經驗回放.......................................127
4.7其他改進內容:多步學習、噪聲網絡和值分佈強化學習...............128
4.8 DQN代碼實例.......................................131

第5章策略梯度146
5.1簡介.............................................146
5.2 REINFORCE:初版策略梯度...............................147
5.3 Actor-Critic .........................................149
5.4生成對抗網絡和Actor-Critic ...............................150
5.5同步優勢Actor-Critic ...................................152
5.6異步優勢Actor-Critic ...................................153
5.7信賴域策略優化......................................154
5.8近端策略優化.......................................157
5.9使用Kronecker因子化信賴域的Actor-Critic ......................159
5.10策略梯度代碼例子.....................................162
5.10.1相關的Gym環境.................................162
5.10.2 REINFORCE: Atari Pong和CartPole-V0 .....................165
5.10.3 AC: CartPole-V0 ..................................173
5.10.4 A3C: BipedalWalker-v2 ..............................176
5.10.5 TRPO: Pendulum-V0 ................................181
5.10.6 PPO: Pendulum-V0 .................................192

第6章深度Q網絡和Actor-Critic的結合200
6.1簡介.............................................200
6.2深度確定性策略梯度算法.................................201
6.3孿生延遲DDPG算法...................................203
6.4柔性Actor-Critic算法...................................206
6.4.1柔性策略迭代...................................206
6.4.2 SAC .........................................207
6.5代碼例子..........................................209
6.5.1相關的Gym環境.................................209
6.5.2 DDPG: Pendulum-V0 ...............................209
6.5.3 TD3: Pendulum-V0 .................................215
6.5.4 SAC: Pendulum-v0 .................................225
研究部分236

第7章深度強化學習的挑戰237
7.1樣本效率..........................................237
7.2學習穩定性.........................................240
7.3災難性遺忘.........................................242
7.4探索.............................................243
7.5元學習和表徵學習.....................................245
7.6多智能體強化學習.....................................246
7.7模擬到現實.........................................247
7.8大規模強化學習......................................251
7.9其他挑戰..........................................252

第8章模仿學習258
8.1簡介.............................................258
8.2行為克隆方法.......................................260
8.2.1行為克隆方法的挑戰...............................260
8.2.2數據集聚合....................................261
8.2.3 Variational Dropout ................................262
8.2.4行為克隆的其他方法...............................262
8.3逆向強化學習方法.....................................263
8.3.1簡介........................................263
8.3.2逆向強化學習方法的挑戰............................264
8.3.3生成對抗模仿學習................................265
8.3.4生成對抗網絡指導性代價學習..........................266
8.3.5對抗性逆向強化學習...............................268
8.4從觀察量進行模仿學習..................................269
8.4.1基於模型方法...................................269
8.4.2無模型方法....................................272
8.4.3從觀察量模仿學習的挑戰............................277
8.5概率性方法.........................................277
8.6模仿學習作為強化學習的初始化.............................279
8.7強化學習中利用示範數據的其他方法..........................280
8.7.1將示範數據導入經驗回放緩存..........................280
8.7.2標準化Actor-Critic ................................281
8.7.3用示範數據進行獎勵塑形............................282
8.8總結.............................................282

第9章集成學習與規劃289
9.1簡介.............................................289
9.2基於模型的方法......................................290
9.3集成模式架構.......................................292
9.4基於模擬的搜索......................................293
9.4.1樸素蒙特卡羅搜索................................294
9.4.2蒙特卡羅樹搜索..................................294
9.4.3時間差分搜索...................................295

第10章分層強化學習298
10.1簡介.............................................298
10.2選項框架..........................................299
10.2.1戰略專注作家...................................300
10.2.2選項-批判者結構.................................303
10.3封建制強化學習......................................305
10.3.1封建製網絡....................................305
10.3.2離線策略修正...................................307
10.4其他工作..........................................309

第11章多智能體強化學習315
11.1簡介.............................................315
11.2優化和均衡.........................................316
11.2.1納什均衡......................................317
11.2.2關聯性均衡....................................318
11.2.3斯塔克爾伯格博弈................................320
11.3競爭與合作.........................................321
11.3.1合作........................................321
11.3.2零和博弈......................................321
11.3.3同時決策下的競爭................................322
11.3.4順序決策下的競爭................................323
11.4博弈分析架構.......................................324

第12章並行計算326
12.1簡介.............................................326
12.2同步和異步.........................................327
12.3並行計算網絡.......................................329
12.4分佈式強化學習算法...................................330
12.4.1異步優勢Actor-Critic ...............................330
12.4.2 GPU/CPU混合式異步優勢Actor-Critic .....................332
12.4.3分佈式近端策略優化...............................333
12.4.4重要性加權的行動者-學習者結構和可擴展高效深度強化學習........336
12.4.5 Ape-X、回溯-行動者和分佈式深度循環回放Q網絡.............338
12.4.6 Gorila ........................................340
12.5分佈式計算架構......................................340
應用部分343

第13章Learning to Run 344
13.1 NeurIPS 2017挑戰:Learning to Run ...........................344
13.1.1環境介紹......................................344
13.1.2安裝........................................346
13.2訓練智能體.........................................347
13.2.1並行訓練......................................348
13.2.2小技巧.......................................351
13.2.3學習結果......................................352

第14章魯棒的圖像增強354
14.1圖像增強..........................................354
14.2用於魯棒處理的強化學習.................................356

第15章AlphaZero 366
15.1簡介.............................................366
15.2組合博弈..........................................367
15.3蒙特卡羅樹搜索......................................370
15.4 AlphaZero:棋類游戲的通用算法............................376

第16章模擬環境中機器人學習388
16.1機器人模擬.........................................389
16.2強化學習用於機器人任務.................................405
16.2.1並行訓練......................................407
16.2.2學習效果......................................407
16.2.3域隨機化......................................408
16.2.4機器人學習基準..................................409
16.2.5其他模擬器....................................409

第17章Arena:多智能體強化學習平台412
17.1安裝.............................................413
17.2用Arena開發遊戲.....................................413
17.2.1簡單的單玩家遊戲................................414
17.2.2簡單的使用獎勵機制的雙玩家遊戲.......................416
17.2.3高級設置......................................420
17.2.4導出二進制遊戲..................................424
17.3 MARL訓練........................................427
17.3.1設置X-Server ...................................427
17.3.2進行訓練......................................429
17.3.3可視化.......................................431
17.3.4致謝........................................431
第18章深度強化學習應用實踐技巧433
18.1概覽:如何應用深度強化學習..............................433
18.2實現階段..........................................434
18.3訓練和調試階段......................................440

總結部分445
附錄A算法總結表446
附錄B算法速查表451
B.1深度學習..........................................451
B.1.1隨機梯度下降...................................451
B.1.2 Adam優化器....................................452
B.2強化學習..........................................452
B.2.1賭博機.......................................452
B.2.2動態規劃......................................453
B.2.3蒙特卡羅......................................454
B.3深度強化學習.......................................458
B.4高等深度強化學習.....................................467
B.4.1模仿學習......................................467
B.4.2基於模型的強化學習...............................468
B.4.3分層強化學習...................................470
B.4.4多智能體強化學習................................471
B.4.5並行計算......................................472
附錄C中英文對照表476