如果最终输出需要负值,leaky relu 是否有助于学习?

人工智能 神经网络
2021-10-31 10:26:07

在每个隐藏层(除了最终层)之后具有 ReLU 激活函数的 MLP 中,

假设最后一层应该输出正值和负值。

使用 ReLU 中间激活,这仍然是可能的,因为最后一层尽管只接受正输入,但可以将它们组合为负。

但是,使用leaky ReLU 会允许更快的收敛吗?因为您可以将负值作为输入传递给最后一层,而不是等到最后一层才使事情变成负数

3个回答

简而言之,如果您的输出需要正值和负值,Leaky Relu 有助于加快收敛速度​​。但问题是你需要调整 Leaky Relu 的负斜率,这是一个超参数,以获得更好的准确性。

答案取决于具体情况。可能会发生数据集在 ReLu 上的表现非常好,但需要更多的迭代次数才能收敛到泄漏的 ReLu 或 PReLu 上,反之亦然。这里有两个论点需要考虑:

  • 在所有其他类型的 ReLu 中, ReLu 是最非线性的,通过这个不那么数学的术语,我的意思是说,与任何其他类型的修改后的 ReLu 相比,它在 0 处的斜率下降幅度最大。
  • ReLu 省略了负值,这可能是数据规范化上下文的一个重大问题。正如这个来自斯坦福的视频 (~10:00)解释了在signs权重更新的情况下数据归一化是如何必要的,所以我们可以非常粗略地说任何形式的 Leaky ReLU 都会对数据进行某种程度的归一化。

所以从理论上讲(可能在数学上不严谨)如果所有输入与输出呈正相关(输入增加,输出也增加),ReLu 应该工作得很好并且收敛更快。而如果也存在负相关,那么 Leaky ReLu 可能会更好。

关键是,除非有人在训练 NN 时给出明确的数学关系,否则很难判断哪些会很好,哪些不会,除非凭直觉。

leaky ReLU 负部分的输出和梯度都比正部分低 100 倍。我怀疑它们对训练方向和/或训练模型的最终输出有任何重大影响,除非模型严重欠拟合。