M3-015M3: Deep Learning FoundationsActivation FunctionsMedium
Mastery:

Activation Functions: 为什么 Transformer 用 GELU/SiLU 而不是 ReLU?

📐 Mathematical Definition
GELU(x)=xΦ(x);SiLU(x)=xσ(x)\mathrm{GELU}(x)=x\Phi(x);\quad \mathrm{SiLU}(x)=x\sigma(x)
⚡ Executive Summary
Core Concept: 平滑激活在 0 附近可导、梯度更稳定,且实验上语言建模效果更好。

📌 Key Takeaways

  • •
    平滑 → 二阶可导,利于优化
  • •
    门控 FFN(SwiGLU)需要 SiLU

📐 Mathematical Derivations

四个原因:① <strong>平滑性</strong>——ReLU 在 0 处不可导(次梯度),GELU/SiLU 处处可导(且 GELU 的导数连续);平滑的激活使损失景观更平滑,优化更稳定(尤其配合大学习率与深层网络)。② <strong>负区间的小梯度</strong>——ReLU 在负区间梯度为 0(死亡风险 + 信息丢失);GELU/SiLU 在负区间有非零梯度(SiLU 的导数在负区间最小约 −0.1),保留了一定的负响应能力,无死亡问题。③ <strong>非单调性</strong>——GELU 与 SiLU 在负区间是<strong>非单调</strong>的(在 x≈−0.75/−1.28 处有最小值),这种'先降后升'的形状提供更丰富的非线性(而 ReLU 是单调的)。④ <strong>实验验证</strong>——在语言建模任务上,GELU/SiLU 一致优于 ReLU(BERT 用 GELU、GPT 系列用 GELU、LLaMA 用 SiLU);这一差异在小模型上不明显但在大模型上稳定存在。此外,<strong>门控 FFN(SwiGLU)需要 SiLU 作为门控函数</strong>——这是 LLaMA FFN 的结构要求(见下题)。

🏭 Production Trade-offs

实践要点:① <strong>计算成本对比</strong>——ReLU 最便宜(一次比较);SiLU 需一次 sigmoid(约 4 次浮点运算);GELU 的精确式需 erf(较贵),故实践用 <strong>tanh 近似</strong>:GELU(x)≈0.5x(1+tanh[√(2/π)(x+0.044715x³)]),只多几次乘法与一次 tanh。② <strong>与归一化的配合</strong>——GELU/SiLU 的输出范围无界(与 ReLU 相同),仍需归一化层;但它们对初始化的敏感度略低于 ReLU(因为负区间不截断)。③ <strong>FLOPs 与内存</strong>——GELU/SiLU 的额外计算在总 FLOPs 中占比很小(FFN 的矩阵乘占主导),故性能损失可忽略。④ <strong>其他现代激活</strong>——<strong>Squared ReLU</strong>(视觉模型)、<strong>Mish</strong>、<strong>GeGLU</strong>(GELU 门控版)、<strong>ReGLU</strong>(ReLU 门控版)——实验上门控版本(SwiGLU/GeGLU)普遍优于非门控,而门控函数的差异(SiLU vs GELU vs ReLU)影响较小。⑤ <strong>实践建议</strong>——默认用 GELU(BERT/GPT 生态)或 SiLU(LLaMA 生态);两者差异很小,主要看预训练权重的兼容性(微调时应用与预训练相同的激活)。⑥ <strong>注意</strong>——某些推理框架对特定激活有融合优化(fused GELU/SiLU),改用非标准激活可能失去这些优化。
⚠️ Common Interview Pitfalls
  • ✕
    微调时用与预训练不同的激活(性能下降)
  • ✕
    认为 GELU 的精确式与 tanh 近似有显著差异
🎯 Interviewer Follow-ups
  • ?
    GELU 的 tanh 近似是什么?
  • ?
    为什么 SwiGLU 用 SiLU 而非 GELU?
📚

Associated Knowledge Base Guides & Mindmaps

Explore the comprehensive technical article, exam cards, and global architecture tree.

← PreviousM3-014: Activation Functions: 解释 dying ReLU,以及 LeakyReLU/ELU/GELU 如何缓解。📋Back to BankNext →M3-016: Activation Functions: 什么是门控线性单元(GLU)家族?为什么它们有效。