欢迎光临
我们一直在努力

GELU,Swish, and SwiGLU

这三个概念代表了深度学习中激活函数及前馈网络(FFN)架构的演进,尤其是在 Transformer 和大语言模型(LLM)的发展历程中,它们逐步取代了传统的 ReLU。

我们按照它们的发展脉络来逐一拆解。

1. GELU (Gaussian Error Linear Unit)

在 BERT 和 GPT-2 时代,GELU 几乎成为了 Transformer 模型的标配。

核心思想:

传统的 ReLU 激活函数非常“一刀切”:大于 0 的直接放行,小于 0 的直接置为 0。GELU 的创新在于它结合了 ReLU、Dropout 和 Zoneout 的特性。它不是通过直接的阈值来截断,而是通过高斯分布的累积概率来对输入进行“软门控”(Soft Gating)。

数学公式:

$$\\text{GELU}(x) = x \\Phi(x)$$

其中 $\\Phi(x)$ 是标准正态分布的累积分布函数。因为这个函数计算起来比较复杂,实际应用中通常使用以下近似公式:

$$\\text{GELU}(x) \\approx 0.5x \\left(1 + \\tanh\\left(\\sqrt{\\frac{2}{\\pi}} (x + 0.044715 x^3)\\right)\\right)$$

为什么 GELU 更好?

  • 非单调性与微小负值: 在 $x$ 略微小于 0 的区域,GELU 会给出一个微小的负值,而不是像 ReLU 那样直接变成 0。这保留了微弱的负向梯度,有效缓解了“神经元死亡”问题。

  • 曲面平滑: 它的导数是连续平滑的,这使得模型在训练时的损失地形(Loss Landscape)更加平滑,有助于梯度下降算法找到更好的局部最优解。

2. Swish (及 SiLU)

Swish 是由 Google Brain 通过神经架构搜索(NAS)发现的一种激活函数,在 EfficientNet 等视觉模型中大放异彩。

数学公式:

$$\\text{Swish}(x) = x \\cdot \\sigma(\\beta x)$$

其中 $\\sigma$ 是 Sigmoid 函数,$\\beta$ 是一个可以固定(通常设为 1)或由模型学习的参数。当 $\\beta = 1$ 时,Swish 也被称为 SiLU (Sigmoid Linear Unit)。

Swish 的特点:

  • 自门控(Self-Gating): Swish 将输入 $x$ 与其自身的 Sigmoid 函数值相乘。你可以理解为它在利用输入本身来决定“这个信号有多大比例应该被传递下去”。

  • 形态类似 GELU,但计算更简洁: 它的函数图像与 GELU 非常相似(都有下界无上界、平滑、在负半轴非单调有一点“小肚子”)。但 Swish (SiLU) 在某些硬件上的计算效率比计算 tanh 的 GELU 更高。

3. SwiGLU (Swish-Gated Linear Unit)

SwiGLU 不仅是一个激活函数,更是一种网络层的结构设计。它是目前绝大多数顶尖开源大语言模型(如 LLaMA 1/2/3、PaLM、Qwen)中 FFN(前馈神经网络)层的核心标配。

前置概念:GLU(门控线性单元)

传统的 FFN 是这样工作的:把输入 $x$ 乘上一个权重矩阵,过一个激活函数,再乘一个权重矩阵。

而 GLU 的思想是:把输入 $x$ 分别乘上两个不同的权重矩阵,形成两条路径。一条路径过激活函数(作为“门阀”),然后去和另一条路径做逐元素相乘(Element-wise multiplication)。

SwiGLU 的公式:

将 GLU 中的激活函数替换为 Swish(通常是 $\\beta=1$ 的 SiLU),就得到了 SwiGLU:

$$\\text{SwiGLU}(x, W, V) = \\text{Swish}(xW) \\otimes (xV)$$

(注:这里省略了偏置项,$\\otimes$ 表示逐元素相乘,W 和 V 是两个不同的权重矩阵)

为什么 SwiGLU 能统治大模型?

  • 极强的表达能力: SwiGLU 引入了额外的权重矩阵(原本的 FFN 是两个矩阵,SwiGLU 是三个),通过门控机制,模型能够更加精细地控制信息的流动与特征的交叉。

  • 性能收益大于计算成本: 虽然多了一个矩阵乘法,但研究证明,在保持整体参数量严格对齐(通过缩小隐藏层维度)的前提下,基于 SwiGLU 的网络在困惑度(Perplexity)和收敛速度上显著优于传统的 ReLU 或 GELU FFN。

总结与对比

名称 性质 核心特点 典型代表模型
GELU 激活函数 基于正态分布概率门控,平滑非单调 BERT, GPT-2, GPT-3, ViT
Swish (SiLU) 激活函数 自门控,形态似GELU,计算更简洁 EfficientNet, YOLOv5
SwiGLU FFN 架构 门控线性单元 + Swish,表达能力极强 LLaMA系列, PaLM, Qwen

赞(0)
未经允许不得转载:171主机测评 » GELU,Swish, and SwiGLU
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址