强化学习:简介
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
贡献
如果您想贡献一些缺失的示例或修复一些错误,请随时提出问题或提出拉取请求。