首页  >  文章  >  后端开发  >  为什么我的 Q-Learning 价值观呈爆炸式增长?夸大的奖励和浮点限制的故事。

为什么我的 Q-Learning 价值观呈爆炸式增长?夸大的奖励和浮点限制的故事。

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-10-26 00:50:28619浏览

 Why Are My Q-Learning Values Exploding? A Tale of Inflated Rewards and Floating Point Limits.

Q-Learning 值超出阈值

在尝试实施 Q-Learning 时,出现了状态操作值超出阈值的问题双精度浮点变量的限制。最初的实现将此问题归因于使用了 agent.prevState 而不是状态-操作元组。然而,根本原因被确定为 prevScore 的计算。

理解问题

Q-Learning 根据以下值更新 Q(s, a) 的值公式:

Q(s, a) = Q(s, a) + (LearningRate * (prevScore + (DiscountFactor * reward) - Q(s, a)))

关键的一点是 prevScore 代表前一个状态动作的奖励,而不是 Q 值。在最初的实现中,prevScore 包含了上一步的 Q 值,而不是奖励本身,导致值膨胀超出了浮点限制。

分辨率

通过修改 prevScore 以保留上一步的真实奖励,学习过程按预期进行。 2M 集后的最大值显着降低,模型在游戏过程中表现出合理的行为。

奖励的作用

值得注意奖励函数的影响在强化学习中。目标是最大化预期总奖励。如果每个时间步都给予奖励,算法将有利于延长游戏,导致 Q 值过高。在此示例中,为每个时间步引入负奖励会鼓励智能体以胜利为目标,从而将 Q 值控制在适当的范围内。

以上是为什么我的 Q-Learning 价值观呈爆炸式增长?夸大的奖励和浮点限制的故事。的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn