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

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


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

为了简化标记,我们关心单个动作。令 R i R_i Ri表示这一动作被选择 i i i次后获得的收益, Q n Q_n Qn表示被选择 n − 1 n-1 n−1次后它的估计的动作价值,现在可以简单地把它写为:
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=n−1R1+R2+⋯+Rn−1

这种简明的实现需要维护所有收益的记录,然后在每次需要估计价值时进行计算。然而,由于已知的收益越来越多,内存和计算量会随着时间增长。每增加一次收益就需要更多的内存存储和更多的计算资源来对分子求和,但这确实不是必须的。为了计算每个新的收益,很容易设计增量式公式以小而恒定的计算来更新平均值。给定 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[Rn−Qn]

这个式子即使对 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

相关推荐
范桂飓5 分钟前
模型训练资源需求计算公式
人工智能
其美杰布-富贵-李6 分钟前
tsai 中 Learner 机制深度学习笔记
人工智能·笔记·深度学习
KAI智习24 分钟前
大模型榜单周报(2025/12/20)
人工智能·大模型
2501_9071368239 分钟前
AI 小说生成器-基于 Tauri 2.0 + Vue 3 + TypeScript 的智能小说创作工具
人工智能·软件需求
love530love1 小时前
ComfyUI 升级 v0.4.0 踩坑记录:解决 TypeError: QM_Queue.task_done() 报错
人工智能·windows·python·comfyui
金士镧(厦门)新材料有限公司1 小时前
稀土化合物:推动科技发展的“隐形力量”
人工智能·科技·安全·全文检索·生活·能源
牛客企业服务1 小时前
AI简历筛选:破解海量简历处理难题
人工智能
粟悟饭&龟波功1 小时前
【GitHub热门项目精选】(2025-12-19)
前端·人工智能·后端·github
诸葛务农1 小时前
类脑智能技术前沿进展及中美类脑智能技术比对
人工智能
LiYingL1 小时前
ChartCap:利用大型数据集和新的评估指标抑制图表标题幻觉
人工智能