GELU (Gaussian Error Linear Unit)
Gaussian Error Linear Unit (GELU) 活性化関数について解説します。その滑らかで確率的な非線形性がTransformers、BERT、および現代のAIをいかに強化しているか学びましょう。
The Gaussian Error Linear Unit (GELU) is a sophisticated activation function that plays a pivotal role in the performance of modern artificial intelligence (AI) systems, particularly those based on the Transformer architecture. Unlike traditional functions that apply a rigid, deterministic threshold to neuron inputs, GELU introduces a probabilistic aspect inspired by the properties of the Gaussian distribution. By weighing inputs by their magnitude rather than simply gating them, GELU provides a smoother nonlinearity that aids in the optimization of deep learning (DL) models. This unique characteristic allows networks to model complex data patterns more effectively, contributing significantly to the success of massive foundation models.
Link to this sectionGELUの仕組み#
あらゆるニューラルネットワークの核心において、活性化関数は入力信号に基づいてニューロンが「発火」するかどうかを決定します。ReLU (Rectified Linear Unit) のような古い関数はスイッチのように機能し、負の入力に対してはゼロを、正の値に対しては入力そのものを出力します。効率的ではありますが、この鋭いカットオフは学習のダイナミクスを阻害する可能性があります。
GELUは、入力をガウス分布の累積分布関数でスケーリングすることにより、これを改善しています。直感的に言えば、入力値が減少するにつれてニューロンがドロップアウトする確率が高まりますが、それは突然ではなく段階的に起こります。この曲率は、すべての点で微分可能な滑らかで非単調な関数を生み出します。この滑らかさは勾配の逆伝播を容易にし、深層ネットワークの学習を停滞させる可能性のある勾配消失問題のような課題を緩和するのに役立ちます。
Link to this section実社会での応用#
GELUが提供するより滑らかな最適化環境により、GELUは機械学習 (ML) における最も高度なアプリケーションのいくつかでデフォルトの選択肢となっています。
- 大規模言語モデル (LLM): GELUは、Googleの研究者によるBERT (Bidirectional Encoder Representations from Transformers) の導入により注目を集めました。現在では、GPTシリーズやその他の生成テキストモデルにおける標準的な構成要素となっています。テキスト要約や感情分析などのタスクにおいて、GELUは、厳格な活性化関数では見落とされがちな言語表現の微妙なニュアンスをモデルが捉えるのを助けます。
- Vision Transformers (ViT): コンピュータビジョンの領域では、Transformerアーキテクチャを画像分類に適応させるモデルがGELUに大きく依存しています。これらのモデルは画像をパッチのシーケンスとして処理することで、GELUを使用して深層全体にわたって豊かな特徴情報を維持し、ImageNetのようなベンチマークで高い精度を実現しています。
Link to this section関連用語との比較#
GELUを理解するには、Ultralytics用語集にある他の一般的な活性化関数と区別することが重要です。
- GELU vs. ReLU: ReLUは計算的に単純であり、スパース性(厳密なゼロ)を作り出すため効率的になる場合があります。しかし、ゼロにおける「鋭い角」が収束を遅らせる可能性があります。GELUは滑らかな近似を提供し、計算コストはわずかに高くなりますが、複雑なタスクにおいて通常より高い精度をもたらします。
- GELU vs. SiLU (Swish): Sigmoid Linear Unit (SiLU) は構造的にGELUと非常に似ており、その滑らかで非単調な特性を共有しています。GELUは自然言語処理 (NLP) で主流ですが、SiLUはエッジハードウェアでの効率性と検出タスクにおける優れた性能から、YOLO26 のような高度に最適化された物体検出器で好まれることがよくあります。
- GELU vs. Leaky ReLU: Leaky ReLUは、負の入力に対して小さな一定の線形傾斜を許容することで、標準的なReLUの「死んだニューロン」問題の解決を試みます。対照的に、GELUは負の値に対して非線形であり、より複雑で適応的な応答を提供するため、非常に深いネットワークにおいてより良い表現学習につながることがよくあります。
Link to this section実装例#
GELUの実装は、PyTorch のような現代の深層学習ライブラリを使用すれば簡単です。以下の例は、入力データのテンソルに関数を適用する方法を示しています。
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 Platform はワークフロー全体を簡素化します。これは、データのラベル付け、(SiLUのような最適化された活性化関数を利用する) YOLO26のようなアーキテクチャを使用したモデルのトレーニング、そしてクラウドやエッジデバイスへの効率的なデプロイを行うための統合インターフェースを提供します。






