激活函数在神经网络中扮演着至关重要的角色,它能够将线性激活转换为非线性激活,使得神经网络能够学习到复杂的非线性关系。本教程将深入探讨一些高级激活函数及其应用。

1. ReLU (Rectified Linear Unit)

ReLU 是最常用的激活函数之一,它将所有负值转换为 0,而正值保持不变。这种函数能够加速神经网络的训练,并减少梯度消失问题。

公式: [ f(x) = \max(0, x) ]

ReLU 激活函数

2. Leaky ReLU

Leaky ReLU 是 ReLU 的改进版,它允许小量的梯度流过负值部分,这有助于解决 ReLU 在训练初期可能遇到的死神经元问题。

公式: [ f(x) = \max(0, x) + \alpha x ] 其中 ( \alpha ) 是一个小于 1 的常数。

Leaky ReLU 激活函数

3. ELU (Exponential Linear Unit)

ELU 是一种在 ReLU 和 Leaky ReLU 之间的选择,它对于负值部分使用指数衰减而不是简单的乘以一个常数。

公式: [ f(x) = \begin{cases} x & \text{if } x > 0 \ \alpha(e^x - 1) & \text{if } x \leq 0 \end{cases} ] 其中 ( \alpha ) 是一个小于 1 的常数。

ELU 激活函数

4. SELU (Scaled Exponential Linear Unit)

SELU 是由 Kaiming He 等人提出的,它结合了 ELU 和 Leaky ReLU 的优点,同时保持了参数 ( \alpha ) 和 ( \lambda ) 的简洁性。

公式: [ f(x) = \lambda \cdot \phi(x) ] 其中 [ \phi(x) = \begin{cases} x & \text{if } x > 0 \ \alpha(e^x - 1) & \text{if } x \leq 0 \end{cases} ] [ \lambda = \text{scale factor} ] [ \alpha = \text{shift factor} ]

SELU 激活函数

5. Swish

Swish 是一个由 Google Research 提出的激活函数,它在某些情况下比 ReLU 更有效。

公式: [ f(x) = x \cdot \sigma(x) ] 其中 ( \sigma(x) = \frac{1}{1 + e^{-x}} )

Swish 激活函数

扩展阅读

如果您想了解更多关于激活函数的信息,可以访问本站的神经网络基础教程