GELU (Gaussian Error Linear Unit)
探索高斯误差线性单元 (GELU) 激活函数。了解其平滑的概率非线性如何驱动 Transformer、BERT 和现代 AI。
高斯误差线性单元 (GELU) 是一种先进的激活函数,在现代人工智能 (AI) 系统(特别是基于 Transformer 架构的系统)的性能中发挥着关键作用。与对神经元输入应用刚性确定性阈值的传统函数不同,GELU 引入了受高斯分布属性启发的概率特性。通过根据输入的大小进行加权而非简单地进行门控,GELU 提供了一种更平滑的非线性,有助于优化深度学习 (DL) 模型。这种独特的特性使网络能够更有效地建模复杂的数据模式,从而为海量基础模型的成功做出了重大贡献。
Link to this sectionGELU 的工作原理#
在任何神经网络的核心中,激活函数都会根据输入信号决定神经元是否“激活”。诸如线性整流单元 (ReLU) 等较早的函数就像开关一样工作,对于任何负输入输出零,对于正值则输出输入本身。虽然效率很高,但这种剧烈的截断可能会阻碍训练动态。
GELU 通过高斯分布的累积分布函数对输入进行缩放,从而对此进行了改进。直观地说,这意味着随着输入值的减小,神经元丢弃的概率增加,但这是一个逐渐而非突然的过程。这种曲率创建了一个平滑的、在所有点上都可微分的非单调函数。这种平滑性促进了梯度的更好反向传播,有助于缓解可能阻碍深层网络训练的梯度消失问题。
Link to this section实际应用#
GELU 提供的更平滑的优化环境使其成为机器学习 (ML) 中一些最先进应用的首选。
- 大语言模型 (LLM): 随着谷歌研究人员引入 BERT (来自 Transformer 的双向编码器表示),GELU 开始崭露头角。它现在是 GPT 系列 和其他生成式文本模型的标准组件。在文本摘要或情感分析等任务中,GELU 帮助模型捕捉到刚性激活可能遗漏的语言表示中的微妙细微差别。
- 视觉 Transformer (ViT): 在计算机视觉领域,将 Transformer 架构应用于图像分类的模型非常依赖 GELU。通过将图像处理为补丁序列,这些模型使用 GELU 在深层中保持丰富的特征信息,从而在 ImageNet 等基准测试中实现高精度。
Link to this section与相关术语的比较#
理解 GELU 通常需要将其与 Ultralytics 术语表中提到的其他流行激活函数进行区分。
- GELU 与 ReLU 的比较: ReLU 在计算上更简单,并产生稀疏性(精确的零),这可能很有效。然而,零处的“尖角”可能会减慢收敛速度。GELU 提供了一种平滑的近似值,通常在复杂任务中产生更高的精度,尽管计算成本略高。
- GELU 与 SiLU (Swish) 的比较: Sigmoid 线性单元 (SiLU) 在结构上与 GELU 非常相似,并共享其平滑、非单调的属性。虽然 GELU 在自然语言处理 (NLP) 中占主导地位,但 SiLU 由于其在边缘硬件上的效率以及在检测任务中的出色表现,常被用于像 YOLO26 这样高度优化的目标检测器中。
- GELU 与 Leaky ReLU 的比较: Leaky ReLU 试图通过为负输入设置一个较小的恒定线性斜率来解决标准 ReLU 的“神经元死亡”问题。相比之下,GELU 对负值是非线性的,它提供了更复杂和自适应的响应,这通常能使非常深的网络获得更好的表征学习效果。
Link to this section实现示例#
使用 PyTorch 等现代深度学习库可以轻松实现 GELU。以下示例展示了如何将该函数应用于输入数据的张量。
import torch
import torch.nn as nn
# Initialize the GELU activation function
gelu_activation = nn.GELU()
# Create sample input data including negative and positive values
input_data = torch.tensor([-3.0, -1.0, 0.0, 1.0, 3.0])
# Apply GELU to the inputs
output = gelu_activation(input_data)
# Print results to see the smoothing effect on negative values
print(f"Input: {input_data}")
print(f"Output: {output}")对于希望在自己的计算机视觉项目中利用这些高级激活函数的开发者来说,Ultralytics 平台 简化了整个工作流程。它提供了一个统一的界面来标注数据,使用像 YOLO26(利用 SiLU 等优化激活)这样的架构训练模型,并将它们有效地部署到云端或边缘设备上。






