Activation Function

分类: 深度学习基础

Activation Function

定义

激活函数是神经网络中引入非线性的关键组件,作用于每个神经元的线性变换输出 z=Wx+bz = Wx + b,产生非线性响应 a=σ(z)a = \sigma(z)。没有激活函数,多层网络等价于单层线性变换,无法拟合复杂函数。

常见激活函数

函数公式特点
ReLUmax(0,x)\max(0, x)简单高效,但有 dying neuron 问题
GELUxΦ(x)x \cdot \Phi(x)Transformer 标配,平滑近似 ReLU
SiLU/Swishxσ(x)x \cdot \sigma(x)自门控,LLaMA 等模型采用
Sigmoid1/(1+ex)1/(1+e^{-x})输出 (0,1),梯度饱和问题严重
Tanh(exex)/(ex+ex)(e^x - e^{-x})/(e^x + e^{-x})输出 (-1,1),零中心但仍有饱和区

核心要点

非线性是深度学习的基石:没有激活函数,任意深的网络仍是线性模型,表达能力等价于单层

ReLU 革命:相比 sigmoid/tanh,ReLU 计算简单且在正半轴无梯度饱和,是深度 CNN 训练成功的关键因素之一

平滑激活函数崛起:GELU(BERT、GPT)和 SiLU(LLaMA、Mistral)等平滑函数在 Transformer 时代表现更优,因为它们在零点附近有非零梯度

与梯度流的关系:饱和型激活函数(sigmoid、tanh)在输入过大或过小时梯度趋近于零,加剧梯度消失问题

选择指南:CV 中 ReLU 仍是默认选择;NLP/LLM 中 GELU 和 SiLU 是主流;生成模型和门控机制中 sigmoid 仍有用武之地

代表工作

Nair & Hinton (2010): Rectified Linear Units Improve Restricted Boltzmann Machines

Hendrycks & Gimpel (2016): Gaussian Error Linear Units (GELUs)

Ramachandran et al. (2017): Searching for Activation Functions (Swish/SiLU)

相关概念

Vanishing Gradient

Computation Graph

MLP 模块

Transformer