背景

GELU(Gaussian Error Linear Unit)是一种针对深度学习模型设计的激活函数,首次在2016年的论文《Gaussian Error Linear Units (GELUs)》中提出。它的设计动机是结合随机正则化的思想(如Dropout),通过输入值的概率分布动态调整激活强度。GELU在Transformer系列模型(如BERT、GPT)中被广泛使用,逐渐取代了ReLU和ELU等传统激活函数。

原理

GELU的数学定义基于输入与标准正态分布的累积分布函数(对概率密度求积分,也就是)的乘积:

其中:

  • :标准正态分布的累积分布函数
  • :误差函数(Error Function),定义为

近似公式

由于的计算成本较高,研究者提出了以下近似形式:

  1. Tanh近似​(计算速度快,精度略低):
  1. Sigmoid近似​(平衡精度与速度):

其中是Sigmoid函数。

优点和缺点

优点

  • 平滑性
    • 相比ReLU在处的不可导性,GELU处处可导,其输出通过高斯分布的累积分布函数平滑过渡,梯度更稳定,尤其适合深层网络训练。
  • 自适应非线性
    • 结合了输入的概率分布特性(通过乘以输入的累积概率),GELU能够根据输入动态调整激活强度,平衡线性和非线性行为,增强模型表达能力。
  • 减少了死亡ReLU问题
    • 由于GELU对负值也有响应(虽然较小),因此它减少了死亡RELU的发生。
  • 实践表现优异
    • 在自然语言处理(NLP)和计算机视觉(CV)任务中,GELU常优于ReLU、ELU等激活函数,尤其在预训练大模型中(如BERT、GPT)显著提升模型性能。

缺点

  • 计算成本高
    • 精确计算需要较高算力,尽管近似式缓解了这一问题。
  • 近似误差
    • 近似公式会引入微小误差,可能影响模型收敛稳定性。
  • 理论解释不足
    • GELU的设计依赖启发式方法,缺乏严格的数学理论支撑,其成功原因更多归因于实践效果而非理论推导。