06 · Gaussian Error Linear Units (GELU)

激活函数 Hendrycks & Gimpel 2016
Hendrycks & Gimpel · arXiv:1606.08415

迭代了什么

上一代的问题:ReLU 负半轴一刀切为零,硬门控决策缺乏概率统计动机。

这代改了什么:按数值大小概率性保留(x·Φ(x)),统一激活函数与随机正则化。

效果:BERT、GPT、ViT、T5 等所有基于 Transformer 的预训练模型 FFN 层默认激活。

一、解决的问题

ReLU 做硬门控决策——正数通过,负数截断为零。这种离散决策缺乏概率统计动机。同时 Dropout 等随机正则化器与激活函数始终是分离的,两者各自独立地在网络中使用,从未在理论上被统一。

二、核心思想

将非线性激活与随机正则化统一在一个概率框架下:神经元的输入 x 被一个依赖输入值的随机掩码 m ~ Bernoulli(Φ(x)) 相乘,其中 Φ(x) 是标准正态分布的累积分布函数(CDF)。这一随机过程的期望值即为 GELU。

三、核心公式

3.1 精确形式

GELU(x) = x · Φ(x) = x · (1/2)[1 + erf(x/√2)]

其中 erf 是高斯误差函数。这一形式来自标准正态分布 CDF 与 erf 的关系:Φ(x) = (1/2)[1 + erf(x/√2)]。

3.2 常用近似(tanh 版本)

GELU(x) ≈ 0.5x (1 + tanh[√(2/π)(x + 0.044715x³)])

当方差 σ 较小时,此近似绝对误差不超过 0.005,满足大多数训练场景。

3.3 更快近似

GELU(x) ≈ x · σ(1.702x)

sigmoid 近似,计算速度最快,但精度略低于 tanh 版本。

四、与 ReLU 的关键区别

五、实际影响

GELU 是 Transformer FFN 层的默认激活函数。BERT、GPT 系列、ViT、T5、RoBERTa 等几乎所有基于 Transformer 的预训练模型都使用 GELU。在大量实验中,GELU 在绝大多数 NLP 和 CV 任务上一致优于 ReLU 和 ELU,且对学习率和初始化不敏感。