基於 Python 的強化學習 (Reinforcement Learning Algorithms with Python : Learn, understand, and develop smart algorithms for addressing AI challenges)

Andrea Lonza 譯 劉繼紅,王瑞文

買這商品的人也買了...

商品描述

本書首先介紹在強化學習環境中工作所需的工具、庫和設置,涵蓋了強化學習的構成模塊,
深入探討基於值的方法,如Q-learning和SARSA算法的應用。
讀者將學習如何結合使用Q-learning和神經網絡來解決複雜問題。
此外,在學習*d*dPG和TD3確定性算法之前,讀者將學習策略梯度方法,如TRPO和PPO,以提高性能和穩定性。
本書還介紹模仿學習的原理,以及Dagger如何教智能體飛行。
讀者將探索進化策略和黑盒優化技術。
最後,讀者將掌握探索方法,如UCB和UCB1,並開發一個名為ESBAS的元算法。

作者簡介

Andrea Lonza
是一名深度學習工程師,對人工智能懷有極大的熱情,渴望創造出具有智能行為的機器。
他通過理論性的和工業應用性的機器學習項目獲得了強化學習、自然語言處理和計算機視覺方面的專業知識。
他還參加過幾次Kaggle比賽,並取得了很好的成績。他總是在尋找引人入勝的挑戰,並喜歡證明自己。

目錄大綱

目錄
前言
第一部分 算法與環境
第1章 強化學習概貌 2
1.1 強化學習導論 3
1.1.1 比較強化學習和監督學習 4
1.1.2 強化學習的歷史 5
1.1.3 深度強化學習 6
1.2 強化學習的要素 7
1.2.1 策略 8
1.2.2 值函數 9
1.2.3 回報(獎勵) 10
1.2.4 模型 11
1.3 強化學習的應用 11
1.3.1 遊戲 11
1.3.2 機器人與工業4.0 12
1.3.3 機器學習 12
1.3.4 經濟學與金融 13
1.3.5 醫療健康 13
1.3.6 智能交通系統 13
1.3.7 能源優化與智能電網 13
1.4 本章小結 13
1.5  思考題 14
1.6  延伸閱讀 14
第2章 強化學習過程與OpenAI Gym 15
2.1 環境設置 15
2.1.1 安裝OpenAI Gym 16
2.1.2 安裝Roboschool 17
2.2 OpenAI Gym和強化學習過程 17
2.2.1 開發強化學習過程 18
2.2.2 了解空間概念 21
2.3 利用TesorFlow開發強化學習模型 22
2.3.1 張量 24
2.3.2 創建計算圖 27
2.3.3 線性回歸示例 28
2.4 TensorBoard介紹 32
2.5 強化學習環境 34
2.5.1 為什麼需要不同的環境 35
2.5.2 開源環境 35
2.6 本章小結 37
2.7  思考題 37
2.8  延伸閱讀 38
第3章 基於動態規劃的問題求解 39
3.1 馬爾可夫決策過程 39
3.1.1 策略 41
3.1.2 回報 41
3.1.3 值函數 42
3.1.4 貝爾曼方程 43
3.2 強化學習算法的類別 43
3.2.1 無模型算法 44
3.2.2 基於模型的強化學習 45
3.2.3 算法多樣性 46
3.3 動態規劃 46
3.3.1 策略評價與策略改進 47
3.3.2 策略迭代 48
3.3.3 值迭代 52
3.4 本章小結 55
3.5  思考題 55
3.6  延伸閱讀 56

