Sigmoid、tanh(双曲正切函数)和 ReLU(Rectified Linear Unit)是深度学习中常用的激活函数。它们在神经网络中起着非常重要的作用,帮助模型学习复杂的数据模式。
1. **Sigmoid 函数**:
- 形式:`σ(x) = 1 / (1 + e^(-x))`。
- 输出范围在 0 到 1 之间,非常适合用于二分类问题中的输出层。
- Sigmoid 函数能够平滑地映射输入值到输出值,但是在输入值非常大或非常小的时候,梯度接近于零,容易产生梯度消失的问题。
- 这个函数在过去常用于隐藏层,但现在由于梯度消失问题,较少在隐藏层中使用。
2. **tanh 函数**:
- 形式:`tanh(x) = (e^(x) - e^(-x)) / (e^(x) + e^(-x))`。
- 输出范围在 -1 到 1 之间,是 Sigmoid 函数的缩放版本。
- 由于其输出值中心化在 0,因此在某些情况下比 Sigmoid 函数表现更好。
- 和 Sigmoid 函数一样,tanh 也存在梯度消失的问题,尤其是在输入值较大或较小时。
3. **ReLU 函数**:
- 形式:`ReLU(x) = max(0, x)`。
- 当输入为正时,输出等于输入;当输入为负时,输出为零。
- ReLU 函数解决了梯度消失问题,特别是在较大的输入值上。
- ReLU 通常用于隐藏层,并且是目前最流行的激活函数之一。
- 然而,ReLU 函数存在一个问题称为“死亡 ReLU”,当输入为负时,梯度为零,导致相应的神经元不再学习。
每种激活函数都有其优势和劣势,选择哪一种取决于特定的应用和网络架构。在实践中,通常会根据问题的性质和网络的其他特点来选择最适合的激活函数。