?? 目 錄
原書前言 *1章 什麼是強化學習 // 1? 1.1 學習—監督、無監督和強化 // 1? 1.2 RL形式和關繫 // 3? 1.2.1 獎勵 // 4? 1.2.2 智能體 // 5? 1.2.3 環境 // 5? 1.2.4 動作 // 6? 1.2.5 觀察 // 6? 1.3 馬爾可夫決策過程簡介 // 8? 1.3.1 馬爾可夫過程 // 8? 1.3.2 馬爾可夫獎勵過程 // 11? 1.3.3 馬爾可夫決策過程 // 13? 1.4 本章小結 // 16
*2章 OpenAI Gym開源平臺 // 17? 2.1 智能體剖析 // 17? 2.2 硬件和軟件要求 // 19? 2.3 OpenAI Gym API // 20? 2.3.1 動作空間 // 21? 2.3.2 觀察空間 // 21? 2.3.3 環境 // 22? 2.3.4 創建環境 // 23? 2.3.5 CartPole會話 // 25? 2.4 隨機CartPole智能體 // 26? 2.5 額外的Gym功能—Wrapper和Monitor // 27? 2.5.1 Wrapper // 28? 2.5.2 Monitor // 30? 2.6 本章小結 // 32
第3章 使用PyTorch進行深度學習 // 33? 3.1 張量 // 33? 3.1.1 創建張量 // 33? 3.1.2 標量張量 // 35? 3.1.3 張量操作 // 36? 3.1.4 GPU張量 // 36? 3.2 梯度 // 37? 3.2.1 張量和梯度 // 38? 3.3 NN構建塊 // 40? 3.4 定制層級 // 41? 3.5 *終的黏合劑—損失函數和優化器 // 43? 3.5.1 損失函數 // 44? 3.5.2 優化器 // 44? 3.6 使用TensorBoard監控 // 45? 3.6.1 TensorBoard簡介 // 46? 3.6.2 繪圖工具 // 47? 3.7 示例:在Atari圖像上使用GAN // 48? 3.8 本章小結 // 52
第4章 交叉熵方法 // 53? 4.1 RL方法的分類 // 53? 4.2 實踐交叉熵 // 54? 4.3 CartPole上的交叉熵方法 // 55? 4.4 FrozenLake上的交叉熵方法 // 62? 4.5 交叉熵方法的理論背景 // 67? 4.6 本章小結 // 68
第5章 表格學習與Bellman方程 // 69? 5.1 值、狀態、*優性 // 69? 5.2 *優的Bellman方程 // 70? 5.3 動作的值 // 72? 5.4 值迭代法 // 74? 5.5 實踐中的值迭代 // 75? 5.6 FrozenLake中的Q-learning // 80? 5.7 本章小結 // 82
第6章 深度Q網絡 // 83? 6.1 現實中的值迭代 // 83? 6.2 表格式Q-learning // 84? 6.3 深度Q-learning // 88? 6.3.1 與環境的交互 // 89? 6.3.2 SGD優化 // 90? 6.3.3 步驟之間的相關性 // 90? 6.3.4 馬爾可夫性 // 90? 6.3.5 DQN訓練的*終形式 // 91? 6.4 Pong上的DQN // 91? 6.4.1 封裝 // 92? 6.4.2 DQN模型 // 96? 6.4.3 訓練 // 98? 6.4.4 運行與性能 // 105? 6.4.5 動作中的模型 // 107? 6.5 本章小結 // 109
第7章 DQN擴展 // 110? 7.1 PyTorch Agent Net函數庫 // 110? 7.1.1 智能體 // 111? 7.1.2 智能體的經驗 // 112? 7.1.3 經驗緩衝區 // 113? 7.1.4 Gym env封裝 // 113? 7.2 基本DQN // 113? 7.3 N步DQN // 119? 7.3.1 實現 // 121? 7.4 雙DQN // 123? 7.4.1 實現 // 123? 7.4.2 結果 // 126? 7.5 有噪網絡 // 127? 7.5.1 實現 // 127? 7.5.2 結果 // 130? 7.6 優先級重放緩衝區 // 132? 7.6.1 實現 // 133? 7.6.2 結果 // 137? 7.7 競爭DQN // 137? 7.7.1 實現 // 138? 7.7.2 結果 // 139? 7.8 分類 // 140? 7.8.1 實現 // 142? 7.8.2 結果 // 148? 7.9 結合所有 // 149? 7.9.1 實現 // 150? 7.9.2 結果 // 154? 7.10 本章小結 // 155 參考文獻 // 155
第8章 RL用於股票交易 // 156? 8.1 貿易 // 156? 8.2 數據 // 156? 8.3 問題陳述和關鍵決策 // 157? 8.4 交易環境 // 159? 8.5 模型 // 165? 8.6 訓練代碼 // 166? 8.7 結果 // 167? 8.7.1 前饋模型 // 167? 8.7.2 卷積模型 // 170? 8.8 要嘗試的事 // 173? 8.9 本章小結 // 173
第9章 策略梯度法:一種替代方案 // 174? 9.1 值與策略 // 174? 9.1.1 為什麼是策略 // 174? 9.1.2 策略表示 // 175? 9.1.3 策略梯度 // 175? 9.2 強化方法 // 176? 9.2.1 CartPole的例子 // 177? 9.2.2 結果 // 180? 9.2.3 基於策略的方法與基於值的方法 // 181? 9.3 強化問題 // 181? 9.3.1 完整episode是必需的 // 182? 9.3.2 高梯度方差 // 182? 9.3.3 探索 // 182? 9.3.4 樣本之間的相關性 // 183? 9.4 CartPole上的PG // 183? 9.5 Pong上的PG // 187? 9.6 本章小結 // 190
*10章 Actor-Critic方法 // 191? 10.1 方差減少 // 191? 10.2 CartPole方差 // 192? 10.3 Actor-Critic // 194? 10.4 Pong上的A2C // 196? 10.5 Pong上的A2C的結果 // 201? 10.6 調整超參數 // 202? 10.6.1 學習率 // 203? 10.6.2 熵beta // 203? 10.6.3 環境數量 // 204? 10.6.4 batch大小 // 204? 10.7 本章小結 // 204
*11章 異步優勢Actor-Critic方法 // 205? 11.1 相關性和樣本效率 // 205? 11.2 在A2C中添加另一個A // 206? 11.3 Python中的多處理 // 208? 11.4 A3C—數據並行 // 208? 11.5 A3C—梯度並行 // 214? 11.6 本章小結 // 219
*12章 用 RL訓練聊天機器人 // 220? 12.1 聊天機器人概述 // 220? 12.2 Deep NLP基礎知識 // 221? 12.2.1 RNN // 222? 12.2.2 嵌入 // 223? 12.2.3 編碼器 -解碼器 // 224? 12.3 seq2seq訓練 // 224? 12.3.1 對數似然訓練 // 224? 12.3.2 雙語評估替補(BLEU)得分 // 226? 12.3.3 seq2seq中的RL // 226? 12.3.4 自我評價序列訓練 // 228? 12.4 聊天機器人示例 // 228? 12.4.1 示例結構 // 229? 12.4.2 模塊:cornell.py和data.py // 229? 12.4.3 BLEU得分和utils.py // 230? 12.4.4 模型 // 231? 12.4.5 訓練:交叉熵 // 236? 12.4.6 執行訓練 // 239? 12.4.7 檢查數據 // 241? 12.4.8 測試訓練的模型 // 243? 12.4.9 訓練:SCST // 244? 12.4.10 運行SCST訓練 // 250? 12.4.11 結果 // 251? 12.4.12 電報機器人 // 252? 12.5 本章小結 // 254
*13章 Web瀏覽 // 255? 13.1 wangye瀏覽 // 255? 13.1.1 瀏覽器自動化操作和強化學習 // 255? 13.1.2 Mini World of Bits基準 // 256? 13.2 OpenAI Universe // 258? 13.2.1 安裝 // 258? 13.2.2 動作和觀察 // 259? 13.2.3 環境創建 // 259? 13.2.4 MiniWoB穩定性 // 261? 13.3 簡單的點擊方式 // 261? 13.3.1 網格動作 // 262? 13.3.2 示例概述 // 263? 13.3.3 模型 // 264? 13.3.4 訓練代碼 // 264? 13.3.5 啟動容器 // 269? 13.3.6 訓練過程 // 271? 13.3.7 檢查學到的策略 // 272? 13.3.8 簡單點擊的問題 // 273? 13.4 人工演示 // 275? 13.4.1 記錄演示 // 275? 13.4.2 錄制格式 // 277? 13.4.3 使用演示進行訓練 // 279? 13.4.4 結果 // 280? 13.4.5 TicTacToe問題 // 281? 13.5 增加文本描述 // 283? 13.6 要嘗試的事情 // 288? 13.7 本章小結 // 288
*14章 連續動作空間 // 289? 14.1 為什麼是連續空間 // 289? 14.2 動作空間 // 289? 14.3 環境 // 290? 14.4 Actor-Critic(A2C)方法 // 292? 14.4.1 實現 // 292? 14.4.2 結果 // 295? 14.4.3 使用模型和錄制視頻 // 296? 14.5 確定性策略梯度 // 297? 14.5.1 探索 // 298? 14.5.2 實現 // 298? 14.5.3 結果 // 302? 14.5.4 錄制視頻 // 303? 14.6 分布式策略梯度 // 304? 14.6.1 架構 // 304? 14.6.2 實現 // 304? 14.6.3 結果 // 308? 14.7 需要進一步嘗試的事情 // 309? 14.8 本章小結 // 309
*15章 信賴域 —TRPO、PPO和ACKTR // 310? 15.1 引言 // 310? 15.2 roboschool // 310? 15.3 A2C基線 // 311? 15.3.1 結果 // 313? 15.3.2 錄制視頻 // 313? 15.4 PPO // 313? 15.4.1 實現 // 314? 15.4.2 結果 // 317? 15.5 TRPO // 318? 15.5.1 實現 // 318? 15.5.2 結果 // 319? 15.6 使用ACKTR的A2C // 320? 15.6.1 實現 // 320? 15.6.2 結果 // 321? 15.7 本章小結 // 321
*16章 RL中的黑盒優化 // 322? 16.1 黑盒方法 // 322? 16.2 進化策略 // 322? 16.2.1 CartPole上的ES // 323? 16.2.2 HalfCheetah上的ES // 328? 16.3 遺傳算法 // 332? 16.3.1 CartPole上的GA // 333? 16.3.2 GA調整 // 335? 16.3.3 Cheetah上的GA // 336? 16.4 本章小結 // 339 參考文獻 // 339
*17章 超越無模型 —想像力 // 340? 17.1 基於模型與無模型 // 340? 17.2 模型缺陷 // 341? 17.3 想像力增強的智能體 // 342? 17.3.1 環境模型 // 343? 17.3.2 走步策略 // 343? 17.3.3 走步編碼器 // 344? 17.3.4 論文結果 // 344? 17.4 Atari Breakout上的I2A // 344? 17.4.1 基線A2C智能體 // 344? 17.4.2 環境模型訓練 // 345? 17.4.3 想像力智能體 // 347? 17.5 實驗結果 // 352? 17.5.1 基線智能體 // 352? 17.5.2 訓練環境模型權重 // 353? 17.5.3 使用I2A模型進行訓練 // 354? 17.6 本章小結 // 356 參考文獻 // 356
*18章 AlphaGo Zero // 357? 18.1 棋盤遊戲 // 357? 18.2 AlphaGo Zero方法 // 358? 18.2.1 概述 // 358? 18.2.2 MCTS // 359? 18.2.3 自玩 // 360? 18.2.4 訓練和評估 // 360? 18.3 Connect4機器人 // 361? 18.3.1 遊戲模型 // 361? 18.3.2 實現MCTS // 363? 18.3.3 模型 // 368? 18.3.4 訓練 // 369? 18.3.5 測試和比較 // 370? 18.4 Connect4結果 // 370? 18.5 本章小結 // 372 參考文獻 // 372
本書總結 // 373
|