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