激活函数
应用于神经网络中每个神经元输出的非线性函数,使模型能够学习超越线性变换的复杂模式。
激活函数是应用于神经元线性输出 z = Wx + b 的非线性变换。如果没有激活函数,多层网络将退化为单一线性变换,无法解决非线性问题。激活函数的选择直接影响训练速度和最终精度。
在计算机视觉领域,ReLU 是隐藏层的事实标准。其定义为 f(x) = max(0, x),正值原样通过,负值归零。与 sigmoid 和 tanh 相比,ReLU 避免了梯度饱和问题,且计算开销低。
- ReLU:
f(x) = max(0, x)。计算快速且梯度友好,但仅接收负输入的神经元会永久产生零梯度(死亡 ReLU 问题) - Leaky ReLU:
f(x) = max(0.01x, x)。为负值区域保留小斜率,防止神经元死亡,同时保持计算简洁 - GELU: Transformer 中使用的平滑激活函数,近似为 x 乘以标准正态分布的累积分布函数。在 BERT 和 Vision Transformer 中广泛使用
- Softmax: 输出层函数,生成跨类别的概率分布,是多类别图像分类不可或缺的组件
在超分辨率和图像生成中,输出层使用 tanh(范围 -1 到 1)或 sigmoid(范围 0 到 1)来约束像素值。基本原则是:隐藏层使用 ReLU 变体,输出层根据任务选择相应函数。