強化學習基礎、原理與應用

張百珂

  • 強化學習基礎、原理與應用-preview-1
  • 強化學習基礎、原理與應用-preview-2
  • 強化學習基礎、原理與應用-preview-3
強化學習基礎、原理與應用-preview-1

相關主題

商品描述

"《強化學習基礎、原理與應用》循序漸進地講解了使用Python語言實現強化學習的核心算法開發的知識,內容涵蓋了數據處理、算法、大模型等知識,並通過具體實例的實現過程演練了各個知識點的使用方法和使用流程。《強化學習基礎、原理與應用》共分為17章,主要內容包括強化學習基礎、馬爾可夫決策過程、蒙特卡洛方法、Q-learning與貝爾曼方程、時序差分學習和SARSA算法、DQN算法、DDQN算法、競爭DQN算法、REINFORCE算法、Actor-Critic算法、PPO算法、TRPO算法、連續動作空間的強化學習、值分佈式算法、基於模型的強化學習、多智能體強化學習實戰:Predator-Prey 游戲及自動駕駛系統。本書內容簡潔而不失技術深度,以極簡的文字介紹了復雜的案例,易於閱讀和理解。 《強化學習基礎、原理與應用》適用於已經瞭解Python語言基礎語法的讀者,想進一步學習強化學習、機器學習、深度學習及相關技術的讀者,還可作為大專院校相關專業的師生用書和培訓機構的教材使用。 "

目錄大綱

目錄

第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