跳至主要内容
课程笔记约 7 分钟

激活函数演进史:从 Sigmoid 到 SwiGLU

沿着 Sigmoid、Tanh、ReLU、SiLU、GeLU 到 SwiGLU,理解激活函数如何围绕梯度传播与门控机制演进。

#激活函数#深度学习#SwiGLU#神经网络
本文目录
  1. 一、演进时间线
  2. 二、Sigmoid — 开山鼻祖
  3. 优点
  4. 致命缺陷:梯度消失
  5. 三、Tanh — 零中心化改良
  6. 相比 Sigmoid 的改进
  7. 仍然存在的问题
  8. 四、ReLU — 简单粗暴的颠覆者
  9. 三大优势
  10. 致命缺陷:神经元死亡
  11. 五、SiLU (Swish) — 门控初现
  12. 门控机制详解
  13. 相比 ReLU 的改进
  14. 六、GeLU — 高斯门控
  15. 什么是 Φ(x)?
  16. 七、SwiGLU — 大模型时代的标配
  17. 传统 FFN vs SwiGLU FFN
  18. 八、总结对比
  19. 演进逻辑一句话总结

Sigmoid → Tanh → ReLU → SiLU/GeLU → SwiGLU | 一条完整的技术迭代路线

一、演进时间线

激活函数的迭代不是随机替换,而是被一个核心矛盾驱动:梯度消失。每一次换代,都在试图让梯度在深层网络中更好地传播。

图 0:激活函数演进时间线

Sigmoid、Tanh、ReLU、GeLU、SiLU 与 SwiGLU 的演进时间线

图 1:五大激活函数曲线对比(GeLU 用虚线表示,与 SiLU 高度重合)

Sigmoid、Tanh、ReLU、SiLU 与 GeLU 的函数曲线对比

二、Sigmoid — 开山鼻祖

沿着时间线,先从最早的 Sigmoid 说起。

σ(x)=11+ex\sigma(x) = \frac{1}{1 + e^{-x}}  取值范围:(0, 1)

Sigmoid 最早由比利时数学家 Pierre-François Verhulst 于 1838 年提出(最初用于人口增长模型),1986 年被广泛用于神经网络反向传播中作为激活函数。

优点

二分类友好 输出值域 (0, 1),天然适合概率输出。

易于求导 导数 = σ(x) × (1 − σ(x)),可以用自身表示,实现简洁。

σ(x)=σ(x)(1σ(x))\sigma'(x) = \sigma(x) \cdot (1 - \sigma(x))  最大值仅为 0.25

致命缺陷:梯度消失

导数最大值仅 0.25。在浅层网络时代问题不大,但随着网络加深,反向传播时每层都乘以一个 ≤ 0.25 的系数,梯度经过多层连乘后指数级衰减,导致深层网络几乎无法训练。

图 2:各激活函数导数对比 — 红色虚线标出了 Sigmoid 导数的上限 0.25

各激活函数导数曲线对比,标出 Sigmoid 导数上限 0.25

三、Tanh — 零中心化改良

tanh(x)=exexex+ex\tanh(x) = \frac{e^x - e^{-x}}{e^x + e^{-x}}  取值范围:(−1, 1)

Tanh 可以理解为以零为中心的 Sigmoid。取值范围从 (0, 1) 变为 (−1, 1),中心点正好在 0。

相比 Sigmoid 的改进

零中心化 输出有正有负,避免了 Sigmoid 输出恒为正导致的梯度更新”zigzag”问题,训练更稳定。

导数更大 导数最大值达到 1.0(Sigmoid 仅 0.25),大幅减缓了浅层网络的梯度消失。

tanh(x)=1tanh2(x)\tanh'(x) = 1 - \tanh^2(x)  最大值 = 1.0

仍然存在的问题

虽然导数最大值提升到了 1,但仅在 x=0 附近达到峰值,两侧迅速衰减。当网络层数超过几十层时,多层梯度连乘后数值依然指数级衰减,梯度消失问题并未根除。Tanh 曾是早期 CNN、RNN、LSTM 的首选,但终被 ReLU 取代。

四、ReLU — 简单粗暴的颠覆者

ReLU(x)=max(0,x)\text{ReLU}(x) = \max(0, x)  x > 0 原样输出,x ≤ 0 置零

ReLU 的雏形在 1969 年就已出现,但早期并未受到重视。直到 2012 年 AlexNet 将 ReLU 用作卷积网络激活函数,几乎彻底解决了激活函数导致的深层网络梯度消失问题,训练速度远超 Sigmoid 和 Tanh,从此成为深度学习的标配。

三大优势

梯度不衰减 当输入为正时,导数恒为 1,反向传播中梯度永远不会衰减,基本解决了梯度消失。

计算极快 只需一个 max 运算,远比 Sigmoid/Tanh 的指数运算快,大幅降低算力消耗。

网络稀疏性 负输入直接置零,使网络自然产生稀疏激活,有正则化效果。

致命缺陷:神经元死亡

五、SiLU (Swish) — 门控初现

ReLU 的硬截断问题,引出了下一代思路:给激活加上”门控”。

