第一部分強化學習入門與基礎知識
1 引言2
1.1 強化學習的概念 2
1.1.1 巴浦洛夫的狗 3
1.1.2 俄羅斯方塊 4
1.2 站在被實驗者的角度看問題 5
1.3 強化學習效果的評估 8
1.3.1 不斷試錯 8
1.3.2 看重長期迴報 8
1.4 強化學習與監督學習 9
1.4.1 強化學習與監督學習的本質 9
1.4.2 模仿學習 10
1.5 強化學習的實驗環境 11
1.5.1 Arcade Learning Environment 12
1.5.2 Box2D 12
1.5.3 MuJoCo 13
1.5.4 Gym 14
1.6 本書的主要內容 15
1.7 參考資料 16
2 數學與機器學習基礎17
2.1 綫性代數基礎 17
2.2 對稱矩陣的性質 21
2.2.1 特徵值與特徵嚮量 21
2.2.2 對稱矩陣的特徵值和特徵嚮量 22
2.2.3 對稱矩陣的對角化 23
2.3 概率論 24
2.3.1 概率與分布 24
2.3.2 最大似然估計 27
2.4 重要性采樣 29
2.5 信息論基礎 33
2.6 KL 散度 35
2.7 凸函數及其性質 39
2.8 機器學習的基本概念 41
2.9 機器學習的目標函數 43
2.10 總結 45
3 優化算法47
3.1 梯度下降法 47
3.1.1 什麼是梯度下降法 47
3.1.2 優雅的步長 48
3.2 動量算法 53
3.3 共軛梯度法 59
3.3.1 精妙的約束 59
3.3.2 共軛 60
3.3.3 優化步長的確定 63
3.3.4 Gram-Schmidt 方法 64
3.3.5 共軛梯度 65
3.4 自然梯度法 69
3.4.1 基本概念 69
3.4.2 Fisher 信息矩陣 71
3.4.3 自然梯度法目標公式 76
3.5 總結 77
4 TensorFlow 入門78
4.1 TensorFlow 的基本使用方法 78
4.2 TensorFlow 原理介紹 82
4.2.1 創建變量的scope 83
4.2.2 創建一個Variable 背後的故事 89
4.2.3 運算操作 94
4.2.4 tf.gradients 96
4.2.5 Optimizer 102
4.2.6 TensorFlow 的反嚮傳播技巧 106
4.2.7 arg_scope 的使用 109
4.3 TensorFlow 的分布式訓練 113
4.3.1 基於MPI 的數據並行模型 114
4.3.2 MPI 的實現:mpi_adam 121
4.4 基於TensorFlow 實現經典網絡結構 122
4.4.1 多層感知器 122
4.4.2 捲積神經網絡 124
4.4.3 循環神經網絡 126
4.5 總結 129
4.6 參考資料 129
5 Gym 與Baselines 130
5.1 Gym 130
5.1.1 Gym 的安裝 130
5.1.2 Gym 的基本使用方法 132
5.1.3 利用Gym 框架實現一個經典的棋類遊戲:蛇棋 134
5.2 Baselines 138
5.2.1 Baselines 中的Python 3 新特性 139
5.2.2 tf_util 141
5.2.3 對Gym 平颱的擴展 142
5.3 總結 144
6 強化學習基本算法145
6.1 馬爾可夫決策過程 145
6.1.1 MDP:策略與環境模型 145
6.1.2 值函數與Bellman 公式 147
6.1.3 “錶格式”Agent 151
6.2 策略迭代 153
6.2.1 策略迭代法 153
6.2.2 策略提升的證明 159
6.2.3 策略迭代的效果展示 160
6.3 價值迭代 162
6.3.1 N 輪策略迭代 162
6.3.2 從動態規劃的角度談價值迭代 165
6.3.3 價值迭代的實現 167
6.4 泛化迭代 168
6.4.1 兩個極端 168
6.4.2 廣義策略迭代法 169
6.4.3 泛化迭代的實現 170
6.5 總結 171
第二部分最優價值算法
7 Q-Learning 基礎173
7.1 狀態轉移概率:從掌握到放棄 173
7.2 濛特卡羅方法 174
7.3 探索與利用 178
7.4 濛特卡羅的方差問題 181
7.5 時序差分法與SARSA 183
7.6 Q-Learning 186
7.7 Q-Learning 的收斂性分析 189
7.8 從錶格形式到價值模型 193
7.9 Deep Q Network 195
7.10 總結 202
7.11 參考資料 202
8 DQN 的改進算法203
8.1 Double Q-Learning 203
8.2 Priority Replay Buffer 204
8.3 Dueling DQN 209
8.4 解決DQN 的冷啓動問題 211
8.5 Distributional DQN 214
8.5.1 輸齣價值分布 214
8.5.2 分布的更新 216
8.6 Noisy Network 218
8.7 Rainbow 221
8.7.1 Rainbow 的模型特點 221
8.7.2 Deep Q Network 的實現 223
8.8 總結 227
8.9 參考資料 227
第三部分基於策略梯度的算法
9 基於策略梯度的算法229
9.1 策略梯度法 229
9.1.1 算法推導 230
9.1.2 算法分析 233
9.1.3 算法改進 234
9.2 Actor-Critic 算法 236
9.2.1 降低算法的方差 236
9.2.2 A3C 算法 238
9.2.3 A2C 算法實戰 240
9.3 總結 243
9.4 參考資料 243
10 使策略單調提升的優化算法244
10.1 TRPO 244
10.1.1 策略的差距 245
10.1.2 策略提升的目標公式 247
10.1.3 TRPO 的目標定義 248
10.1.4 自然梯度法求解 251
10.1.5 TRPO 的實現 254
10.2 GAE 256
10.2.1 GAE 的公式定義 256
10.2.2 基於GAE 和TRPO 的值函數優化 259
10.2.3 GAE 的實現 260
10.3 PPO 261
10.3.1 PPO 介紹 261
10.3.2 PPO 算法實踐 263
10.4 總結 264
10.5 參考資料 264
11 Off-Policy 策略梯度法265
11.1 Retrace 266
11.1.1 Retrace 的基本概念 266
11.1.2 Retrace 的算法實現 267
11.2 ACER 270
11.2.1 Off-Policy Actor-Critic 270
11.2.2 ACER 算法 272
11.2.3 ACER 的實現 276
11.3 DPG 279
11.3.1 連續空間的策略優化 279
11.3.2 策略模型參數的一緻性 280
11.3.3 DDPG 算法 283
11.3.4 DDPG 的實現 286
11.4 總結 289
11.5 參考資料 289
第四部分其他強化學習算法
12 稀疏迴報的求解方法291
12.1 稀疏迴報的睏難 291
12.2 層次強化學習 294
12.3 HER 298
12.3.1 漸進式學習 299
12.3.2 HER 的實現 301
12.4 總結 304
12.5 參考資料 304
13 Model-based 方法305
13.1 AlphaZero 305
13.1.1 圍棋遊戲 305
13.1.2 Alpha-Beta 樹 307
13.1.3 MCTS 309
13.1.4 策略價值模型 312
13.1.5 模型的對決 316
13.2 iLQR 316
13.2.1 綫性模型的求解法 317
13.2.2 非綫性模型的解法 322
13.2.3 iLQR 的實現 325
13.3 總結 328
13.4 參考資料 328
第五部分反嚮強化學習
14 反嚮強化學習入門330
14.1 基本概念 330
14.2 從最優策略求解迴報 332
14.2.1 求解迴報的目標函數 332
14.2.2 目標函數的約束 334
14.3 求解綫性規劃 335
14.3.1 綫性規劃的求解過程 335
14.3.2 實際案例 337
14.4 無限狀態下的求解 338
14.5 從樣本中學習 342
14.6 總結 344
14.7 參考資料 344
15 反嚮強化學習算法2.0 345
15.1 最大熵模型 345
15.1.1 指數傢族 346
15.1.2 最大熵模型的推導 349
15.1.3 最大熵模型的實現 354
15.2 最大熵反嚮強化學習 356
15.3 GAIL 361
15.3.1 GAN 的基本概念 361
15.3.2 GAN 的訓練分析 363
15.4 GAIL 實現 367
15.5 總結 370
15.6 參考資料 370
· · · · · · (
收起)