
激活函数在网络中起到了至关重要的作用,它们通过引入非线性,使得网络能够学习并理解复杂的关系和模式。
常用的激活函数
以下将详细介绍一些广泛使用的激活函数及其特性和适用场景。
Sigmoid 函数(Logistic)
Sigmoid 函数具有 S 形曲线特性,能够将任何实数值映 0 和 1 之间。
其公式为:sigma(x) = 1/(1 + e^(-x))。
优势:适用于二元分类模型的输出层,能将输入值压缩到所需的范围,便于进行二元决策。
缺点:对于极端输入值,其输出可能饱和,导致在深度网络的反向传播过程现“梯度消失”问题。
双曲正切函数(tanh)
双曲正切函数是双曲正弦函数的重新缩放版本,它将实数值映 -1 和 1 之间。
其公式为:tanh(x) = (e^(2x)— 1)/(e^(2x) + 1)。
优点:tanh函数具有零均值的优点,这有助于加快梯度下降的收敛速度。
缺点:同样存在梯度消失的问题,对于非常大或非常小的输入,其梯度都会变得很小。
整流线性单元(ReLU)
ReLU 是人工网络中使用的一种流行的激活函数。
ReLU 函数定义为:ReLU(x) = max(0, x)。
优势:ReLU 激活简单且计算高效,有助于提高模型的收敛速度。它不会在正区域饱和,有助于缓解梯度消失的问题。
缺点:有时可能会导致“垂死的 ReLU”问题,即某些元可能对所有输入的输出始终为零。
ReLU 的流行变体
Leaky ReLU: 为了解决垂死 ReLU 问题,提出了 Leaky ReLU。其公式为 LeakReLU(x) = max(αx, x),其中 α 是一个小的正常数。
参数化 ReLU (PReLU): PReLU 允许 α 是一个可学习的参数。
指数线性单位(ELU): ELU 是 ReLU 的平滑版本,允许负值并惩罚小梯度。其公式为 ELU(x)=α(e^x — 1),当 x 小于等于 0 时。
Softmax 分类器
Softmax 函数以实数向量为输入,并将其转换为多个类的概率分布。
Softmax 函数对输入向量的每个元素进行幂化,并通过所有幂值的总和对结果进行归一化,从而确保输出向量的总和为 1。
优势:Softmax 函数的输出表示类的概率分布,对于多类任务非常适用。它对输入值的大小敏感,并有助于基于梯度的优化算法训练网络。
