深度強化學習算法與實踐:基於PyTorch的實現
內容描述
本書從強化學習的基礎知識出發,結合PyTorch深度學習框架,介紹深度強化學習算法各種模型的相關算法原理和基於PyTorch的代碼實現。作為一本介紹深度強化學習知識的相關圖書,本書介紹了常用的強化學習環境,基於價值網絡的強化學習算法和基於策略梯度的強化學習算法,以及一些常用的比較流行的深度強化學習算法(如蒙特卡洛樹搜索)等。另外,還介紹了深度強化學習算法在實際問題中的一些應用。
目錄大綱
第1章 強化學習簡介 1
1.1 強化學習的歷史 1
1.1.1 人工智能的歷史 1
1.1.2 強化學習和人工智能的關係 4
1.2 強化學習基本概念 8
1.2.1 智能體相關概念 8
1.2.2 馬爾可夫決策過程 9
1.2.3 動作價值函數和狀態-動作價值函數 11
1.3 強化學習算法的分類 12
1.3.1 基於模型的(Model-Based)和無模型的(Model-Free) 13
1.3.2 基於策略的(Policy-Based)和基於價值的(Value-Based) 13
1.3.3 在線(On-policy)算法和離線(Off-policy)算法 13
1.4 深度強化學習基本概念 14
1.5 強化學習的優缺點 15
1.6 蒙特卡洛梯度估計 15
1.7 總結 19
第2章 深入了解強化學習 20
2.1 強化學習基本要素 20
2.1.1 馬爾可夫決策過程和回溯圖 20
2.1.2 貪心策略和#優策略 22
2.1.3 #優策略的迭代算法 24
2.2 強化學習的探索和利用 26
2.3 策略迭代和價值迭代 32
2.3.1 策略迭代 32
2.3.2 價值迭代 33
2.4 貝爾曼方程及其應用 35
2.5 總結 37
第3章 強化學習環境 38
3.1 簡單的強化學習環境 39
3.1.1 網格世界(Grid World) 39
3.1.2 多臂(Multi-armed Bandit) 40
3.1.3 井字棋(Tic-Tac-Toe) 40
3.2 OpenAI Gym環境 47
3.2.1 Gym環境的安裝和基本接口 47
3.2.2 Gym的經典控制環境 50
3.2.3 Gym的Atari強化學習環境 53
3.2.4 Gym的MuJoCo環境 55
3.2.5 自定義Gym強化學習環境 57
3.3 DeepMind Lab強化學習環境 60
3.4 其他強化學習環境 63
3.4.1 PySC2 強化學習環境 63
3.4.2 OpenSpiel強化學習環境 66
3.5 深度強化學習框架簡介 68
3.5.1 Dopamine框架 68
3.5.1 ReAgent框架 70
3.6 總結 71
第4章 深度Q函數強化學習算法 72
4.1 經典深度Q網絡算法(DQN) 72
4.1.1 DQN算法理論背景 73
4.1.2 DQN模型結構 75
4.1.3 DQN模型的輸入 78
4.1.4 DQN模型的訓練 80
4.1.5 結合DQN算法的採樣和模型的訓練 82
4.2 雙網絡Q學習算法(Double Q-Learning) 84
4.2.1 算法原理 84
4.2.2 算法實現 86
4.2.3 算法效果 88
4.3 優先經驗回放(Prioritized Experience Replay) 89
4.3.1 算法原理 89
4.3.2 算法實現 92
4.3.3 算法效果 95
4.4 競爭DQN算法(Duel DQN) 96
4.4.1 算法原理 98
4.4.2 算法實現 99
4.4.3 算法效果 102
4.5 分佈形式的DQN算法(Distributional DQN) 103
4.5.1 分類DQN模型 103
4.5.2 分類DQN模型算法實現 106
4.5.3 分類DQN模型算法效果 110
4.5.4 分位數回歸DQN模型 111
4.5.5 分位數回歸DQN模型算法實現 112
4.5.6 分位數回歸DQN模型算法效果 115
4.5.7 分類DQN模型小結 116
4.6 彩虹算法(Rainbow) 117
4.6.1 彩虹算法對DQN的優化 117
4.6.2 彩虹算法的部分實現 120
4.6.3 彩虹算法的模型效果 125
4.7 總結 128
第5章 策略梯度強化學習算法 129
5.1 經典策略梯度算法(VPG) 130
5.1.1 算法原理 130
5.1.2 基於離散動作空間算法的模型實現 132
5.1.3 基於離散動作空間算法的運行結果 137
5.1.4 基於連續動作空間算法的實現 138
5.1.5 基於連續動作空間算法的運行結果 143
5.1.6 小結 144
5.2 優勢演員-評論家算法(A2C和A3C) 145
5.2.1 算法原理 145
5.2.2 泛化優勢估計(Generalized Advantage Estimation) 147
5.2.3 熵正則化方法 149
5.2.4 優勢演員-評論家算法的實現(離散動作空間) 149
5.2.5 優勢演員-評論家算法運行效果(離散動作空間) 158
5.2.6 算法實現(連續動作空間) 158
5.2.7 運行效果(連續動作空間) 160
5.2.8 異步優勢演員-評論家算法的實現 160
5.2.9 異步優勢演員-評論家算法的效果 164
5.3 置信區間策略優化算法 165
5.3.1 算法原理 166
5.3.2 近端策略優化算法的實現 172
5.3.3 近端策略優化算法的效果(離散動作空間) 174
5.4 克羅內克分解近似置信區間算法(ACKTR) 175
5.4.1 算法原理 175
5.4.2 算法實現 179
5.4.3 算法效果 183
5.5 軟演員-評論家算法(SAC) 184
5.5.1 算法的基本原理 184
5.5.2 算法的實現(連續動作空間) 186
5.5.3 算法的效果(連續動作空間) 193
5.6 總結 194
第6章 其他強化學習算法 195
6.1 噪聲網絡(N0isy Networks) 195
6.1.1 噪聲網絡的原理 195
6.1.2 噪聲網絡的實現 197
6.1.3 噪聲網絡的效果 201
6.2 深度確定性策略梯度算法(DDPG) 203
6.2.1 算法原理 203
6.2.2 算法實現 205
6.2.3 算法效果 209
6.3 雙延遲深度確定性策略梯度算法(TD3) 210
6.3.1 算法原理 210
6.3.2 算法實現 211
6.3.3 算法效果 213
6.4 蒙特卡洛樹搜索(MCTS) 214
6.4.1 算法原理 214
6.4.2 算法的基本步驟 215
6.4.3 算法使用的模型 219
6.4.4 算法的博弈樹表示 221
6.4.5 算法的搜索執行過程 222
6.5 總結 225
第7章 深度強化學習在實踐中的應用 226
7.1 神經網絡結構搜索(NAS) 226
7.1.1 算法原理 226
7.1.2 算法效果 229
7.1.3 總結 230
7.2 超分辨率模型(SRGAN) 230
7.2.1 算法原理 231
7.2.2 總結 232
7.3 序列生成模型(SeqGAN) 233
7.3.1 算法原理 233
7.3.2 總結 235
7.4 基於深度強化學習的#系統 235
7.4.1 #系統的強化學習環境構建 236
7.4.2 #系統的強化學習算法 237
7.4.3 總結 238
7.5 基於深度強化學習的交易系統 239
7.5.1 算法原理 239
7.5.2 總結 241
7.6 總結 241
附錄A 本書使用的數學符號 242
參考文獻 244