术语表

GELU(高斯误差线性单位)

了解 GELU 激活函数如何增强 GPT-4 等变压器模型,提高梯度流、稳定性和效率。

使用Ultralytics HUB 对YOLO 模型进行简单培训

了解更多

高斯误差线性单元(Gaussian Error Linear Unit,简称 GELU是一种高性能激活函数,广泛应用于现代神经网络(NN),尤其是变压器模型。GELU 在丹-亨德里克斯DanHendrycks)和凯文-金佩尔(Kevin Gimpel的论文"高斯误差线性单元( GELUs"中提出,它引入了神经元激活的概率方法,不同于ReLU 等函数的确定性。它根据输入量的大小进行加权,而不仅仅是根据符号进行门控,有效地结合了 dropout、zoneout 和 ReLU 的特性。

GELU 如何工作

GELU 通过将输入值乘以应用于该输入的标准高斯累积分布函数 (CDF)的值来确定神经元的输出。这意味着激活是随机的,取决于输入值本身。与锐减负值的 ReLU 不同,GELU 提供了更平滑的曲线。幅度较大的输入值更有可能被保留,而接近零的输入值则更有可能被清零。这种平滑的概率加权允许在反向传播过程中获得更丰富的表征和潜在的更好梯度流,这对训练深度网络至关重要。

与其他激活功能的比较

与其他常见的激活函数相比,GELU 具有鲜明的特点:

  • ReLU(整流线性单元)ReLU 计算简单(正值时输出即输入,反之为零)。GELU 更平滑且不单调(对于负值,它可能随着输入的增加而减少),有时有助于捕捉更复杂的模式。不过,GELU 比 ReLU 的计算量更大。
  • SigmoidTanh这些函数将输入压制在一个固定的范围内(Sigmoid 为 0 至 1,Tanh 为 -1 至 1)。虽然在某些情况下很有用(比如输出层的概率),但它们在深度网络中可能会遇到梯度消失的问题。GELU 和 ReLU 一样,没有上限值,可以缓解正值的问题。
  • SiLU(Sigmoid Linear Unit)/ SwishSiLU 是另一种平滑、非单调的激活函数,它将输入乘以 sigmoid。它与 GELU 在形状和性能上有相似之处,通常被认为是一种接近的替代方法。两者都取得了很好的实证效果。

GELU 的优势

  • 平滑性:与 ReLU 中的尖点相比,它的平滑曲线能带来更好的梯度下降动态效果。
  • 非单调性:允许更复杂的函数近似。
  • 概率解释:以随机方式将输入大小纳入激活决策。
  • 最先进的性能:常用于高性能机型,尤其是变压器。

缺点和考虑因素

  • 计算成本:计算高斯 CDF 比 ReLU 中的简单运算更昂贵。在实践中经常使用高效的近似值。
  • 复杂性:与 ReLU 等较简单的函数相比,从头开始理解和实施的复杂性略高。

应用和意义

由于其强大的经验性能,GELU 已成为许多高级深度学习模型的热门选择:

该函数能够提供平滑的非线性,并将输入大小纳入激活决策,因此在训练深度网络时非常有效。虽然它的计算量比 ReLU 稍大,但它的性能优势往往能证明在大规模模型中使用它是正确的。 PyTorchTensorFlow.您可以使用Ultralytics HUB 等工具探索各种模型并对其进行训练。

阅读全部