強化學習基礎、原理與應用
張百珂
- 出版商: 清華大學
- 出版日期: 2025-05-01
- 售價: $594
- 語言: 簡體中文
- ISBN: 7302685916
- ISBN-13: 9787302685913
-
相關分類:
Reinforcement、化學 Chemistry
下單後立即進貨 (約4週~6週)
相關主題
商品描述
目錄大綱
目錄
第1章 強化學習基礎 1
1.1 強化學習概述 2
1.1.1 強化學習的背景 2
1.1.2 強化學習的核心特點 3
1.1.3 強化學習與其他機器學習方法的區別 3
1.2 強化學習的應用領域 4
1.2.1 機器人控制與路徑規劃 4
1.2.2 游戲與虛擬環境 5
1.2.3 金融與投資決策 6
1.2.4 自動駕駛與智能交通 6
1.2.5 自然語言處理 7
1.3 強化學習中的常用概念 8
1.3.1 智能體、環境與交互 8
1.3.2 獎勵與回報的概念 9
1.3.3 馬爾可夫性質與馬爾可夫決策過程 9
1.3.4 策略與價值函數 10
第2章 馬爾可夫決策過程 11
2.1 馬爾可夫決策過程的定義 12
2.1.1 馬爾可夫決策過程的核心思想 12
2.1.2 馬爾可夫決策過程的形式化定義 12
2.2 馬爾可夫決策過程的組成要素 13
2.2.1 狀態空間與狀態的定義 13
2.2.2 行動空間與行動的定義 14
2.2.3 獎勵函數的作用與定義 14
2.2.4 轉移概率函數的意義與定義 15
2.2.5 實例分析:構建一個簡單的MDP 16
2.3 值函數與策略 18
2.3.1 值函數與策略的定義 18
2.3.2 值函數與策略的用法舉例 18
2.4 貝爾曼方程 20
2.4.1 貝爾曼預測方程與策略評估 20
2.4.2 貝爾曼最優性方程與值函數之間的關系 22
2.4.3 貝爾曼最優性方程與策略改進 25
2.4.4 動態規劃與貝爾曼方程的關系 28
2.4.5 貝爾曼方程在強化學習中的應用 29
第3章 蒙特卡洛方法 35
3.1 蒙特卡洛預測 36
3.1.1 蒙特卡洛預測的核心思想 36
3.1.2 蒙特卡洛預測的步驟與流程 36
3.1.3 蒙特卡洛預測的樣本更新與更新規則 37
3.2 蒙特卡洛控制 39
3.2.1 蒙特卡洛控制的目標與意義 39
3.2.2 蒙特卡洛控制的策略評估與改進 40
3.2.3 蒙特卡洛控制的更新規則與收斂性 43
3.3 探索與策略改進 45
3.3.1 探索與利用的平衡再探討 46
3.3.2 貪婪策略與? -貪婪策略的比較 47
3.3.3 改進探索策略的方法 50
3.3.4 探索策略對蒙特卡洛方法的影響 52
第4章 Q-learning與貝爾曼方程 55
4.1 Q-learning算法的原理 56
4.1.1 Q-learning的動作值函數 56
4.1.2 Q-learning算法中的貪婪策略與探索策略 58
4.1.3 Q-learning算法的收斂性與收斂條件 60
4.2 貝爾曼方程在Q-learning算法中的應用 62
4.2.1 Q-learning算法與貝爾曼最優性方程的關系 63
4.2.2 貝爾曼方程的迭代計算與收斂 65
4.2.3 Q-learning算法中貝爾曼方程的實際應用 67
4.3 強化學習中的Q-learning 69
4.3.1 ? -貪婪策略與探索的關系 70
4.3.2 Q-learning中探索策略的變化與優化 73
4.3.3 探索策略對Q-learning性能的影響分析 78
4.3.4 使用Q-learning尋找某股票的買賣點 79
第5章 時序差分學習和SARSA算法 83
5.1 時序差分預測 84
5.1.1 時序差分預測的核心思想 84
5.1.2 時序差分預測的基本公式 84
5.1.3 時序差分預測與狀態值函數 85
5.1.4 時序差分預測的實例分析 86
5.2 SARSA算法 88
5.2.1 SARSA算法的核心原理和步驟 88
5.2.2 SARSA算法的更新規則 90
5.2.3 SARSA算法的收斂性與收斂條件 93
5.2.4 SARSA算法實例分析 95
5.3 Q-learning算法的時序差分更新 99
5.3.1 時序差分學習與Q-learning的結合 99
5.3.2 Q-learning的時序差分更新算法 101
第6章 DQN算法 105
6.1 引言與背景 106
6.2 DQN算法的基本原理 106
6.3 DQN的網絡結構與訓練過程 110
6.3.1 DQN的神經網絡結構 110
6.3.2 DQN算法的訓練過程 112
6.3.3 經驗回放 114
6.3.4 目標網絡 116
6.4 DQN算法的優化與改進 117
6.4.1 DDQN 117
6.4.2 競爭DQN 118
6.4.3 優先經驗回放 122
6.5 基於DQN算法的自動駕駛程序 123
6.5.1 項目介紹 123
6.5.2 具體實現 124
第7章 DDQN算法 133
7.1 DDQN對標準DQN的改進 134
7.2 雙重深度Q網絡的優勢 134
7.3 《超級馬里奧》游戲的DDQN強化學習實戰 135
7.3.1 項目介紹 135
7.3.2 gym_super_mario_bros庫的介紹 136
7.3.3 環境預處理 136
7.3.4 創建DDQN模型 139
7.3.5 模型訓練和測試 143
第8章 競爭DQN算法 149
8.1 競爭DQN 算法原理 150
8.1.1 競爭DQN算法的動機和核心思想 150
8.1.2 競爭DQN 網絡架構 150
8.2 競爭DQN的優勢與改進 151
8.2.1 分離狀態價值和動作優勢的好處 151
8.2.2 優化訓練效率與穩定性 152
8.2.3 解決過度估計問題的潛力 152
8.3 股票交易策略系統 153
8.3.1 項目介紹 153
8.3.2 數據準備 154
8.3.3 數據拆分與時間序列 154
8.3.4 Environment(環境) 156
8.3.5 DQN算法實現 157
8.3.6 DDQN算法的實現 163
8.3.7 競爭DQN算法的實現 167
第9章 REINFORCE算法 173
9.1 策略梯度介紹 174
9.1.1 策略梯度的重要概念和特點 174
9.1.2 策略梯度定理的數學推導 175
9.2 REINFORCE算法基礎 175
9.2.1 REINFORCE算法的基本原理 176
9.2.2 REINFORCE算法的更新規則 179
9.2.3 基線函數與REINFORCE算法的優化 180
第10章 Actor-Critic算法 187
10.1 Actor-Critic算法的介紹與原理 188
10.1.1 強化學習中的策略梯度方法 188
10.1.2 Actor-Critic算法框架概述 189
10.1.3 Actor-Critic算法實戰:手推購物車游戲 189
10.2 A2C算法 197
10.2.1 A2C算法的基本思想 198
10.2.2 優勢函數的引入 198
10.2.3 A2C算法的訓練流程 199
10.2.4 A2C算法實戰 200
10.3 SAC算法 202
10.3.1 SAC算法的核心思想 202
10.3.2 熵的作用及其在SAC算法中的應用 203
10.3.3 SAC算法實戰 204
10.4 A3C算法 206
10.4.1 A3C算法的核心思想 206
10.4.2 A3C算法的訓練過程 207
10.4.3 A3C算法實戰 207
第11章 PPO算法 211
11.1 PPO算法的背景與概述 212
11.1.1 強化學習中的策略優化方法 212
11.1.2 PPO算法的優點與應用領域 213
11.2 PPO算法的核心原理 213
11.2.1 PPO算法的基本思想 213
11.2.2 目標函數與優化策略的關系 214
11.2.3 PPO算法中的策略梯度計算 215
11.3 PPO算法的實現與調參 215
11.3.1 策略網絡結構的設計 215
11.3.2 超參數的選擇與調整 218
11.4 PPO算法的變種與改進 221
11.4.1 PPO-Clip算法 221
11.4.2 PPO-Penalty算法 224
11.4.3 PPO2算法 230
第12章 TRPO算法 233
12.1 TRPO算法的意義 234
12.2 TRPO算法的核心原理 234
12.2.1 TRPO算法的步驟 234
12.2.2 信任區域的概念與引入 237
12.2.3 目標函數與約束條件的構建 237
12.2.4 TRPO算法中的策略梯度計算 238
12.3 TRPO算法的變種與改進 241
12.3.1 TRPO-Clip算法 241
12.3.2 TRPO-Penalty算法 243
12.4 TRPO算法優化實戰:基於矩陣低秩分解的TRPO 245
12.4.1 優化策略:NN-TRPO和TRLRPO 246
12.4.2 經驗數據管理和狀態空間離散化 246
12.4.3 定義環境 247
12.4.4 創建強化學習模型 247
12.4.5 創建Agent 248
12.4.6 評估TRPO算法在Acrobot 環境中的性能 249
12.4.7 評估TRPO算法在MountainCarContinuous-v0環境中的性能 250
12.4.8 評估TRPO算法在CustomPendulumEnv環境中的性能 251
12.4.9 性能可視化 251
第13章 連續動作空間的強化學習 253
13.1 連續動作空間強化學習基礎 254
13.1.1 連續動作空間介紹 254
13.1.2 動作幅度問題與採樣效率問題 255
13.1.3 連續動作空間中的探索問題 255
13.2 DDPG算法 256
13.2.1 DDPG算法的特點 256
13.2.2 DDPG算法在連續動作空間中的優勢 257
13.2.3 DDPG算法的實現步驟與網絡結構 257
13.2.4 DDPG算法中的經驗回放與探索策略 262
13.3 DDPG算法綜合實戰:基於強化學習的股票交易策略 266
13.3.1 項目介紹 266
13.3.2 準備開發環境 266
13.3.3 下載數據 268
13.3.4 數據預處理 270
13.3.5 構建環境 271
13.3.6 實現深度強化學習算法 273
13.3.7 性能回測 276
第14章 值分佈式算法 281
14.1 值分佈式算法基礎 282
14.1.1 值分佈式算法的背景與優勢 282
14.1.2 值分佈式算法的基本概念 282
14.1.3 強化學習中的值函數表示問題 283
14.1.4 常用的值分佈式算法 284
14.2 C51算法 284
14.2.1 C51算法的基本原理 284
14.2.2 C51算法的網絡架構 285
14.2.3 C51算法的訓練流程 285
14.2.4 C51算法的試驗與性能評估 286
14.2.5 使用 TF-Agents訓練C51代理 287
14.3 QR-DQN算法 291
14.3.1 QR-DQN算法的核心思想 292
14.3.2 QR-DQN算法的實現步驟 292
14.3.3 QR-DQN算法實戰 293
14.4 FPQF算法 295
14.4.1 FPQF算法的核心思想 295
14.4.2 FPQF算法的實現步驟 295
14.4.3 FPQF算法實戰 296
14.5 IQN算法 298
14.5.1 IQN 算法的原理與背景 298
14.5.2 IQN算法實戰 299
第15章 基於模型的強化學習 301
15.1 基於模型的強化學習基礎 302
15.1.1 基於模型的強化學習簡介 302
15.1.2 模型的種類與構建方法 302
15.1.3 基於模型的強化學習算法 303
15.2 模型預測控制 304
15.2.1 模型預測控制介紹 304
15.2.2 模型預測控制實戰 305
15.3 蒙特卡洛樹搜索算法 307
15.3.1 MCTS算法介紹 307
15.3.2 MCTS算法實戰 308
15.4 MBPO算法 309
15.4.1 MBPO算法介紹 310
15.4.2 MBPO算法實戰 310
15.5 PlaNet算法 313
15.5.1 PlaNet算法介紹 313
15.5.2 PlaNet算法實戰 314
第16章 多智能體強化學習實戰:Predator-Prey游戲 319
16.1 Predator-Prey游戲介紹 320
16.2 背景介紹 320
16.3 功能模塊介紹 321
16.4 環境準備 321
16.4.1 安裝OpenAI gymnasium 322
16.4.2 導入庫 322
16.5 捕食者-獵物(Predator-Prey)的環境 322
16.5.1 定義自定義強化學習環境類 323
16.5.2 定義自定義強化學習環境類 324
16.5.3 環境重置 325
16.5.4 計算捕食者和獵物的獎勵 325
16.5.5 判斷回合是否結束 326
16.5.6 檢查動作的合法性 326
16.5.7 記錄和獲取狀態歷史 326
16.5.8 實現step方法 327
16.5.9 生成視圖幀 328
16.5.10 渲染環境的視圖 328
16.6 第二個環境 329
16.7 隨機智能體 333
16.7.1 應用場景 334
16.7.2 實現隨機智能體 334
16.8 DDPG算法的實現 335
16.8.1 信息存儲 335
16.8.2 實現Actor模型 336
16.8.3 實現Critic模型 337
16.8.4 實現DDPG智能體 338
16.9 訓練模型 341
16.9.1 環境初始化 342
16.9.2 創建智能體 342
16.9.3 訓練循環 343
16.9.4 保存模型 345
16.9.5 訓練結果可視化 345
第17章 自動駕駛系統 347
17.1 自動駕駛背景介紹 348
17.2 項目介紹 348
17.2.1 功能介紹 348
17.2.2 模塊結構 349
17.3 環境準備 349
17.4 配置文件 350
17.5 準備數據文件 353
17.5.1 Carla數據處理與轉換 353
17.5.2 加載、處理數據 356
17.5.3 收集、處理數據 357
17.5.4 創建數據集 362
17.6 深度學習模型 363
17.6.1 編碼器 363
17.6.2 變分自編碼器 368
17.6.3 定義強化學習模型 368
17.7 強化學習 371
17.7.1 強化學習工具類的實現 371
17.7.2 經驗回放存儲的實現 372
17.7.3 深度強化學習智能體的實現 373
17.7.4 使用SAC算法的強化學習代理的實現 375
17.7.5 實現DDPG用於強化學習 381
17.8 調用處理 384
17.8.1 生成訓練數據 384
17.8.2 訓練模型 385
17.8.3 收集Carla環境中的專家駕駛數據 387
17.8.4 訓練自動駕駛的強化學習代理 390
17.8.5 訓練DDPG智能體執行自動駕駛任務 392
17.8.6 評估自動駕駛模型的性能 393
17.9 調試運行 393