激活函数是人工神经网络中的一个关键组件,负责引入非线性,从而使神经网络能够学习和表示复杂的非线性关系。没有激活函数,神经网络中的所有计算都是线性变换,而线性模型的表达能力有限,无法处理复杂的任务。

激活函数的作用

  • 引入非线性:通过将线性输入映射到非线性输出,使神经网络具备表示复杂函数的能力。

  • 控制输出范围:激活函数常将输出限制在某个范围内,如 [0,1] ,有助于稳定训练过程。

  • 提供梯度信息:激活函数对输入的导数用于反向传播,通过调整参数来优化网络性能。

常见激活函数

(一)ReLU(Rectified Linear Unit)

公式:

 f(x) = \max(0, x)

 

特点:

  • 输出范围:[0,+∞)

  • 优点:计算简单,高效;缓解了梯度消失问题。

  • 缺点:可能导致“神经元死亡”(Dead Neurons)问题,尤其是输入为负时。即当权重更新导致某些神经元输出恒为0时,这些神经元可能永远不被激活。

(二)Sigmoid

公式:

f(x) = \frac{1}{1 + e^{-x}}

特点:

  • 输出范围:(0,1)

  • 非线性且平滑,对输入做“压缩”,将其映射到 (0,1)区间

特点:

  • 输出范围:(0,1)(0, 1)(0,1)

  • 常用于二分类问题的输出层。

  • 优点:平滑,可解释为概率。

  • 缺点:梯度在接近 0 和 1 时趋近于 0(梯度消失问题)。

(三)Tanh(Hyperbolic Tangent)

公式

f(x) = \tanh(x) = \frac{e^x - e^{-x}}{e^x + e^{-x}}

 

特点:

  • 输出范围:(−1,1)(-1, 1)(−1,1)。

  • 优点:输出均值接近 0,适合深层网络的梯度传播。

  • 缺点:和 Sigmoid 一样,容易出现梯度消失问题。

(四)LReLU(Leaky ReLU)

公式:

f(x) = \begin{cases} x & \text{if } x > 0 \\ \alpha x & \text{if } x \leq 0 \end{cases}

特点:

  • 输出范围:[ -∞, +∞ )。
  • 优点:解决了 ReLU 的“神经元死亡”问题。
  • 缺点:引入了一个额外的超参数 α ,默认为 0.1。

(五)PReLU(Parametric ReLU)

公式:

f(x) = \begin{cases} x & \text{if } x > 0 \\ \alpha x & \text{if } x \leq 0 \end{cases}

特点:

  • 是 Leaky ReLU 的扩展版本, 斜率 α 是可学习的参数

  • 提高模型的灵活性和表现力。

(六)ELU(Exponential Linear Unit)

公式

f(x) = \begin{cases} x & \text{if } x > 0 \\ \alpha (e^x - 1) & \text{if } x \leq 0 \end{cases}

(α>0,  通常为 1)

特点:

  • 输出范围:(−α,+∞)。

  • 优点:缓解梯度消失问题;负输出使均值更接近 0。

(七)Softmax

公式

f_i(x) = \frac{e^{x_i}}{\sum_{j=1}^n e^{x_j}}

特点:

  • 用于多分类问题的输出层。

  • 将输出归一化为概率分布

(八)Swish

公式

f(x) = x \cdot \sigma(x) = x \cdot \frac{1}{1 + e^{-x}}

特点:

  • 输出范围:(−∞,+∞)。

  • 优点:平滑,可微;在某些任务中表现优于 ReLU。

  • 缺点:计算稍复杂。

(九)GELU(Gaussian Error Linear Unit)

公式

f(x)=x\cdot \Phi (x)

Φ(x) 为标准正态分布的累积分布函数

特点:

  • Swish 的一种改进。

  • 常用于自然语言处理中的 Transformer 模型。

常用激活函数总结

隐藏层:常用 ReLU 或其变体(Leaky ReLU、PReLU、ELU)。

  • 简单网络:可以尝试 ReLU 或 Leaky ReLU。

  • 深度网络:推荐 Swish、GELU 或 ELU。

输出层

  • 二分类问题:Sigmoid。

  • 多分类问题:Softmax。

  • 回归问题:线性激活函数(或不使用激活函数)。

#  若文章对大噶有帮助的话,点个赞支持一下叭!

Logo

技术共进,成长同行——讯飞AI开发者社区

更多推荐