SiLU(x)=xσ(x)\text{SiLU}(x) = x \cdot \sigma(x)  即 x × Sigmoid(x)

SiLU 是 Swish 函数的一个特例(β=1 时),可以看作 Sigmoid 和 ReLU 的结合体:用 Sigmoid 作为门控函数,既保留了 ReLU 的正向线性特性,又在负数区间用平滑曲线替代了硬截断。

门控机制详解

所谓”门控”,就是输入 x 在激活时会先乘以 Sigmoid(x),Sigmoid 充当一个开关,控制信息通过的比例:

图 3:SiLU 门控机制 — 灰色虚线为输入 x,粉色为门控信号 σ(x),绿色为最终输出 x·σ(x)

SiLU 中输入、Sigmoid 门控信号与最终输出的关系

x = 3 时

σ(3) ≈ 0.95 输出 = 3 × 0.95 = 2.85 相比输入 3,信息丢失极少

x = −3 时

σ(−3) ≈ 0.05 输出 = −3 × 0.05 = −0.15 保留了少量负值信息,而非直接置零

相比 ReLU 的改进

解决神经元死亡 负区间不再是硬截断,而是保留少量梯度信息,神经元不会永久失活。

全程可导 不像 ReLU 在 x=0 处不可导,优化更平滑。

YOLO 全系列 YOLO 模型在很多代中均使用 SiLU 作为激活函数。

六、GeLU — 高斯门控

GeLU(x)=xΦ(x)\text{GeLU}(x) = x \cdot \Phi(x)  其中 Φ(x) 为标准正态分布的累积分布函数(CDF)

GeLU 与 SiLU 思路类似,但门控函数从 Sigmoid 换成了标准正态分布的累积分布函数 Φ(x)

什么是 Φ(x)?

Φ(x) 就是标准正态分布曲线从负无穷到 x 点下方的面积。比如 x=0 时,Φ(0) = 0.5(左半边面积占 50%)。Φ(x) 取值范围 (0, 1),同样起到门控作用:输入越大,Φ(x) 越接近 1(全量通过);输入越小,Φ(x) 越接近 0(几乎截止)。

GeLU 的图像与 SiLU 非常相似(见图 1 中的紫色虚线),但在负区间内保留的信息略少一些。GeLU 被早期 BERT 和 GPT 广泛采用。

七、SwiGLU — 大模型时代的标配

无论是 LLaMA、Qwen 还是 DeepSeek,当今主流大模型全面选择了 SwiGLU。它与前面的激活函数有本质区别:不是简单的输入一个数、输出一个数,而是对 Transformer FFN 层的结构性改造

SwiGLU(x)=SiLU(xWg)(xWv)再经 Wo 降维\text{SwiGLU}(x) = \text{SiLU}(xW_g) \otimes (xW_v) \rightarrow \text{再经}\ W_o\ \text{降维}

传统 FFN vs SwiGLU FFN

图 4:传统 FFN(左)vs SwiGLU FFN(右)架构对比

传统 Transformer FFN 与 SwiGLU 双分支门控架构对比

传统 FFN 的工作方式:输入 → 线性层 W₁ 升维 → ReLU/GeLU 激活 → 线性层 W₂ 降维 → 输出。每个特征自己决定要不要保留,特征之间没有交互。

SwiGLU 的双分支门控:SwiGLU 将升维层拆成两条并行分支,分别乘以不同的参数矩阵:

门控分支 Wg

先经过 SiLU 激活,充当”门控开关”,决定特征的重要性权重。

内容分支 Wv

直接线性变换,生成内容特征。两条分支逐元素相乘后再降维。

举个例子:如果内容分支某位置输出了 10(强特征),但门控分支只给 0.1,相乘后只剩 1——模型发现了这个特征,但门控认为它不重要,主动抑制了它。

参数量:传统 FFN 用 2 个权重矩阵,SwiGLU 用 3 个。为保持参数量持平,LLaMA 等模型将中间维度从 4d 压缩到约 8d/3 ≈ 2.67d。

八、总结对比

最后把六代激活函数放进一张表里对比:

激活函数公式导数最大值核心优点核心缺陷代表应用
Sigmoid11+ex\frac{1}{1+e^{-x}}0.25输出概率、易求导梯度消失严重、非零中心早期 BP 网络
Tanhtanh(x)\tanh(x)1.0零中心化、导数更大深层仍梯度消失RNN / LSTM
ReLUmax(0,x)\max(0, x)1.0(正区间)梯度不衰减、计算极快神经元死亡、负信息丢失AlexNet / CNN
SiLUxσ(x)x \cdot \sigma(x)≈1.1平滑负区间、全程可导计算略复杂于 ReLUYOLO 系列
GeLUxΦ(x)x \cdot \Phi(x)≈1.1高斯门控、理论优雅需计算 erf,成本略高BERT / GPT
SwiGLUSiLU(Wgx)Wvx\text{SiLU}(W_g x) \otimes W_v x双分支门控、乘法交互多一个权重矩阵LLaMA / Qwen / DeepSeek

演进逻辑一句话总结

(注:部分内容可能由 AI 生成)