强化学习小笔记 —— 如何选择合适的更新步长

在强化学习中,动作价值函数的更新可以使用增量法,如下所示:
Q k = 1 k ∑ i = 1 k r i = 1 k ( r k + ∑ i = 1 k − 1 r i ) = 1 k ( r k + ( k − 1 ) Q k − 1 ) = 1 k ( r k + k Q k − 1 − Q k − 1 ) = Q k − 1 + 1 k [ r k − Q k − 1 ] \begin{align*} Q_k &= \frac{1}{k}\sum_{i=1}^k r_i \\ &= \frac{1}{k}(r_k + \sum_{i=1}^{k-1}r_i) \\ &= \frac{1}{k}(r_k + (k-1)Q_{k-1}) \\ &= \frac{1}{k}(r_k + kQ_{k-1} - Q_{k-1}) \\ &= Q_{k-1} + \frac{1}{k}[r_k - Q_{k-1}] \end{align*} Qk=k1i=1∑kri=k1(rk+i=1∑k−1ri)=k1(rk+(k−1)Qk−1)=k1(rk+kQk−1−Qk−1)=Qk−1+k1[rk−Qk−1]

因此,根据最新观测到的奖励 r k r_k rk,使用增量计算方法根据误差 r k − Q k − 1 r_k - Q_{k-1} rk−Qk−1调整当前的估计值 Q k Q_k Qk,步长为 1 k \frac{1}{k} k1,继而获得新的估计值 Q k Q_{k} Qk。这意味着,如果最近观测到的奖励大于当前的估计值,我们会向上修改行动值的估计值。

请注意,由于存在 1 k \frac{1}{k} k1项,随着我们进行更多的观测,我们调整估计的比率将变小(公式中的 k k k随着访问次数的增加而不断增加,导致 1 k \frac{1}{k} k1越来越小)。因此,我们对最新的观测不太重视,对特定动作的动作值的估计会随着时间的推移而逐渐稳定下来。这意味着学习过程会逐渐变得保守,因为我们更加相信之前的经验。

但是,如果环境不是静止而是随时间变化的,这可能是不利的。在某些情况下,我们希望使用不会随时间减小的固定不长,例如,固定的步长 α ∈ ( 0 , 1 ) \alpha \in (0,1) α∈(0,1)。当环境随时间变化时,我们希望智能体能够适应环境的变化,而不是过分依赖过去的经验。如果我们使用固定步长,智能体将更好地适应这些变化,因为它会持续地从新的经验中学习,而不是逐渐降低学习速率。

综上,在一个平稳问题(环境)中,我们通常设置步长不断递减,这将有助于模型更快收敛。在一个随时间变化的环境中,我们通常设置固定的步长,避免模型过分依赖过去的经验。

相关推荐
Norvyn_741 分钟前
LeetCode|Day18|20. 有效的括号|Python刷题笔记
笔记·python·leetcode
Teacher.chenchong1 小时前
现代R语言机器学习:Tidymodel/Tidyverse语法+回归/树模型/集成学习/SVM/深度学习/降维/聚类分类与科研绘图可视化
机器学习·回归·r语言
TomatoSCI1 小时前
聚类的可视化选择:PCA / t-SNE丨TomatoSCI分析日记
人工智能·机器学习
nju_spy1 小时前
周志华《机器学习导论》第8章 集成学习 Ensemble Learning
人工智能·随机森林·机器学习·集成学习·boosting·bagging·南京大学
星座5281 小时前
基于现代R语言【Tidyverse、Tidymodel】的机器学习方法与案例分析
机器学习·r语言·tidyverse·tidymodel
Y4090012 小时前
C语言转Java语言,相同与相异之处
java·c语言·开发语言·笔记
笑衬人心。2 小时前
TCP 拥塞控制算法 —— 慢启动(Slow Start)笔记
笔记·tcp/ip·php
花海如潮淹2 小时前
前端性能追踪工具:用户体验的毫秒战争
前端·笔记·ux
Andy杨3 小时前
20250718-5-Kubernetes 调度-Pod对象:重启策略+健康检查_笔记
笔记·容器·kubernetes
石迹耿千秋7 小时前
迁移学习--基于torchvision中VGG16模型的实战
人工智能·pytorch·机器学习·迁移学习