RL 奖励是否应该随着时间的推移而减少?

人工智能 强化学习 奖励
2021-11-05 02:52:04

奖励应该随着时间的推移而累积还是减少?

例如,假设代理在某个时间执行了一个好的操作t并获得了积极的回报R. 如果奖励是累积的,R将在剧集的其余部分进行,并与任何未来的奖励相加。然而,如果R随着时间的推移会减少(比如有一些缩放Rt),那么这不会鼓励代理继续采取行动来增加其奖励吗?

通过累积奖励,奖励可以根据代理的行为增加和减少。但是如果代理收到一个好的奖励R然后很长一段时间什么都不做,它仍然有它收到的原始奖励(鼓励它少做?)。然而,如果奖励随着时间的推移而减少,理论上这将鼓励智能体继续采取行动以最大化奖励。

我发现对于某些应用程序和某些超参数,如果奖励是累积的,代理只是在剧集开始时采取了一个好的行动,然后很高兴在剧集的其余部分什么都不做(因为它仍然有奖励R)。

1个回答

RL 代理 - 正确实施 - 在做出决策时不会考虑以前的奖励。例如,价值函数仅评估潜在的未来回报。状态值或预期回报(又名实用程序G从起始状态s可以这样定义:

v(s)=Eπ[Gt|St=s]=Eπ[k=0γkRt+k+1|St=s]

在哪里Rt是当时的奖励分布t, 和Eπ代表按照策略给出的期望值π用于动作选择。

这有一些变化,具体取决于设置和您感兴趣的价值函数。但是,RL 中使用的所有价值函数都会在采取行动时从决策点查看未来的奖励总和。不考虑过去的奖励。

如果出现以下情况,代理人仍可能选择早期获得高额奖励而不是长期奖励:

  • 两种奖励之间的选择是独家的

  • 早期奖励的回报更高。这可能取决于折扣因素,γ,其中低值使代理更喜欢更直接的奖励。

如果您的问题是代理选择了较低的早期奖励,而它可能会忽略它以支持稍后更大的奖励,那么您应该检查您正在使用的折扣因子。如果您希望 RL 代理有长远的眼光,那么折扣因子需要接近1.0.

但是,您的问题的前提是,RL 代理会以某种方式变得“懒惰”或“自满”,因为它已经获得了足够的奖励。由于其制定方式,这不是 RL 中出现的问题。不仅在计算来自状态的返回值时没有考虑过去的奖励,而且在 RL 中也没有公式可以让智能体像满足其饥饿感的生物一样获得“足够”的总奖励——最大化总是适用于所有状态。

没有必要以某种方式衰减任何内存结构中过去的奖励,实际上也没有真正的方法可以做到这一点,因为没有数据结构可以累积任何 RL 代理使用的过去奖励。您可能仍会收集此信息以显示结果或分析性能,但代理不会使用rt弄清楚什么一个应该。

我发现对于某些应用程序和某些超参数,如果奖励是累积的,代理只是在情节开始时采取了一个好的行动,然后很高兴在情节的其余部分不做任何事情(因为它仍然有奖励R

在这种情况下,您可能为您的问题制定了错误的奖励函数。累积奖励计划(代理人获得奖励一个=1然后一个+b=2然后一个+b+C=3等)将非常专业,您可能误解了如何表示代理的目标。如果您无法解决此问题,我建议您针对您的特定环境和建议的奖励计划提出一个单独的问题。