从各个方面来看,对于深度神经网络,ReLU 似乎都优于 sigmoid 或 tanh:
- 简单的
- 在生物学上更合理
- 没有渐变消失
- 更好的性能
- 稀疏性
而且我只看到 sigmoid/tanh 的一个优点:它们是有界的。这意味着您的激活不会在您继续训练时爆炸,并且您的网络参数不会飞到天空。
为什么我们不应该忘记深度神经网络的 sigmoid/tanh?
从各个方面来看,对于深度神经网络,ReLU 似乎都优于 sigmoid 或 tanh:
而且我只看到 sigmoid/tanh 的一个优点:它们是有界的。这意味着您的激活不会在您继续训练时爆炸,并且您的网络参数不会飞到天空。
为什么我们不应该忘记深度神经网络的 sigmoid/tanh?
在某些具有对称激活层的网络结构中具有优势(例如某些自动编码器)
在某些情况下,激活均值为 0 很重要(因此 tanh 有意义)。
输出层中的 Sigmoid 激活对于分类仍然很重要
不过,在 95% 的情况下,ReLU 会好得多。
Sigmoid 有助于控制激活,而 ReLu 会炸毁它。Sigmoid 不会过拟合。看看这个。
我仍然会要求您从 ReLu 开始进行训练,因为它在大多数情况下表现更好。
我想到了三种情况:
二元分类任务:你可以用一个输出节点 + Sigmoid + Binary Crossentropy loss 来完成。
多重独立分类:当一个观察可以分为两个或两个以上的类别时,并且每个类别都独立于其他类别。在这种情况下,即使你有很多输出节点,最终的激活函数也必须是 Sigmoid。
LSTM 和 GRU 层包含 Sigmoid 和 TanH 门。它们具有正确的形状,可以让 RNN 确定有多少过去的信息必须被遗忘/丢弃/转发。(可以使用 ReLU 更改它们,但没有证据表明这会提高循环层的内部性能。)