为什么当我们有 ReLU 时,深度神经网络仍然使用 sigmoid/tanh 激活函数?

数据挖掘 神经网络 深度学习 激活函数
2021-10-11 23:45:16

从各个方面来看,对于深度神经网络,ReLU 似乎都优于 sigmoid 或 tanh:

  • 简单的
  • 在生物学上更合理
  • 没有渐变消失
  • 更好的性能
  • 稀疏性

而且我只看到 sigmoid/tanh 的一个优点:它们是有界的。这意味着您的激活不会在您继续训练时爆炸,并且您的网络参数不会飞到天空。

为什么我们不应该忘记深度神经网络的 sigmoid/tanh?

3个回答
  • 在某些具有对称激活层的网络结构中具有优势(例如某些自动编码器)

  • 在某些情况下,激活均值为 0 很重要(因此 tanh 有意义)。

  • 输出层中的 Sigmoid 激活对于分类仍然很重要

不过,在 95% 的情况下,ReLU 会好得多。

Sigmoid 有助于控制激活,而 ReLu 会炸毁它。Sigmoid 不会过拟合。看看这个

我仍然会要求您从 ReLu 开始进行训练,因为它在大多数情况下表现更好。

我想到了三种情况:

  1. 二元分类任务:你可以用一个输出节点 + Sigmoid + Binary Crossentropy loss 来完成。

  2. 多重独立分类:当一个观察可以分为两个或两个以上的类别时,并且每个类别都独立于其他类别。在这种情况下,即使你有很多输出节点,最终的激活函数也必须是 Sigmoid。

  3. LSTM 和 GRU 层包含 Sigmoid 和 TanH 门。它们具有正确的形状,可以让 RNN 确定有多少过去的信息必须被遗忘/丢弃/转发。(可以使用 ReLU 更改它们,但没有证据表明这会提高循环层的内部性能。)