6

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

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

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

所以两个问题:

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

  2. 扩大奖励以使它们都在正域中(即而不是 [-1,0,1], [0, 1, 2])是更好的策略(如果可能的话)吗?替代激活函数?

4

2 回答 2

4

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

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

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

要回答您的具体问题:

  1. 如果您确实想要同时具有负输出和正输出,那么您是否仅限于 tanh 和线性?
  2. 扩大奖励以使它们都在正域中(即,而不是 [-1,0,1], [0, 1, 2])是更好的策略(如果可能的话)吗?替代激活函数?
  1. 好吧,还有其他激活(可能是泄漏的 relu,sigmoid,还有很多其他的)。但是 Relu 确实不能导致负输出。
  2. 可能不是 100% 确定。但是,如果您不了解可能获得多少奖励(和/或回报)的领域知识,这通常会很困难。我有一种感觉,简单地以一个完全连接的线性层结束通常会更容易。
于 2017-12-29T16:46:54.527 回答
1

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

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

于 2021-06-07T10:19:03.457 回答