深入淺出強化學習:編程實戰

深入淺出強化學習:編程實戰
定價:534
NT $ 534
  • 作者:郭憲
  • 出版社:電子工業出版社
  • 出版日期:2020-03-01
  • 語言:簡體中文
  • ISBN10:7121367467
  • ISBN13:9787121367465
  • 裝訂:平裝 / 264頁 / 16k / 19 x 26 x 1.32 cm / 普通級 / 單色印刷 / 初版
 

內容簡介

《深入淺出強化學習:程式設計實戰》是《深入淺出強化學習:原理入門》的姊妹篇,寫作的初衷是通過程式設計實例説明那些想要學習強化學習演算法的讀者更深入、更清楚地理解演算法。

本書首先介紹瑪律可夫決策過程的理論框架,然後介紹基於動態規劃的策略反覆運算演算法和值反覆運算演算法,在此基礎上分3 篇介紹了目前強化學習演算法中最基本的演算法。

第1篇講解基於值函數的強化學習演算法,介紹了基於兩種策略評估方法(蒙特卡洛策略評估和時間差分策略評估)的強化學習演算法,以及如何將函數逼近的方法引入強化學習演算法中。

第2篇講解直接策略搜索方法,介紹了基本的策略梯度方法、AC方法、PPO 方法和DDPG 演算法。

第3篇講解基於模型的強化學習方法,介紹了基於MPC 的方法、AlphaZero 演算法基本原理及在五子棋上的具體實現細節。建議讀者根據書中的代碼親自動手程式設計,並修改程式中的超參數,根據運行結果不斷體會演算法原理。
 
 

目錄

第0 篇 先導篇 ......... 1
1 一個極其簡單的強化學習實例 .................................. 2
1.1 多臂賭博機 ..................... 2
1.1.1 e - greedy策略 .... 3
1.1.2 玻爾茲曼策略 ...... 6
1.1.3 UCB 策略 ............. 7
1.2 多臂賭博機代碼實現 ..... 7
2 瑪律可夫決策過程 .............. 13
2.1 從多臂賭博機到瑪律可夫決策過程 ............... 13
2.2 瑪律可夫決策過程代碼實現 ........................... 23

第1 篇 基於值函數的方法 .......................... 31
3 基於動態規劃的方法 ........... 32
3.1 策略反覆運算與值反覆運算 ....... 32
3.1.1 策略反覆運算演算法原理 ................................ 33
3.1.2 值反覆運算演算法原理 35
3.2 策略反覆運算和值反覆運算的代碼實現 ....................... 36
3.2.1 鴛鴦環境的修改 36
3.2.2 策略反覆運算演算法代碼實現 ........................ 37
3.2.3 值反覆運算演算法代碼實現 ............................ 41
4 基於蒙特卡洛的方法 ........... 45
4.1 蒙特卡洛演算法原理 ....... 46
4.2 蒙特卡洛演算法的代碼實現 ............................... 49
4.2.1 環境類的修改和蒙特卡洛演算法類的聲明 ................................ 49
4.2.2 探索初始化蒙特卡洛演算法實現 ............ 52
4.2.3 同策略蒙特卡洛演算法實現 .................... 56
5 基於時間差分的方法 ........... 62
5.1 從動態規劃到時間差分強化學習 ................... 62
5.2 時間差分演算法代碼實現 ................................... 66
5.2.1 時間差分演算法類的聲明 ........................ 66
5.2.2 SARSA 演算法 ...... 67
5.2.3 Q-Learning 演算法 70
6 基於函數逼近的方法 ........... 74
6.1 從表格型強化學習到線性函數逼近強化學習 74
6.1.1 表格特徵表示 .... 74
6.1.2 固定稀疏表示 .... 75
6.1.3 參數的訓練 ........ 76
6.2 基於線性函數逼近的Q-Learning 演算法實現 ... 76
6.3 非線性函數逼近DQN 演算法代碼實現 ............. 85

