強化學習:簡介
Sutton 和 Barto 的書《強化學習:簡介》(第二版)的 Python 複製
如果您對程式碼有任何困惑或想要報告錯誤,請打開一個問題,而不是直接給我發電子郵件,不幸的是我沒有這本書的練習答案。
內容
第一章
- 井字遊戲
第2章
- 圖 2.1:10 臂測試台的老虎機問題範例
- 圖 2.2:epsilon 貪婪動作值方法在 10 臂測試台上的平均表現
- 圖 2.3:樂觀的初始行動價值估計
- 圖 2.4:UCB 動作選擇在 10 臂測試平台上的平均性能
- 圖 2.5:梯度老虎機演算法的平均效能
- 圖 2.6:各種老虎機演算法的參數研究
第三章
- 圖 3.2:具有隨機策略的網格範例
- 圖 3.5:網格世界範例的最佳解決方案
第4章
- 圖 4.1:小型網格世界上迭代策略評估的收斂性
- 圖4.2:傑克的租車問題
- 圖4.3:賭徒問題的解決方案
第5章
- 圖 5.1:二十一點策略的近似狀態值函數
- 圖 5.2:Monte Carlo ES 發現的二十一點最優策略與狀態價值函數
- 圖 5.3:加權重要性抽樣
- 圖 5.4:具有令人驚訝的不穩定估計的普通重要性抽樣
第6章
- 例 6.2:隨機遊走
- 圖 6.2:批次更新
- 圖 6.3:Sarsa 應用於多風網格世界
- 圖 6.4:懸崖行走任務
- 圖 6.6:TD 控制方法的中期和漸近性能
- 圖 6.7:Q-learning 與 Double Q-learning 的比較
第7章
- 圖 7.2:n 步 TD 方法在 19 狀態隨機遊走上的效能
第8章
- 圖 8.2:Dyna-Q 代理的平均學習曲線隨規劃步驟數量的變化而變化
- 圖 8.4:Dyna 代理在阻塞任務上的平均效能
- 圖 8.5:Dyna 代理程式在快速任務上的平均效能
- 範例 8.4:優先清掃顯著縮短了 Dyna 迷宮任務的學習時間
- 圖 8.7:預期更新與樣本更新的效率比較
- 圖 8.8:不同更新分佈的相對效率
第9章
- 圖 9.1:1000 狀態隨機遊走任務的梯度蒙特卡羅演算法
- 圖 9.2:1000 狀態隨機遊走任務的半梯度 n 步 TD 演算法
- 圖 9.5:1000 狀態隨機遊走任務中的傅立葉基與多項式
- 圖 9.8:特徵寬度對初始泛化和漸進精度影響的範例
- 圖 9.10:1000 狀態隨機遊走任務的單平鋪與多重平鋪
第10章
- 圖 10.1:一次執行 Mountain Car 任務的成本函數
- 圖 10.2:Mountain Car 任務中半梯度 Sarsa 的學習曲線
- 圖 10.3:半梯度 Sarsa 在 Mountain Car 任務上的一步與多步驟效能
- 圖 10.4:alpha 和 n 對 n 步半梯度 Sarsa 早期表現的影響
- 圖 10.5:存取控制排隊任務上的差分半梯度 Sarsa
第11章
- 圖 11.2:貝爾德的反例
- 圖 11.6:TDC 演算法在貝爾德反例上的行為
- 圖 11.7:ETD 演算法在貝爾德反例中的預期行為
第12章
- 圖 12.3:19 狀態隨機遊走的離線 λ-return 演算法
- 圖 12.6:19 狀態隨機遊走的 TD(λ) 演算法
- 圖 12.8:19 狀態隨機遊走的真正線上 TD(λ) 演算法
- 圖 12.10:Sarsa(λ) 在 Mountain Car 上替換軌跡
- 圖 12.11:Mountain Car 上 Sarsa(λ) 演算法的總結比較
第13章
- 範例 13.1:具有切換動作的短走廊
- 圖 13.1:加強短廊網格世界
- 圖 13.2:在短廊網格世界上使用基線進行強化
環境
用法
所有文件都是獨立的
python any_file_you_want.py
貢獻
如果您想貢獻一些缺少的範例或修復一些錯誤,請隨時提出問題或提出拉取請求。