在每个隐藏层(除了最终层)之后具有 ReLU 激活函数的 MLP 中,
假设最后一层应该输出正值和负值。
使用 ReLU 中间激活,这仍然是可能的,因为最后一层尽管只接受正输入,但可以将它们组合为负。
但是,使用leaky ReLU 会允许更快的收敛吗?因为您可以将负值作为输入传递给最后一层,而不是等到最后一层才使事情变成负数
在每个隐藏层(除了最终层)之后具有 ReLU 激活函数的 MLP 中,
假设最后一层应该输出正值和负值。
使用 ReLU 中间激活,这仍然是可能的,因为最后一层尽管只接受正输入,但可以将它们组合为负。
但是,使用leaky ReLU 会允许更快的收敛吗?因为您可以将负值作为输入传递给最后一层,而不是等到最后一层才使事情变成负数
简而言之,如果您的输出需要正值和负值,Leaky Relu 有助于加快收敛速度。但问题是你需要调整 Leaky Relu 的负斜率,这是一个超参数,以获得更好的准确性。
答案取决于具体情况。可能会发生数据集在 ReLu 上的表现非常好,但需要更多的迭代次数才能收敛到泄漏的 ReLu 或 PReLu 上,反之亦然。这里有两个论点需要考虑:
(~10:00)
解释了在signs
权重更新的情况下数据归一化是如何必要的,所以我们可以非常粗略地说任何形式的 Leaky ReLU 都会对数据进行某种程度的归一化。所以从理论上讲(可能在数学上不严谨)如果所有输入与输出呈正相关(输入增加,输出也增加),ReLu 应该工作得很好并且收敛更快。而如果也存在负相关,那么 Leaky ReLu 可能会更好。
关键是,除非有人在训练 NN 时给出明确的数学关系,否则很难判断哪些会很好,哪些不会,除非凭直觉。
leaky ReLU 负部分的输出和梯度都比正部分低 100 倍。我怀疑它们对训练方向和/或训练模型的最终输出有任何重大影响,除非模型严重欠拟合。