这会让我相信唯一合适的激活函数要么是线性的,要么是 tanh。但是,我看到很多 RL 论文都使用了 Relu。
通常,您需要线性输出,除非您可以保证将可能的总奖励缩放到有限范围内,例如[−1,1]为了tanh. 请注意,这不是用于估计个人奖励,而是用于在遵循您想要预测的策略时的总预期奖励(通常是最终的最佳策略,但您希望该函数能够估计在优化期间访问的其他策略的回报)。
在您提到的论文中仔细检查输出中是否应用了激活函数。如果所有奖励都是正的,那么使用 ReLU 进行回归应该没有问题,如果输出被限制在一个现实的最小值,它实际上可能有助于将网络稳定在一个方向上。但是,您不应该在文献中找到需要预测负回报的输出层具有 ReLU 的网络。
如果您确实想要同时具有负输出和正输出,那么您是否仅限于 tanh 和线性?
可能还有其他,但线性将是最常见的。
扩大奖励以使它们都在正域中(即,而不是 [-1,0,1], [0, 1, 2])是更好的策略(如果可能的话)吗?替代激活函数?
有时可能值得考虑按一个因子缩放奖励,或对其进行归一化,以限制梯度,从而使学习稳定。这被用于玩 Atari 游戏的 DQN 网络,以帮助相同的算法处理具有不同得分范围的多个游戏。
在连续问题中,奖励的绝对值通常是灵活的,您通常对获得每个时间步的最佳平均奖励感兴趣。因此,在这种情况下,您可以扩展以使最小奖励为 0,并在输出中使用 ReLU 或其他范围有限的变换——如上所述,这可能有助于提高数值稳定性。
在没有固定长度的情节问题中,您通常没有这样的自由选择,因为当奖励为负时,鼓励代理快速结束情节。例如,如果目标是尽快或尽可能高效地完成任务,这可能是您想要的。一个很好的例子是“山地车”——在那种情况下只给予积极的奖励会适得其反,尽管你可能仍然会得到可接受的结果,只在最后给予积极的奖励并打折。
一般情况下,奖励可以任意缩放并集中于连续问题,而不会有意义地改变智能体的目标,但只能针对偶发问题任意缩放。