当前位置: 首页 > news >正文

深入理解强化学习——多臂赌博机:增量式实现

分类目录:《深入理解强化学习》总目录


至今我们讨论的动作—价值方法都把动作价值作为观测到的收益的样本均值来估计。下面我们探讨如何才能以一种高效的方式计算这些均值,尤其是如何保持常数级的内存需求和常数级的单时刻计算量。

为了简化标记,我们关心单个动作。令 R i R_i Ri表示这一动作被选择 i i i次后获得的收益, Q n Q_n Qn表示被选择 n − 1 n-1 n1次后它的估计的动作价值,现在可以简单地把它写为:
Q n = R 1 + R 2 + ⋯ + R n − 1 n − 1 Q_n=\frac{R_1+R_2+\cdots+R_{n-1}}{n-1} Qn=n1R1+R2++Rn1

这种简明的实现需要维护所有收益的记录,然后在每次需要估计价值时进行计算。然而,由于已知的收益越来越多,内存和计算量会随着时间增长。每增加一次收益就需要更多的内存存储和更多的计算资源来对分子求和,但这确实不是必须的。为了计算每个新的收益,很容易设计增量式公式以小而恒定的计算来更新平均值。给定 Q n Q_n Qn和第 n n n次的收益 R n R_n Rn,所有 n n n个收益的新的均值可以这样计算:
Q n + 1 = Q n + 1 n [ R n − Q n ] Q_{n+1}=Q_n+\frac{1}{n}[R_n-Q_n] Qn+1=Qn+n1[RnQn]

这个式子即使对 n = 1 n=1 n=1也有效,对任意 Q 1 Q_1 Q1,可以得到 Q 2 = R 1 Q_2=R_1 Q2=R1。对于每一个新的收益,这种实现只需要存储 Q n Q_n Qn n n n,并用上式进行少量计算即可。

上式的一般的形式是:
新估计值 = 旧估计值 + 步长 ∗ [ 目标 − 旧估计值 ] \text{新估计值}=\text{旧估计值}+\text{步长}*[\text{目标}-\text{旧估计值}] 新估计值=旧估计值+步长[目标旧估计值]

表达式 目标 − 旧估计值 \text{目标}-\text{旧估计值} 目标旧估计值是估计值的误差。误差会随着向“目标"(Target)靠近的每一步而减小。虽然“目标"中可能充满噪声,但我们还是假定“目标”会告诉我们可行的前进方向。比如在上述例子中,目标就是第 n n n次的收益。

值得注意的是,上述增量式方法中的“步长"(Stepsize)会随着时间而变化。处理动作 a a a对应的第 n n n个收益的方法用的“步长"是 1 n \frac{1}{n} n1。我们将“步长"记作 α \alpha α,或者更普适地记作 α t ( a ) \alpha_t(a) αt(a)

参考文献:
[1] 张伟楠, 沈键, 俞勇. 动手学强化学习[M]. 人民邮电出版社, 2022.
[2] Richard S. Sutton, Andrew G. Barto. 强化学习(第2版)[M]. 电子工业出版社, 2019
[3] Maxim Lapan. 深度强化学习实践(原书第2版)[M]. 北京华章图文信息有限公司, 2021
[4] 王琦, 杨毅远, 江季. Easy RL:强化学习教程 [M]. 人民邮电出版社, 2022

http://www.lryc.cn/news/220479.html

相关文章:

  • 视频批量混剪剪辑软件类似剪映设计一个模板后, 视频,图片,文字,转场,音频,特效都可以系统随机
  • 优维低代码实践:打包发布
  • js深度学习(三)
  • JVM类的声明周期
  • html将复选框变为圆形样例
  • 笔记软件 Keep It mac v2.3.3中文版新增功能
  • uni-app 开发的H5 定位功能部署注意事项
  • CY5-COOH脂溶性羧基荧光染料1032678-07-1
  • 【CSS】div 盒子居中的常用方法
  • Pytorch网络模型训练
  • webgoat-Path traversal
  • P8976 「DTOI-4」排列,贪心
  • 使用 Python 进行自然语言处理第 5 部分:文本分类
  • uni-app---- 点击按钮拨打电话功能点击按钮调用高德地图进行导航的功能【安卓app端】
  • 通讯录详解(静态版,动态版,文件版)
  • 在windows中搭建vue开发环境
  • 数字化转型:云表低代码开发助力制造业腾飞
  • Linux学习之vim跳转到特定行数
  • 详解基于Android的Appium+Python自动化脚本编写
  • 【马蹄集】—— 百度之星 2023
  • 大数据毕业设计选题推荐-无线网络大数据平台-Hadoop-Spark-Hive
  • 【jvm】虚拟机之本地方法接口与本地方法库
  • HDFS系统操作命令大全
  • 雷尼绍探头编程 9810
  • el-table 列分页
  • APP攻防--ADB基础
  • 【Linux】第十站:git和gdb的基本使用
  • Single Image Haze Removal Using Dark Channel Prior(暗通道先验)
  • 力扣382.链表随机节点(java利用数组随机返回节点值)
  • 在jupyter中使用R