本書前半部分介紹強化學習的重要思想和基礎知識,后半部分介紹如何將深度學習應用于強化學習,遴選講解了深度強化學習的最新技術。全書從最適合入門的多臂老虎機問題切入,依次介紹了定義一般強化學習問題的馬爾可夫決策過程、用于尋找最佳答案的貝爾曼方程,以及解決貝爾曼方程的動態(tài)規(guī)劃法、蒙特卡洛方法和TD方法。隨后,神經(jīng)網(wǎng)絡和Q學習、DQN、策略梯度法等幾章則分別討論了深度學習在強化學習領域的應用。本書延續(xù)魚書系列的風格,搭配豐富的圖、表、代碼示例,加上輕松、簡明的講解,讓人循序漸進地理解強化學習中各種方法之間的關系,于不知不覺中登堂入室。
齋藤康毅,1984年出生于日本長崎縣,東京工業(yè)大學畢業(yè),并完成東京大學研究生院課程。目前在某企業(yè)從事人工智能相關的研究和開發(fā)工作。著有魚書系列《深度學習入門:基于Python的理論與實現(xiàn)》《深度學習進階:自然語言處理》《深度學習入門2:自制框架》,同時也是Python in Practice、The Elements of Computing Systems、Building MachineLearning Systems with Python的日文版譯者。 【譯者介紹】 鄭明智,智慧醫(yī)療工程師。主要研究方向為醫(yī)療與前沿ICT技術的結(jié)合及其應用。譯有《深度學習基礎與實踐》《詳解深度學習》《白話機器學習的數(shù)學》等書。
前言
第 1章 老虎機問題 1
1.1 機器學習的分類與強化學習 1
1.1.1 監(jiān)督學習 2
1.1.2 無監(jiān)督學習 2
1.1.3 強化學習 3
1.2 老虎機問題 5
1.2.1 什么是老虎機問題 5
1.2.2 什么是好的老虎機 7
1.2.3 使用數(shù)學式表示 8
1.3 老虎機算法 9
1.3.1 價值的估計方法 10
1.3.2 求平均值的實現(xiàn) 12
1.3.3 玩家的策略 15
1.4 老虎機算法的實現(xiàn) 17
1.4.1 老虎機的實現(xiàn) 17
1.4.2 智能代理的實現(xiàn) 19
1.4.3 嘗試運行 20
1.4.4 算法平均的特性 23
1.5 非穩(wěn)態(tài)問題 28
1.5.1 解決非穩(wěn)態(tài)問題前的準備工作 29
1.5.2 解決非穩(wěn)態(tài)問題 32
1.6 小結(jié) 34
第 2章 馬爾可夫決策過程 36
2.1 什么是MDP 37
2.1.1 MDP的具體例子 37
2.1.2 智能代理與環(huán)境的互動 39
2.2 環(huán)境和智能代理的數(shù)學表示 40
2.2.1 狀態(tài)遷移 40
2.2.2 獎勵函數(shù) 42
2.2.3 智能代理的策略 43
2.3 MDP的目標 45
2.3.1 回合制任務和連續(xù)性任務 45
2.3.2 收益 46
2.3.3 狀態(tài)價值函數(shù) 47
2.3.4 最優(yōu)策略和最優(yōu)價值函數(shù) 48
2.4 MDP的例子 50
2.4.1 回溯線形圖 51
2.4.2 找出最優(yōu)策略 52
2.5 小結(jié) 54
第3章 貝爾曼方程 56
3.1 貝爾曼方程的推導 57
3.1.1 概率和期望值(推導貝爾曼方程的準備)57
3.1.2 貝爾曼方程的推導 60
3.2 貝爾曼方程的例子 64
3.2.1 有兩個方格的網(wǎng)格世界 64
3.2.2 貝爾曼方程的意義 68
3.3 行動價值函數(shù)與貝爾曼方程 68
3.3.1 行動價值函數(shù) 69
3.3.2 使用行動價值函數(shù)的貝爾曼方程 70
3.4 貝爾曼最優(yōu)方程 71
3.4.1 狀態(tài)價值函數(shù)的貝爾曼最優(yōu)方程 71
3.4.2 Q函數(shù)的貝爾曼最優(yōu)方程 73
3.5 貝爾曼最優(yōu)方程的示例 74
3.5.1 應用貝爾曼最優(yōu)方程 74
3.5.2 得到最優(yōu)策略 76
3.6 小結(jié) 78
第4章 動態(tài)規(guī)劃法 79
4.1 動態(tài)規(guī)劃法和策略評估 80
4.1.1 動態(tài)規(guī)劃法簡介 80
4.1.2 嘗試迭代策略評估 81
4.1.3 迭代策略評估的其他實現(xiàn)方式 86
4.2 解決更大的問題 87
4.2.1 GridWorld類的實現(xiàn) 88
4.2.2 defaultdict的用法 94
4.2.3 迭代策略評估的實現(xiàn) 95
4.3 策略迭代法 99
4.3.1 策略的改進 99
4.3.2 重復評估和改進 101
4.4 實施策略迭代法 102
4.4.1 改進策略 103
4.4.2 重復評估和改進 105
4.5 價值迭代法 107
4.5.1 價值迭代法的推導 109
4.5.2 價值迭代法的實現(xiàn) 113
4.6 小結(jié) 116
第5章 蒙特卡洛方法 117
5.1 蒙特卡洛方法的基礎知識 117
5.1.1 骰子的點數(shù)和 118
5.1.2 分布模型和樣本模型 119
5.1.3 蒙特卡洛方法的實現(xiàn) 121
5.2 使用蒙特卡洛方法評估策略 123
5.2.1 使用蒙特卡洛方法計算價值函數(shù) 124
5.2.2 求所有狀態(tài)的價值函數(shù) 126
5.2.3 蒙特卡洛方法的高效實現(xiàn) 129
5.3 蒙特卡洛方法的實現(xiàn) 130
5.3.1 step方法 130
5.3.2 智能代理類的實現(xiàn) 132
5.3.3 運行蒙特卡洛方法 134
5.4 使用蒙特卡洛方法的策略控制 136
5.4.1 評估和改進 136
5.4.2 使用蒙特卡洛方法實現(xiàn)策略控制 137
5.4.3 ε-greedy算法(第 1個修改) 139
5.4.4 修改為固定值的方式(第 2個修改) 141
5.4.5 [ 修改版] 使用蒙特卡洛方法實現(xiàn)策略迭代法 142
5.5 異策略型和重要性采樣 145
5.5.1 同策略型和異策略型 145
5.5.2 重要性采樣 146
5.5.3 如何減小方差 150
5.6 小結(jié) 152
第6章 TD方法 153
6.1 使用TD方法評估策略 153
6.1.1 TD方法的推導 154
6.1.2 MC方法和TD方法的比較 157
6.1.3 TD方法的實現(xiàn) 158
6.2 SARSA 161
6.2.1 同策略型的SARSA 161
6.2.2 SARSA的實現(xiàn) 162
6.3 異策略型的SARSA 165
6.3.1 異策略型和重要性采樣 166
6.3.2 異策略型的SARSA的實現(xiàn) 167
6.4 Q學習 169
6.4.1 貝爾曼方程與SARSA 170
6.4.2 貝爾曼最優(yōu)方程與Q學習 171
6.4.3 Q學習的實現(xiàn) 173
6.5 分布模型與樣本模型 175
6.5.1 分布模型與樣本模型 175
6.5.2 樣本模型版的Q學習 176
6.6 小結(jié) 179
第7章 神經(jīng)網(wǎng)絡和Q學習 181
7.1 DeZero簡介 182
7.1.1 使用DeZero 183
7.1.2 多維數(shù)組(張量)和函數(shù) 184
7.1.3 最優(yōu)化 186
7.2 線性回歸 189
7.2.1 玩具數(shù)據(jù)集 189
7.2.2 線性回歸的理論知識 190
7.2.3 線性回歸的實現(xiàn) 191
7.3 神經(jīng)網(wǎng)絡 195
7.3.1 非線性數(shù)據(jù)集 195
7.3.2 線性變換和激活函數(shù) 196
7.3.3 神經(jīng)網(wǎng)絡的實現(xiàn) 197
7.3.4 層與模型 199
7.3.5 優(yōu)化器(最優(yōu)化方法)202
7.4 Q學習與神經(jīng)網(wǎng)絡 204
7.4.1 神經(jīng)網(wǎng)絡的預處理 204
7.4.2 表示Q函數(shù)的神經(jīng)網(wǎng)絡 205
7.4.3 神經(jīng)網(wǎng)絡和Q學習 208
7.5 小結(jié) 212
第8章 DQN 213
8.1 OpenAI Gym 213
8.1.1 OpenAI Gym的基礎知識 214
8.1.2 隨機智能代理 216
8.2 DQN的核心技術 218
8.2.1 經(jīng)驗回放 218
8.2.2 經(jīng)驗回放的實現(xiàn) 220
8.2.3 目標網(wǎng)絡 223
8.2.4 目標網(wǎng)絡的實現(xiàn) 224
8.2.5 運行DQN 227
8.3 DQN與Atari 230
8.3.1 Atari的游戲環(huán)境 231
8.3.2 預處理 232
8.3.3 CNN 232
8.3.4 其他技巧 233
8.4 DQN的擴展 234
8.4.1 Double DQN 234
8.4.2 優(yōu)先級經(jīng)驗回放 235
8.4.3 Dueling DQN 236
8.5 小結(jié) 238
第9章 策略梯度法 239
9.1 最簡單的策略梯度法 239
9.1.1 策略梯度法的推導 240
9.1.2 策略梯度法的算法 241
9.1.3 策略梯度法的實現(xiàn) 243
9.2 REINFORCE 248
9.2.1 REINFORCE算法 249
9.2.2 REINFORCE的實現(xiàn) 250
9.3 基線 251
9.3.1 基線的思路 251
9.3.2 帶基線的策略梯度法 253
9.4 Actor-Critic 254
9.4.1 Actor-Critic的推導 255
9.4.2 Actor-Critic的實現(xiàn) 257
9.5 基于策略的方法的優(yōu)點 260
9.6 小結(jié) 262
第 10章 進一步學習 263
10.1 深度強化學習算法的分類 263
10.2 策略梯度法的改進算法 265
10.2.1 A3C和A2C 265
10.2.2 DDPG 268
10.2.3 TRPO和PPO 271
10.3 DQN的改進算法 272
10.3.1 分類DQN 272
10.3.2 Noisy Network 274
10.3.3 Rainbow 274
10.3.4 在Rainbow以后提出的改進算法 275
10.4 案例研究 276
10.4.1 棋盤游戲 277
10.4.2 機器人控制 279
10.4.3 NAS 280
10.4.4 其他案例 282
10.5 深度強化學習的挑戰(zhàn)和可能性 283
10.5.1 應用于實際系統(tǒng) 283
10.5.2 將問題表示為MDP形式時的建議 286
10.5.3 通用人工智能系統(tǒng) 288
10.6 小結(jié) 288
附錄A 異策略型的蒙特卡洛方法 291
附錄B n-step TD方法 298
附錄C Double DQN的理解 300
附錄D 策略梯度法的證明 304
后記 308
參考文獻 310