目錄
前言
第1章 老虎機問題
1.1 機器學習的分類與強化學習
1.1.1 監督學習
1.1.2 無監督學習
1.1.3 強化學習
1.2 老虎機問題
1.2.1 什麼是老虎機問題
1.2.2 什麼是好的老虎機
1.2.3 使用數學式表示
1.3 老虎機演算法
1.3.1 價值的估計方法
1.3.2 求平均值的實現
1.3.3 玩家的策略
1.4 老虎機演算法的實現
1.4.1 老虎機的實現
1.4.2 智能代理的實現
1.4.3 嘗試運行
1.4.4 演算法平均的特性
1.5 非穩態問題
1.5.1 解決非穩態問題前的準備工作
1.5.2 解決非穩態問題
1.6 小結
第2章 馬爾可夫決策過程
2.1 什麼是MDP
2.1.1 MDP的具體例子
2.1.2 智能代理與環境的互動
2.2 環境和智能代理的數學表示
2.2.1 狀態遷移
2.2.2 獎勵函數
2.2.3 智能代理的策略
2.3 MDP的目標
2.3.1 回合制任務和連續性任務
2.3.2 收益
2.3.3 狀態價值函數
2.3.4 最優策略和最優價值函數
2.4 MDP的例子
2.4.1 回溯線形圖
2.4.2 找出最優策略
2.5 小結
第3章 貝爾曼方程
3.1 貝爾曼方程的推導
3.1.1 概率和期望值(推導貝爾曼方程的準備)
3.1.2 貝爾曼方程的推導
3.2 貝爾曼方程的例子
3.2.1 有兩個方格的網格世界
3.2.2 貝爾曼方程的意義
3.3 行動價值函數與貝爾曼方程
3.3.1 行動價值函數
3.3.2 使用行動價值函數的貝爾曼方程
3.4 貝爾曼最優方程
3.4.1 狀態價值函數的貝爾曼最優方程
3.4.2 Q函數的貝爾曼最優方程
3.5 貝爾曼最優方程的示例
3.5.1 應用貝爾曼最優方程
3.5.2 得到最優策略
3.6 小結
第4章 動態規劃法
4.1 動態規劃法和策略評估
4.1.1 動態規劃法簡介
4.1.2 嘗試迭代策略評估
4.1.3 迭代策略評估的其他實現方式
4.2 解決更大的問題
4.2.1 GridWorld類的實現
4.2.2 defaultdict的用法
4.2.3 迭代策略評估的實現
4.3 策略迭代法
4.3.1 策略的改進
4.3.2 重複評估和改進
4.4 實施策略迭代法
4.4.1 改進策略
4.4.2 重複評估和改進
4.5 價值迭代法
4.5.1 價值迭代法的推導
4.5.2 價值迭代法的實現
4.6 小結
第5章 蒙特卡洛方法
5.1 蒙特卡洛方法的基礎知識
5.1.1 骰子的點數和
5.1.2 分佈模型和樣本模型
5.1.3 蒙特卡洛方法的實現
5.2 使用蒙特卡洛方法評估策略
5.2.1 使用蒙特卡洛方法計算價值函數
5.2.2 求所有狀態的價值函數
5.2.3 蒙特卡洛方法的高效實現
5.3 蒙特卡洛方法的實現
5.3.1 step方法
5.3.2 智能代理類的實現
5.3.3 運行蒙特卡洛方法
5.4 使用蒙特卡洛方法的策略控制
5.4.1 評估和改進
5.4.2 使用蒙特卡洛方法實現策略控制
5.4.3 ε-greedy演算法(第1個修改)
5.4.4 修改為固定值α的方式(第2個修改)
5.4.5 [修改版]使用蒙特卡洛方法實現策略迭代法
5.5 異策略型和重要性採樣
5.5.1 同策略型和異策略型
5.5.2 重要性採樣
5.5.3 如何減小方差
5.6 小結
第6章 TD方法
6.1 使用TD方法評估策略
6.1.1 TD方法的推導
6.1.2 MC方法和TD方法的比較
6.1.3 TD方法的實現
6.2 SARSA
6.2.1 同策略型的SARSA
6.2.2 SARSA的實現
6.3 異策略型的SARSA
6.3.1 異策略型和重要性採樣
6.3.2 異策略型的SARSA的實現
6.4 Q學習
6.4.1 貝爾曼方程與SARSA
6.4.2 貝爾曼最優方程與Q學習
6.4.3 Q學習的實現
6.5 分佈模型與樣本模型
6.5.1 分佈模型與樣本模型
6.5.2 樣本模型版的Q學習
6.6 小結
第7章 神經網路和Q學習
7.1 DeZero簡介
7.1.1 使用DeZero
7.1.2 多維數組(張量)和函數
7.1.3 最優化
7.2 線性回歸
7.2.1 玩具數據集
7.2.2 線性回歸的理論知識
7.2.3 線性回歸的實現
7.3 神經網路
7.3.1 非線性數據集
7.3.2 線性變換和激活函數
7.3.3 神經網路的實現
7.3.4 層與模型
7.3.5 優化器(最優化方法)
7.4 Q學習與神經網路
7.4.1 神經網路的預處理
7.4.2 表示Q函數的神經網路
7.4.3 神經網路和Q學習
7.5 小結
第8章 DQN
8.1 OpenAIGym
8.1.1 OpenAIGym的基礎知識
8.1.2 隨機智能代理
8.2 DQN的核心技術
8.2.1 經驗回放
8.2.2 經驗回放的實現
8.2.3 目標網路
8.2.4 目標網路的實現
8.2.5 運行DQN
8.3 DQN與Atari
8.3.1 Atari的遊戲環境
8.3.2 預處理
8.3.3 CNN
8.3.4 其他技巧
8.4 DQN的擴展
8.4.1 DoubleDQN
8.4.2 優先順序經驗回放
8.4.3 DuelingDQN
8.5 小結
第9章 策略梯度法
9.1 最簡單的策略梯度法
9.1.1 策略梯度法的推導
9.1.2 策略梯度法的演算法
9.1.3 策略梯度法的實現
9.2 REINFORCE
9.2.1 REINFORCE演算法
9.2.2 REINFORCE的實現
9.3 基線
9.3.1 基線的思路
9.3.2 帶基線的策略梯度法
9.4 Actor-Critic
9.4.1 Actor-Critic的推導
9.4.2 Actor-Critic的實現
9.5 基於策略的方法的優點
9.6 小結
第10章 進一步學習
10.1 深度強化學習演算法的分類
10.2 策略梯度法的改進演算法
10.2.1 A3C和A2C
10.2.2 DDPG
10.2.3 TRPO和PPO
10.3 DQN的改進演算法
10.3.1 分類DQN
10.3.2 NoisyNetwork
10.3.3 Rainbow
10.3.4 在Rainbow以後提出的改進演算法
10.4 案例研究
10.4.1 棋盤遊戲
10.4.2 機器人控制
10.4.3 NAS