詳細解釋
GELU(Gaussian Error Linear Unit)是平滑的非線性激活函數,結合了ReLU的門控特性與隨機正則化思想,是Transformer架構 (變換器 / 注意力模型) (Switch Transformer)架構的標準激活函數。
數學定義:
- GELU(x) = x · Φ(x)
- Φ(x)是標準高斯分布的累積分布函數(CDF)
- 近似:0.5x(1 + tanh[√(2/π)(x + 0.044715x³)])
- 也可近似為:x · sigmoid(1.702x)
直觀理解:
- 隨機門控:以概率Φ(x)保留輸入
- ReLU的平滑版:
- 負值:小但非零(不同於ReLU的嚴格0)
- 正值:接近x但略小
- 自適應:根據輸入大小調整
與ReLU的比較:
- ReLU:硬閾值(0或x)
- GELU:軟閾值(平滑過渡)
- 優勢:
- 處處可微
- 負區域有梯度(緩解dying ReLU)
- 性能通常優於ReLU
應用:
- Transformer:BERT、GPT、T5等的標準激活
- 現代NLP:大型語言模型的首選
- 部分視覺模型:ConvNeXt等
- 替代ReLU:在新架構中越來越流行
歷史:
- 2016年:Hendrycks & Gimpel提出
- 基於Dropout的隨機性啟發
- 2018年:BERT採用,開始流行
- 2020年:GPT-3使用,成為標準
計算:
- 比ReLU慢:需要計算erf或近似
- 近似方法:tanh或sigmoid近似
- 優化:框架提供高效實現
- 成本:通常<10%額外開銷
與其他平滑激活:
- ELU:指數線性單元
- Swish:x · sigmoid(x),類似GELU
- Mish:x · tanh(softplus(x))
- GELU在NLP中最成功
為何Transformer使用GELU:
- 自注意力:需要平滑激活
- 大模型:GELU在深度網絡中更穩定
- 經驗:實證效果更好
GELU是現代NLP和Transformer的標準激活函數。