【问题标题】:RL Activation Functions with Negative Rewards具有负奖励的 RL 激活函数
【发布时间】:2023-04-08 00:59:01
【问题描述】:

我有一个关于在具有正面和负面奖励的环境中适当的激活函数的问题。

在强化学习中,我相信我们的输出应该是所有可能行动的预期回报。由于某些选项具有负奖励,因此我们需要一个包含负数的输出范围。

这会让我相信唯一合适的激活函数要么是线性的,要么是 tanh。但是,我看到很多 RL 论文都使用了 Relu。

所以两个问题:

  1. 如果您确实想要同时具有负输出和正输出,是否仅限于 tanh 和线性?

  2. 是否是更好的策略(如果可能)扩大奖励,使它们都在正域中(即,而不是 [-1,0,1], [0, 1, 2])为了让模型利用替代激活函数?

【问题讨论】:

  • 你能指出一些使用 Relu 的 RL 论文,其输出是预期的奖励吗? (只是好奇!)谢谢。
  • 来自 Mnih 的人类水平控制强化学习和来自 openAI 的事后经验回放

标签: machine-learning reinforcement-learning q-learning activation-function


【解决方案1】:

许多 RL 论文确实在大多数层使用 Relu,但通常不会用于最终输出层。您在其中一篇 cmets 中提到了 Human Level Control through Deep Reinforcement Learning 论文和 Hindsight Experience Replay 论文,但这两篇论文都没有描述使用 Relu 作为输出层的架构。

在通过 Deep RL 进行人类水平控制论文,第 6 页(参考后),“方法”部分,“模型架构”部分的最后一段提到输出层是一个完全-连接的线性层(不是 Relu)。因此,确实,所有隐藏层只能具有非负激活级别(因为它们都使用 Relus),但如果输出层和最后一个隐藏层之间存在负权重,则输出层可以具有负激活级别。这确实是必要的,因为它应该创建的输出可以解释为 Q 值(可能为负)。

在 Hindsight Experience Replay 论文中,他们不使用 DQN(如上面的论文),而是使用 DDPG。这是一个“Actor-Critic”算法。该架构的“批评”部分也旨在输出可能为负的值,类似于 DQN 架构,因此这也不能使用 Relu 作为输出层(但它仍然可以在网络中的其他任何地方使用 Relus)。在本文的附录A中,在“网络架构”下,也描述了actor输出层使用tanh作为激活函数。

回答您的具体问题:

  1. 如果您确实希望同时具有负输出和正输出,是否仅限于 tanh 和线性输出?
  2. 是否是更好的策略(如果可能)扩大奖励,使它们都在正域中(即,而不是 [-1,0,1],[0,1,2]),以便模型来利用替代激活函数?
  1. 嗯,还有其他的激活(leaky relu、sigmoid,可能还有很多其他的)。但是 Relu 确实不会导致负输出。
  2. 可能不是 100% 确定。但是,如果您不了解可能获得多少奖励(和/或回报)的领域知识,这通常会很困难。我有一种感觉,通常以一个完全连接的线性层结束通常会更容易。

【讨论】:

  • 这正是我所缺少的部分——你可以在中间有非负层,但仍然可以在最后一层实现负片。重新回答你的具体答案 - 我虽然 sigmoid 被限制在 0,1 之间。泄漏的 relu 可以有负值,但这更多只是为了确保它不会在零处死掉。我不相信它是为了输出负值。我想我同意你的第二点。缩放奖励可能会导致可能无法反映现实的扭曲。最好尽量保持简单并修改模型。谢谢!
【解决方案2】:

如果您确实想要同时具有负输出和正输出,您是否仅限于 tanh 和线性?

不,这只是输出层的激活函数的情况。对于所有其他层,这无关紧要,因为您可以有负权重,这意味着只有正值的神经元仍然可以为下一层贡献负值。

【讨论】:

    猜你喜欢
    • 2022-11-02
    • 1970-01-01
    • 2017-03-01
    • 1970-01-01
    • 2018-09-24
    • 2017-12-25
    • 1970-01-01
    • 1970-01-01
    • 2012-07-29
    相关资源
    最近更新 更多