Activation Function
分类: 深度学习基础
Activation Function
定义
激活函数是神经网络中引入非线性的关键组件,作用于每个神经元的线性变换输出 ,产生非线性响应 。没有激活函数,多层网络等价于单层线性变换,无法拟合复杂函数。
常见激活函数
| 函数 | 公式 | 特点 |
|---|---|---|
| ReLU | 简单高效,但有 dying neuron 问题 | |
| GELU | Transformer 标配,平滑近似 ReLU | |
| SiLU/Swish | 自门控,LLaMA 等模型采用 | |
| Sigmoid | 输出 (0,1),梯度饱和问题严重 | |
| Tanh | 输出 (-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)