前言
致謝
常用數學符號
主要算法列表
第1章 概述1
1.1 強化學習的歷史1
1.2 強化學習的基本概念2
1.3 章節(jié)組織6
1.4 編程環(huán)境與代碼資源6
第2章 從一個示例到馬爾可夫決策過程7
2.1 馬爾可夫過程7
2.2 馬爾可夫獎勵過程9
2.3 馬爾可夫決策過程13
2.4 編程實踐:學生馬爾可夫決策示例20
2.4.1 收獲和價值的計算20
2.4.2 驗證貝爾曼方程22
第3章 動態(tài)規(guī)劃尋找最優(yōu)策略29
3.1 策略評估29
3.2 策略迭代32
3.3 價值迭代33
3.4 異步動態(tài)規(guī)劃算法36
3.5 編程實踐:動態(tài)規(guī)劃求解小型格子世界最優(yōu)策略37
3.5.1 小型格子世界MDP建模37
3.5.2 策略評估40
3.5.3 策略迭代41
3.5.4 價值迭代41
第4章 不基于模型的預測43
4.1 蒙特卡羅強化學習43
4.2 時序差分強化學習45
4.3 n步時序差分學習50
4.4 編程實踐:蒙特卡羅學習評估21點游戲的玩家策略54
4.4.1 21點游戲規(guī)則54
4.4.2 將21點游戲建模為強化學習問題55
4.4.3 游戲場景的搭建55
4.4.4 生成對局數據64
4.4.5 策略評估64
第5章 無模型的控制67
5.1 行為價值函數的重要性67
5.2 ?貪婪策略68
5.3 同策略蒙特卡羅控制69
5.4 同策略時序差分控制70
5.4.1 Sarsa算法70
5.4.2 Sarsa(λ)算法73
5.4.3 比較Sarsa和Sarsa(λ)74
5.5 異策略Q學習算法76
5.6 編程實踐:蒙特卡羅學習求解21點游戲的最優(yōu)策略78
5.7 編程實踐:構建基于gym的有風的格子世界及個體81
5.7.1 gym庫簡介81
5.7.2 狀態(tài)序列的管理83
5.7.3 個體基類的編寫84
5.8 編程實踐:各類學習算法的實現及與有風的格子世界的交互88
5.8.1 Sarsa算法89
5.8.2 Sarsa(λ)算法90
5.8.3 Q學習算法91
第6章 價值函數的近似表示93
6.1 價值近似的意義93
6.2 目標函數與梯度下降95
6.2.1 目標函數95
6.2.2 梯度和梯度下降97
6.3 常用的近似價值函數100
6.3.1 線性近似101
6.3.2 神經網絡101
6.3.3 卷積神經網絡近似104
6.4 DQN算法108
6.5 編程實踐:基于PyTorch實現DQN求解PuckWorld問題109
6.5.1 基于神經網絡的近似價值函數110
6.5.2 實現DQN求解PuckWorld問題113
第7章 基于策略梯度的深度強化學習117
7.1 基于策略學習的意義117
7.2 策略目標函數119
7.3 Actor-Critic算法121
7.4 深度確定性策略梯度算法124
7.5 編程實踐:DDPG算法實現125
7.5.1 連續(xù)行為空間的PuckWorld環(huán)境125
7.5.2 Actor-Critic網絡的實現127
7.5.3 確定性策略下探索的實現130
7.5.4 DDPG算法的實現130
7.5.5 DDPG算法在PuckWorld環(huán)境中的表現135
第8章 基于模型的學習和規(guī)劃137
8.1 環(huán)境的模型137
8.2 整合學習與規(guī)劃——Dyna算法139
8.3 基于模擬的搜索140
8.3.1 簡單蒙特卡羅搜索140
8.3.2 蒙特卡羅樹搜索141
第9章 探索與利用143
9.1 多臂游戲機143
9.2 常用的探索方法145
9.2.1 衰減的?貪婪探索145
9.2.2 不確定行為優(yōu)先探索146
9.2.3 基于信息價值的探索149
第10章 Alpha Zero算法實戰(zhàn)151
10.1 自博弈中的蒙特卡羅樹搜索154
10.2 模型評估中的蒙特卡羅搜索156
10.3 策略價值網絡結構及策略提升160
10.4 編程實踐:Alpha Zero算法在五子棋上的實現161
10.4.1 從零開始搭建棋盤環(huán)境161
10.4.2 搭建兩種MCTS以實現Alpha
Zero自博弈與模型評估168
10.4.3 搭建策略價值網絡并進行策略提升177
10.4.4 訓練自己的Alpha Zero
模型182
參考文獻184