第二部分 無模型強化學習算法
第4章 Q-learning與SARSA的應用 58
4.1 無模型學習 58
4.1.1 已有經驗 59
4.1.2 策略評價 59
4.1.3 探索問題 60
4.2 時間差分學習 60
4.2.1 時間差分更新 61
4.2.2 策略改進 61
4.2.3 比較蒙特卡羅和時間差分方法 62
4.3 SARSA 62
4.3.1 SARSA介紹 62
4.3.2 算法 62
4.4 應用SARSA解決Taxi-v2問題 63
4.5 Q-learning 69
4.5.1 理論 69
4.5.2 算法 70
4.6 應用Q-learning解決Taxi-v2問題 71
4.7 比較SARSA和Q-learning 74
4.8 本章小結 74
4.9  思考題 75
第5章 深度Q神經網絡 76
5.1 深度神經網絡與Q-learning 76
5.1.1 函數逼近 77
5.1.2 利用神經網絡的Q-learning 77
5.1.3 深度Q-learning的不穩定性 78
5.2 DQN 79
5.2.1 解決方案 80
5.2.2 DQN算法 80
5.2.3 模型架構 82
5.3 用於Pong的DQN 83
5.3.1 雅達利遊戲 84
5.3.2 預處理流程 84
5.3.3 DQN實現 87
5.3.4 結果 96
5.4 DQN變種 98
5.4.1 DDQN 98
5.4.2 競爭DQN 101
5.4.3 n步DQN 103
5.5 本章小結 104
5.6  思考題 105
5.7  延伸閱讀 105
第6章 隨機策略梯度優化 106
6.1 策略梯度方法 106
6.1.1 策略的梯度 107
6.1.2 策略梯度定理 108
6.1.3 梯度的計算 109
6.1.4 策略 109
6.1.5 在線策略梯度 111
6.2 了解REINFORCE算法 111
6.2.1 REINFORCE的實現 113
6.2.2 利用REINFORCE實現航天器著陸 117
6.3 帶基線的REINFORCE算法 119
6.3.1 帶基線的REINFORCE算法的原理 119
6.3.2 帶基線的REINFORCE算法的實現 121
6.4 學習AC算法 122
6.4.1 讓評判者幫助行動者學習 122
6.4.2 n步AC模型 123
6.4.3 AC算法的實現 124
6.4.4 用AC算法實現航天器著陸 127
6.4.5 高級AC算法以及提示和技巧 128
6.5 本章小結 129
6.6  思考題 129
6.7  延伸閱讀 129
第7章 信賴域策略優化和近端策略優化 130
7.1 Roboschool 130
7.1.1 Roboschool介紹 130
7.1.2 連續系統的控制 131
7.2 自然策略梯度 134
7.2.1 自然策略梯度的直觀理解 134
7.2.2 數學知識基礎 136
7.2.3 自然梯度的計算複雜性 137
7.3 信賴域策略優化 138
7.3.1 TRPO算法 138
7.3.2 TRPO算法的實現 141
7.3.3 TRPO的應用 147
7.4 近端策略優化 148
7.4.1 PPO簡述 149
7.4.2 PPO算法 149
7.4.3 TRPO算法的實現 150
7.4.4 PPO的應用 154
7.5 本章小結 155
7.6  思考題 155
7.7  延伸閱讀 156
第8章 確定性策略梯度方法 157
8.1 策略梯度優化與Q-learning的結合 157
8.1.1 兩類算法的優缺點 157
8.1.2 確定性策略梯度 158
8.2 深度確定性策略梯度 160
8.2.1 DDPG算法 161
8.2.2 DDPG算法的實現 163
8.2.3 DDPG應用於BipedalWalker-v2 167
8.3 雙延遲深度確定性策略梯度 168
8.3.1 高估偏差問題 169
8.3.2 方差抑制問題 171
8.3.3 TD3應用於BipedalWalker 174
8.4 本章小結 175
8.5  思考題 176
8.6  延伸閱讀 176
第三部分 超越無模型算法
第9章 基於模型的強化學習 178
9.1 基於模型的方法 178
9.1.1 基於模型的學習概述 179
9.1.2 基於模型的方法的優缺點 182
9.2 基於模型的學習與無模型學習的結合 183
9.2.1 有用的結合 183
9.2.2 利用圖像構建模型 184
9.3 用於倒立擺的ME-TRPO 185
9.3.1 了解ME-TRPO 186
9.3.2 ME-TRPO的實現 187
9.3.3 RoboSchool實驗 191
9.4 本章小結 193
9.5  思考題 194
9.6  延伸閱讀 194
第10章 模仿學習與DAgger算法 195
10.1 技術要求 195
10.2 模仿學習 196
10.2.1 駕駛助手示例 197
10.2.2 模仿學習與強化學習對比 198
10.2.3 模仿學習中的專家作用 199
10.2.4 模仿學習的結構 199
10.3 Flappy Bird遊戲 201
10.3.1 Flappy Bird介紹 201
10.3.2 如何利用環境 201
10.4 理解數據集聚合算法 202
10.4.1 DAgger算法 203
10.4.2 Dagger算法實現 204
10.4.3 Flappy Bird遊戲結果分析 209
10.5 反向強化學習 210
10.6 本章小結 210
10.7  思考題 211
10.8  延伸閱讀 211
第11章 黑盒優化算法 212
11.1 超越強化學習 212
11.1.1 強化學習簡要回顧 212
11.1.2 替代方法 213
11.2 進化算法的核心 214
11.2.1 遺傳算法 216
11.2.2 進化策略 217
11.3 可擴展的進化策略 218
11.3.1 核心思想 219
11.3.2 可擴展進化策略的實現 220
11.4 應用於LunarLander的可擴展進化策略 226
11.5 本章小結 227
11.6  思考題 228
11.7  延伸閱讀 228
第12章 開發ESBAS算法 229
12.1 探索與利用 229
12.1.1 探索與利用介紹 229
12.1.2 多臂老虎機 231
12.2 探索的方法 232
12.2.1 ?貪婪策略 232
12.2.2 UCB算法 233
12.2.3 探索的複雜性 234
12.3 ESBAS 235
12.3.1 拆箱算法選擇 235
12.3.2 ESBAS介紹 236
12.3.3 算法實現 237
12.3.4 解決Acrobot問題 241
12.4 本章小結 244
12.5  思考題 244
12.6  延伸閱讀 245
第13章 應對強化學習挑戰的實踐 246
13.1 深度強化學習的最佳實踐 246
13.1.1 選擇合適的算法 247
13.1.2 從0到1 248
13.2 深度強化學習的挑戰 250
13.2.1 穩定性與可重現性 250
13.2.2 效率 251
13.2.3 泛化 251
13.3 先進技術 252
13.3.1 無監督強化學習 252
13.3.2 遷移學習 253
13.4 現實世界中的強化學習 255
13.4.1 現實挑戰 256
13.4.2 彌合模擬與現實世界的差距 257
13.4.3 創建專有環境 257
13.5 強化學習的未來及其社會影響 258
13.6 本章小結 258
13.7  思考題 259
13.8  延伸閱讀 259
附錄  思考題參考答案 260