
深度學習入門4 內容簡介
本書前半部分介紹強化學習的重要思想和基礎知識,後半部分介紹如何將深度學習應用於強化學習,遴選講解了深度強化學習的最新技術。全書從最適合入門的多臂老虎機問題切入,依次介紹了定義一般強化學習問題的馬爾可夫決策過程、用於尋找最佳答案的貝爾曼方程,以及解決貝爾曼方程的動態規劃法、蒙特卡洛方法和TD方法。隨後,神經網絡和Q學習、DQN、策略梯度法等幾章則分別討論了深度學習在強化學習領域的應用。本書延續“魚書”係列的風格,搭配豐富的圖、表、代碼示例,加上輕鬆、簡明的講解,讓人循序漸進地理解強化學習中各種方法之間的關係,於不知不覺中登堂入室。
編輯推薦
沿襲“魚書”係列風格,提供實際代碼,邊實踐邊學習,無須依賴外部庫,從零開始實現支撐強化學習的基礎技術。
本書有什麼特點?
●把握潮流中的變與不變
在快速發展變化的深度學習領域,有變化的事物,有不變的事物。有些事物會隨潮流而消逝,有些則會被傳承下去。本書從馬爾可夫決策過程、貝爾曼方程、蒙特卡洛方法、時間差分法等強化學習基礎方法,自然而然地過渡到神經網絡和深度學習,從前沿視角為讀者遴選出最值得關注的強化學習理論和方法。
●內容豐富,講解簡明易懂
作為超高人氣“魚書”係列第四部作品,本書延續了這一係列的寫作和講解風格,搭配豐富的圖、表、代碼示例,加上輕鬆、簡明的講解,能夠讓人非常信服地理解強化學習中各種方法之間的關係,於不知不覺中登堂入室。
●原理與實踐並重
本書旨在確保讀者能夠牢固掌握強化學習的獨特理論,奉行“隻有做出來才能真正理解”的理念,將這一主題的每個構成要素都從“理論”和“實踐”兩個方麵進行詳盡解釋,並鼓勵讀者動手嚐試。與僅通過數學公式解釋理論的圖書不同,讀者將通過實際運行本書代碼獲得許多令人驚歎的領悟。
深度學習入門4 作者簡介
齋藤康毅,1984年出生於日本長崎縣,東京工業大學畢業,並完成東京大學研究生院課程。目前在某企業從事人工智能相關的研究和開發工作。著有“魚書”係列《深度學習入門:基於Python的理論與實現》《深度學習進階:自然語言處理》《深度學習入門2:自製框架》,同時也是Python in Practice、The Elements of Computing Systems、Building MachineLearning Systems with Python的日文版譯者。
深度學習入門4 目錄
前言第1章 老虎機問題1
1.1 機器學習的分類與強化學習1
1.1.1 監督學習2
1.1.2 無監督學習2
1.1.3 強化學習3
1.2 老虎機問題5
1.2.1 什麼是老虎機問題5
1.2.2 什麼是好的老虎機7
1.2.3 使用數學式表示8
1.3 老虎機算法9
1.3.1 價值的估計方法10
1.3.2 求平均值的實現12
1.3.3 玩家的策略15
1.4 老虎機算法的實現17
1.4.1 老虎機的實現17
1.4.2 智能代理的實現19
1.4.3 嚐試運行20
1.4.4 算法平均的特性23
1.5 非穩態問題28
1.5.1 解決非穩態問題前的準備工作29
1.5.2 解決非穩態問題32
1.6 小結34
第2章 馬爾可夫決策過程36
2.1 什麼是MDP37
2.1.1 MDP的具體例子37
2.1.2 智能代理與環境的互動39
2.2 環境和智能代理的數學表示40
2.2.1 狀態遷移40
2.2.2 獎勵函數42
2.2.3 智能代理的策略43
2.3 MDP的目標45
2.3.1 回合製任務和連續性任務45
2.3.2 收益46
2.3.3 狀態價值函數47
2.3.4 最優策略和最優價值函數48
2.4 MDP的例子50
2.4.1 回溯線形圖51
2.4.2 找出最優策略52
2.5 小結54
第3章 貝爾曼方程56
3.1 貝爾曼方程的推導57
3.1.1 概率和期望值(推導貝爾曼方程的準備)57
3.1.2 貝爾曼方程的推導60
3.2 貝爾曼方程的例子64
3.2.1 有兩個方格的網格世界64
3.2.2 貝爾曼方程的意義68
3.3 行動價值函數與貝爾曼方程68
3.3.1 行動價值函數69
3.3.2 使用行動價值函數的貝爾曼方程70
3.4 貝爾曼最優方程71
3.4.1 狀態價值函數的貝爾曼最優方程71
3.4.2 Q函數的貝爾曼最優方程73
3.5 貝爾曼最優方程的示例74
3.5.1 應用貝爾曼最優方程74
3.5.2 得到最優策略76
3.6 小結78
第4章 動態規劃法79
4.1 動態規劃法和策略評估80
4.1.1 動態規劃法簡介80
4.1.2 嚐試迭代策略評估81
4.1.3 迭代策略評估的其他實現方式86
4.2 解決更大的問題87
4.2.1 GridWorld類的實現88
4.2.2 defaultdict的用法94
4.2.3 迭代策略評估的實現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 價值迭代法的實現113
4.6 小結116
第5章 蒙特卡洛方法117
5.1 蒙特卡洛方法的基礎知識117
5.1.1 骰子的點數和118
5.1.2 分布模型和樣本模型119
5.1.3 蒙特卡洛方法的實現121
5.2 使用蒙特卡洛方法評估策略123
5.2.1 使用蒙特卡洛方法計算價值函數124
5.2.2 求所有狀態的價值函數126
5.2.3 蒙特卡洛方法的高效實現129
5.3 蒙特卡洛方法的實現130
5.3.1 step方法130
5.3.2 智能代理類的實現132
5.3.3 運行蒙特卡洛方法134
5.4 使用蒙特卡洛方法的策略控製136
5.4.1 評估和改進136
5.4.2 使用蒙特卡洛方法實現策略控製137
5.4.3 ε-greedy算法(第1個修改)139
5.4.4 修改為固定值α的方式(第2個修改)141
5.4.5 [修改版]使用蒙特卡洛方法實現策略迭代法142
5.5 異策略型和重要性采樣145
5.5.1 同策略型和異策略型145
5.5.2 重要性采樣146
5.5.3 如何減小方差150
5.6 小結152
第6章 TD方法153
6.1 使用TD方法評估策略153
6.1.1 TD方法的推導154
6.1.2 MC方法和TD方法的比較157
6.1.3 TD方法的實現158
6.2 SARSA161
6.2.1 同策略型的SARSA161
6.2.2 SARSA的實現162
6.3 異策略型的SARSA165
6.3.1 異策略型和重要性采樣166
6.3.2 異策略型的SARSA的實現167
6.4 Q學習169
6.4.1 貝爾曼方程與SARSA170
6.4.2 貝爾曼最優方程與Q學習171
6.4.3 Q學習的實現173
6.5 分布模型與樣本模型175
6.5.1 分布模型與樣本模型175
6.5.2 樣本模型版的Q學習176
6.6 小結179
第7章 神經網絡和Q學習181
7.1 DeZero簡介182
7.1.1 使用DeZero183
7.1.2 多維數組(張量)和函數184
7.1.3 最優化186
7.2 線性回歸189
7.2.1 玩具數據集189
7.2.2 線性回歸的理論知識190
7.2.3 線性回歸的實現191
7.3 神經網絡195
7.3.1 非線性數據集195
7.3.2 線性變換和激活函數196
7.3.3 神經網絡的實現197
7.3.4 層與模型199
7.3.5 優化器(最優化方法)202
7.4 Q學習與神經網絡204
7.4.1 神經網絡的預處理204
7.4.2 表示Q函數的神經網絡205
7.4.3 神經網絡和Q學習208
7.5 小結212
第8章 DQN213
8.1 OpenAIGym213
8.1.1 OpenAIGym的基礎知識214
8.1.2 隨機智能代理216
8.2 DQN的核心技術218
8.2.1 經驗回放218
8.2.2 經驗回放的實現220
8.2.3 目標網絡223
8.2.4 目標網絡的實現224
8.2.5 運行DQN227
8.3 DQN與Atari230
8.3.1 Atari的遊戲環境231
8.3.2 預處理232
8.3.3 CNN232
8.3.4 其他技巧233
8.4 DQN的擴展234
8.4.1 DoubleDQN234
8.4.2 優先級經驗回放235
8.4.3 DuelingDQN236
8.5 小結238
第9章 策略梯度法239
9.1 最簡單的策略梯度法239
9.1.1 策略梯度法的推導240
9.1.2 策略梯度法的算法241
9.1.3 策略梯度法的實現243
9.2 REINFORCE248
9.2.1 REINFORCE算法249
9.2.2 REINFORCE的實現250
9.3 基線251
9.3.1 基線的思路251
9.3.2 帶基線的策略梯度法253
9.4 Actor-Critic254
9.4.1 Actor-Critic的推導255
9.4.2 Actor-Critic的實現257
9.5 基於策略的方法的優點260
9.6 小結262
第10章 進一步學習263
10.1 深度強化學習算法的分類263
10.2 策略梯度法的改進算法265
10.2.1 A3C和A2C265
10.2.2 DDPG268
10.2.3 TRPO和PPO271
10.3 DQN的改進算法272
10.3.1 分類DQN272
10.3.2 NoisyNetwork274
10.3.3 Rainbow274
10.3.4 在Rainbow以後提出的改進算法275
10.4 案例研究276
10.4.1 棋盤遊戲277
10.4.2 機器人控製279
10.4.3 NAS280
10.4.4 其他案例282
10.5 深度強化學習的挑戰和可能性283
10.5.1 應用於實際係統283
10.5.2 將問題表示為MDP形式時的建議286
10.5.3 通用人工智能係統288
10.6 小結288
附錄A 異策略型的蒙特卡洛方法291
附錄B n-stepTD方法298
附錄C DoubleDQN的理解300
附錄D 策略梯度法的證明304
後記308
參考文獻310
······
