強化學習精要:核心算法與TensorFlow實現
叢書名 :博文視點AI係列
作 譯 者:馮超
齣版時間:2018-04 韆 字 數:470
版 次:01-01 頁 數:392
開 本:16開
裝 幀:
I S B N :9787121340000
換 版:
所屬分類:科技 >> 計算機 >> 計算機科學
紙質書定價:¥80.0
《強化學習精要:核心算法與TensorFlow 實現》用通俗幽默的語言深入淺齣地介紹瞭強化學習的基本算法與代碼實現,為讀者構建瞭一個完整的強化學習知識體係,同時介紹瞭這些算法的具體實現方式。從基本的馬爾可夫決策過程,到各種復雜的強化學習算法,讀者都可以從本書中學習到。本書除瞭介紹這些算法的原理,還深入分析瞭算法之間的內在聯係,可以幫助讀者舉一反三,掌握算法精髓。書中介紹的代碼可以幫助讀者快速將算法應用到實踐中。
目錄
第一部分強化學習入門與基礎知識
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 參考資料. . . . . . . . . . . . . . . .
深入淺齣強化學習:原理入門
定價 79.00
齣版社 電子工業齣版社
版次 1
齣版時間 2018年01月
開本 16
作者 郭憲,方勇純 著
裝幀 平裝
頁數 256
字數
ISBN編碼 9787121329180
1 緒論 1
1.1 這是一本什麼書 1
1.2 強化學習可以解決什麼問題 2
1.3 強化學習如何解決問題 4
1.4 強化學習算法分類及發展趨勢 5
1.5 強化學習仿真環境構建 7
1.5.1 gym安裝及簡單的demo示例 8
1.5.2 深入剖析gym環境構建 10
1.6 本書主要內容及安排 12
第*篇 強化學習基礎 17
2 馬爾科夫決策過程 18
2.1 馬爾科夫決策過程理論講解 18
2.2 MDP中的概率學基礎講解 26
2.3 基於gym的MDP實例講解 29
2.4 習題 34
3 基於模型的動態規劃方法 36
3.1 基於模型的動態規劃方法理論 36
3.2 動態規劃中的數學基礎講解 47
3.2.1 綫性方程組的迭代解法 47
3.2.2 壓縮映射證明策略評估的收斂性 49
3.3 基於gym的編程實例 52
3.4 *優控製與強化學習比較 54
3.5 習題 56
第*篇 基於值函數的強化學習方法 57
4 基於濛特卡羅的強化學習方法 58
4.1 基於濛特卡羅方法的理論 58
4.2 統計學基礎知識 67
4.3 基於Python的編程實例 71
4.4 習題 74
5 基於時間差分的強化學習方法 75
5.1 基於時間差分強化學習算法理論講解 75
5.2 基於Python和gym的編程實例 83
5.3 習題 87
6 基於值函數逼近的強化學習方法 88
6.1 基於值函數逼近的理論講解 88
6.2 DQN及其變種 94
6.2.1 DQN方法 94
6.2.2 Double DQN 100
6.2.3 優先迴放(Prioritized Replay) 102
6.2.4 Dueling DQN 104
6.3 函數逼近方法 105
6.3.1 基於非參數的函數逼近 105
6.3.2 基於參數的函數逼近 111
6.3.3 捲積神經網絡 117
6.4 習題 123
第三篇 基於直接策略搜索的強化學習方法 125
7 基於策略梯度的強化學習方法 126
7.1 基於策略梯度的強化學習方法理論講解 126
7.2 基於gym和TensorFlow的策略梯度算法實現 134
7.2.1 安裝Tensorflow 135
7.2.2 策略梯度算法理論基礎 135
7.2.3 Softmax策略及其損失函數 136
7.2.4 基於TensorFlow的策略梯度算法實現 138
7.2.5 基於策略梯度算法的小車倒立擺問題 141
7.3 習題 141
8 基於置信域策略優化的強化學習方法 142
8.1 理論基礎 143
8.2 TRPO中的數學知識 153
8.2.1 信息論 153
8.2.2 優化方法 155
8.3 習題 164
9 基於確定性策略搜索的強化學習方法 165
9.1 理論基礎 165
9.2 習題 170
10 基於引導策略搜索的強化學習方法 171
10.1 理論基礎 171
10.2 GPS中涉及的數學基礎 178
10.2.1 監督相LBFGS優化方法 178
10.2.2 ADMM算法 179
10.2.3 KL散度與變分推理 183
10.3 習題 184
第四篇 強化學習研究及前沿 185
11 逆嚮強化學習 186
11.1 概述 186
11.2 基於*大邊際的逆嚮強化學習 187
11.3 基於*大熵的逆嚮強化學習 194
11.4 習題 201
12 組閤策略梯度和值函數方法 202
13 值迭代網絡 207
13.1 為什麼要提齣值迭代網絡 207
13.2 值迭代網絡 210
14 基於模型的強化學習方法:PILCO及其擴展 214
14.1 概述 214
14.2 PILCO 216
14.3 濾波PILCO和探索PILCO 226
14.3.1 濾波PILCO算法 227
14.3.2 有嚮探索PILCO算法 230
14.4 深度PILCO 232
後記 235
參考文獻 237
推薦序一
強化學習是機器學習的一個重要分支,它試圖解決決策優化的問題。所謂決策優化,是指麵對特定狀態(State,S),采取什麼行動方案(Action,A),纔能使收益*大(Reward,R)。很多問題都與決策優化有關,比如下棋、投資、課程安排、駕車,動作模仿等。
AlphaGo的核心算法,就是強化學習。AlphaGo不僅穩操勝券地戰勝瞭當今世界所有人類高手,而且甚至不需要學習人類棋手的棋譜,完全靠自己摸索,就在短短幾天內,發現並超*瞭一韆多年來人類積纍的全部圍棋戰略戰術。
*簡單的強化學習的數學模型,是馬爾科夫決策過程(Markov Decision Process,MDP)。之所以說MDP是一個簡單的模型,是因為它對問題做瞭很多限製。
1.麵對的狀態st,數量是有限的。
2.采取的行動方案at,數量也是有限的。
3.對應於特定狀態st,當下的收益rt是明確的。
作為一個深度學習愛好者,我一直在尋找一本能夠將理論與實踐完美結閤的書籍,而《深入淺齣強化學習原理入門》恰恰滿足瞭我的期待。這本書的寫作風格非常“接地氣”,沒有那些過於學術化的術語,而是用大量生動形象的例子來闡述復雜的概念。比如,它在講解策略梯度的時候,用瞭“下棋”的比喻,讓我一下子就理解瞭目標是最大化纍積奬勵的思想。而且,書中還提供瞭很多實際的Python代碼片段,雖然我還沒有機會自己動手敲完,但光是看代碼,就能感受到作者是如何將理論模型轉化為可執行的程序的。這對於想要將強化學習應用到實際項目中的讀者來說,無疑是巨大的福利。書中的圖示也畫得非常精美,將抽象的算法流程可視化,大大降低瞭理解難度。我印象最深的是關於“探索與利用”的權衡,作者通過一個簡單的“撿硬幣”的遊戲,就將其中的精髓講得淋灕盡緻。這本書真的讓我覺得強化學習沒有那麼遙不可及,而且充滿瞭趣味性。
評分讀完《深入淺齣強化學習原理入門》後,我最大的感受就是這本書真的做到瞭“深入淺齣”。它不像市麵上一些強化學習書籍那樣,上來就是鋪天蓋地的數學公式和復雜的模型推導,而是循序漸進,先從最核心的概念講起,然後再慢慢引入各種算法。我之前看過一些關於強化學習的書,總是被各種符號和公式弄得頭暈目眩,但這本書卻用一種非常生動活潑的語言,將這些概念變得清晰起來。例如,它在講解“馬爾可夫決策過程”的時候,並沒有直接給齣數學定義,而是通過一個“迷宮尋寶”的場景來比喻,讓我一下子就理解瞭狀態轉移、動作選擇和奬勵的含義。書中的案例也非常貼切,很多都是生活中或者遊戲中的例子,讀起來一點都不枯燥。而且,作者還很注重講解算法背後的思想和intuition,這對於我理解算法的本質非常有幫助,而不是僅僅停留在“知其然”的層麵。
評分這本書絕對是我近期讀到的一本非常震撼的機器學習入門讀物!我之前對機器學習一直都是“聽過但不知其所以然”的狀態,對各種模型和算法都感覺很模糊,總覺得它們是黑箱操作。但《強化學習精要》這本書,真的就像它的名字一樣,把強化學習最核心、最精要的部分,用一種非常清晰、易懂的方式講解齣來瞭。作者的敘述邏輯非常棒,從最基礎的概念,比如狀態、動作、奬勵,一步一步深入到Q-learning、SARSA、DQN等經典算法。而且,它不僅僅是理論的堆砌,更重要的是,它會告訴你這些算法背後的思考邏輯和適用場景,讓你明白為什麼會有這些算法,以及它們是如何解決實際問題的。我尤其喜歡書中對數學公式的講解,不是那種乾巴巴的推導,而是會結閤直觀的比喻和圖示,讓你很容易理解。對於我這種數學基礎不算特彆紮實的人來說,這一點太重要瞭!讀完第一部分,我感覺自己對強化學習的基本框架已經有瞭非常紮實的認識,那種豁然開朗的感覺,真的太棒瞭!
評分這套書在講解強化學習的“精要”和“原理”方麵,可以說做到瞭很好的互補。我個人對算法的理論基礎比較感興趣,所以《強化學習精要》對我來說很有價值。它對經典算法的推導過程清晰,並且對算法的優缺點進行瞭客觀的分析,這有助於我選擇最適閤特定問題的算法。書中關於“泛化能力”、“收斂性”等理論問題的探討,也讓我對強化學習的局限性有瞭更深的認識。而《深入淺齣強化學習原理入門》則提供瞭很好的實踐指導。它不僅僅是理論的講解,更重要的是,它用一種非常直觀的方式,將強化學習的概念和算法的實現聯係起來。書中的代碼示例,雖然不一定包含所有細節,但足以勾勒齣算法實現的框架。我喜歡它將復雜的概念拆解成小模塊,然後逐步構建起來的方式。總的來說,這兩本書結閤起來,能夠幫助讀者從宏觀到微觀,從理論到實踐,全麵地掌握強化學習的核心知識。
評分我是一名剛入職的AI算法工程師,工作中經常會接觸到強化學習相關的任務,但之前的基礎比較薄弱。在同事的推薦下,我入手瞭這套書,整體感覺非常驚喜。其中《強化學習精要》這本書,在算法的深度和廣度上都做得相當到位,它不僅介紹瞭DQN、Policy Gradient這些基礎算法,還涉及到瞭Actor-Critic、PPO等更先進的模型。更難得的是,它還花瞭不少篇幅講解瞭這些算法在實際應用中的一些優化技巧和注意事項,比如經驗迴放、目標網絡等,這些都是在項目中經常會用到的。書中的TensorFlow實現部分,代碼寫得非常規範,注釋也很詳細,我跟著代碼跑瞭一些示例,發現它們都能夠正常運行,並且效果不錯。這對於我快速上手並進行二次開發非常有幫助。而且,書中還提供瞭一些經典強化學習問題的解決方案,例如Atari遊戲、倒立擺等,這些都是很好的實踐案例,可以幫助我們鞏固所學知識。
本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度,google,bing,sogou 等
© 2025 book.tinynews.org All Rights Reserved. 静思书屋 版权所有