第2 篇 直接策略搜索的方法 ...................... 95
7 策略梯度方法 ..................... 96
7.1 演算法基本原理及代碼架構 ............................... 96
7.1.1 策略的表示問題 97
7.1.2 隨機策略梯度的推導 ............................ 98
7.1.3 折扣累積回報 .... 99
7.1.4 代碼架構 .......... 101
7.2 離散動作:CartPole 實例解析及程式設計實戰 ... 103
7.2.1 CartPole 簡介 ... 103
7.2.2 問題分析及MDP 模型 ....................... 104
7.2.3 採樣類的Python 源碼實現 ................. 105
7.2.4 策略網路模型分析 .............................. 106
7.2.5 策略網路類的Python 源碼實現 ......... 108
7.2.6 策略網路的訓練與測試 ....................... 110
7.2.7 用策略梯度法求解Cartpole 的主函數 ................................... 112
7.2.8 CartPole 模擬環境開發 ........................ 113
7.3 連續動作Pendulum 實例解析及程式設計實戰 .... 117
7.3.1 Pendulum 簡介 .. 118
7.3.2 採樣類的Python 原始程式碼實現 .............. 118
7.3.3 策略網路模型分析 .............................. 120
7.3.4 策略網路類的Python 源碼實現 ......... 121
7.3.5 策略網路的訓練與測試 ...................... 125
7.3.6 用策略梯度法求解Pendulum 的主函數 ................................ 126
7.3.7 Pendulum 模擬環境開發 ..................... 127
8 Actor-Critic 方法 ............... 131
8.1 Actor-Critic 原理及代碼架構 ......................... 131
8.1.1 Actor-Critic 基本原理 .......................... 131
8.1.2 Actor-Critic 演算法架構 .......................... 133
8.2 TD-AC 演算法 ................ 133
8.2.1 採樣類的Python 源碼 ......................... 134
8.2.2 策略網路的Python 源碼 ..................... 135
8.2.3 策略訓練和測試 .................................. 138
8.2.4 主函數及訓練效果 .............................. 140
8.3 Minibatch-MC-AC 演算法 ................................. 141
8.3.1 Minibatch-MC-AC 演算法框架 .............. 141
8.3.2 採樣類的Python 源碼 ......................... 142
8.3.3 策略網路的Python 源碼 ..................... 144
8.3.4 策略的訓練和測試 .............................. 147
8.3.5 主函數及訓練效果 .............................. 149
9 PPO 方法 ......................... 151
9.1 PPO 演算法基本原理及代碼結構 ..................... 151
9.2 Python 源碼解析 ......... 154
9.2.1 採樣類 .............. 154
9.2.2 策略網路 .......... 156
9.2.3 策略的訓練和測試 .............................. 159
9.2.4 主函數及訓練效果 .............................. 160
10 DDPG 方法 .................... 163
10.1 DDPG 基本原理 ....... 163
10.2 Python 源碼解析 ....... 167
10.2.1 經驗暫存器類 167
10.2.2 策略網路類 .... 169
10.2.3 訓練和測試 .... 173
10.2.4 主函數及訓練效果 ............................ 175

第3 篇 基於模型的強化學習方法 ............. 177
11 基於模型預測控制的強化學習演算法 ..................... 178
11.1 基於模型的強化學習演算法的基本原理 ........ 178
11.1.1 神經網路擬合動力學模型 ................ 179
11.1.2 模型預測控制 179
11.1.3 基於模型的強化學習演算法偽代碼 .... 180
11.2 Python 源碼實現及解析 ............................... 181
11.2.1 資料收集類 .... 181
11.2.2 資料採樣類 .... 181
11.2.3 動力學網路類 182
11.2.4 模型預測控制器類 ............................ 185
11.2.5 模型訓練和預測函數 ........................ 186
11.2.6 主函數 ............ 188
12 AlphaZero 原理淺析 ....... 190
12.1 從AlphaGo 到AlphaZero ............................ 191
12.2 蒙特卡洛樹搜索演算法 ................................... 196
12.2.1 博弈樹和極小極大搜索 .................... 196
12.2.2 再論多臂老虎機問題 ........................ 198
12.2.3 UCT 演算法 ....... 200
12.3 基於自我對弈的強化學習 ........................... 206
12.3.1 基於MCTS 的自我對弈 ................... 206
12.3.2 策略價值網路的訓練 ........................ 210
13 AlphaZero 實戰:從零學下五子棋 ...................... 214
13.1 構建簡易的五子棋環境 ............................... 215
13.2 建立整體演算法流程 ... 223
13.3 實現蒙特卡洛樹搜索 ................................... 229
13.4 實現策略價值網路 ... 235
13.5 訓練實驗與效果評估 ................................... 240
附錄A PyTorch 入門 ........... 246
A.1 PyTorch 基礎知識 ...... 246
A.1.1 Tensor .............. 246
A.1.2 基礎操作 ......... 247
A.1.3 Tensor 和NumPy array 間的轉化 ...... 249
A.1.4 Autograd:自動梯度 .......................... 249
A.2 PyTorch 中的神經網路 .................................. 250
A.2.1 如何定義神經網路 ............................. 251
A.2.2 如何訓練神經網路 ............................. 254
A.2.3 在CIFAR-10 資料集上進行訓練和測試 ............................... 256
A.2.4 模型的保存和載入 ............................. 259
參考文獻 ................................ 261
後記 ... 263
 
網路書店 類別 折扣 價格
  1. 新書
    $534