Learn how the Gaussian Error Linear Unit (GELU) improves deep learning. Discover its role in Transformers, BERT, and LLMs to enhance neural network performance.
高斯误差线性单元(GELU)是一种精密的激活函数,在现代人工智能(AI)系统的性能中发挥着关键作用,尤其适用于基于Transformer 系统。与传统函数对神经元输入施加刚性确定性阈值不同,GELU借鉴高斯分布特性引入了概率维度。 通过根据输入数值大小进行加权而非简单门控,GELU提供了更平滑的非线性特性,有助于深度学习(DL)模型的优化。这一独特特性使神经网络能更有效地建模复杂数据模式,为大型基础模型的成功做出了重要贡献。
在任何神经网络的核心,激活函数根据输入信号决定神经元是否"触发"。早期函数如整流线性单元(ReLU)如同开关运作:对负输入输出零值,对正输入则输出输入值本身。尽管高效,这种陡峭的截断特性可能阻碍训练动态。
GELU通过将输入值按高斯分布的累积分布函数进行缩放来改进这一特性。 直观而言,这意味着当输入值降低时,神经元失活的概率随之增加,但 这种变化是渐进而非突变的。这种曲率构成了平滑的非单调函数, 在所有点上均可微分。这种平滑性有助于优化 梯度的反向传播,从而缓解 诸如梯度消失问题等障碍, 这类问题可能导致深度网络训练停滞。
GELU提供的更平滑优化环境使其成为机器学习(ML)领域部分最先进应用的默认选择。
要理解GELU,通常需要将其与Ultralytics 中其他常见的激活函数区分开来。
使用现代深度学习库(如PyTorch)实现GELU非常简单。 PyTorch。以下示例 演示了如何将该函数应用于输入数据tensor 。
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等优化激活函数)的模型训练,并能高效将模型部署至云端或边缘设备。