激活函数是人工神经网络中的一个关键组件,负责引入非线性,从而使神经网络能够学习和表示复杂的非线性关系。没有激活函数,神经网络中的所有计算都是线性变换,而线性模型的表达能力有限,无法处理复杂的任务。
激活函数的作用
-
引入非线性:通过将线性输入映射到非线性输出,使神经网络具备表示复杂函数的能力。
-
控制输出范围:激活函数常将输出限制在某个范围内,如 [0,1] ,有助于稳定训练过程。
-
提供梯度信息:激活函数对输入的导数用于反向传播,通过调整参数来优化网络性能。
常见激活函数
(一)ReLU(Rectified Linear Unit)
公式:
特点:
-
输出范围:[0,+∞)
-
优点:计算简单,高效;缓解了梯度消失问题。
-
缺点:可能导致"神经元死亡"(Dead Neurons)问题,尤其是输入为负时。即当权重更新导致某些神经元输出恒为0时,这些神经元可能永远不被激活。
(二)Sigmoid
公式:
特点:
-
输出范围:(0,1)
-
非线性且平滑,对输入做"压缩",将其映射到 (0,1)区间。
特点:
-
输出范围:(0,1)(0, 1)(0,1)
-
常用于二分类问题的输出层。
-
优点:平滑,可解释为概率。
-
缺点:梯度在接近 0 和 1 时趋近于 0(梯度消失问题)。
(三)Tanh(Hyperbolic Tangent)
公式:
特点:
-
输出范围:(−1,1)(-1, 1)(−1,1)。
-
优点:输出均值接近 0,适合深层网络的梯度传播。
-
缺点:和 Sigmoid 一样,容易出现梯度消失问题。
(四)LReLU(Leaky ReLU)
公式:
特点:
- 输出范围:[ -∞, +∞ )。
- 优点:解决了 ReLU 的"神经元死亡"问题。
- 缺点:引入了一个额外的超参数 α ,默认为 0.1。
**(五)**PReLU(Parametric ReLU)
公式:
特点:
-
是 Leaky ReLU 的扩展版本, 但斜率 α 是可学习的参数。
-
提高模型的灵活性和表现力。
**(六)**ELU(Exponential Linear Unit)
公式:
(α>0, 通常为 1)
特点:
-
输出范围:(−α,+∞)。
-
优点:缓解梯度消失问题;负输出使均值更接近 0。
**(七)**Softmax
公式:
特点:
-
用于多分类问题的输出层。
-
将输出归一化为概率分布。
**(八)**Swish
公式:
特点:
-
输出范围:(−∞,+∞)。
-
优点:平滑,可微;在某些任务中表现优于 ReLU。
-
缺点:计算稍复杂。
(九)GELU(Gaussian Error Linear Unit)
公式:
Φ(x) 为标准正态分布的累积分布函数
特点:
-
Swish 的一种改进。
-
常用于自然语言处理中的 Transformer 模型。
常用激活函数总结
隐藏层:常用 ReLU 或其变体(Leaky ReLU、PReLU、ELU)。
-
简单网络:可以尝试 ReLU 或 Leaky ReLU。
-
深度网络:推荐 Swish、GELU 或 ELU。
输出层:
-
二分类问题:Sigmoid。
-
多分类问题:Softmax。
-
回归问题:线性激活函数(或不使用激活函数)。
# 若文章对大噶有帮助的话,点个赞支持一下叭!