ガウス誤差線形ユニット (GELU) 活性化関数を探求しましょう。その滑らかで確率的な非線形性が、Transformer、BERT、および現代のAIをどのように強化するかを学びます。
ガウス誤差線形ユニット (GELU) は、現代の人工知能 (AI)システム、特にTransformerアーキテクチャに基づくシステムの性能において極めて重要な役割を果たす洗練された活性化関数です。ニューロン入力に厳格で決定論的な閾値を適用する従来の関数とは異なり、GELUはガウス分布の特性に触発された確率的側面を導入します。入力を単にゲートするのではなく、その大きさに応じて重み付けすることで、GELUはより滑らかな非線形性を提供し、ディープラーニング (DL)モデルの最適化を助けます。この独自の特性により、ネットワークは複雑なデータパターンをより効果的にモデル化でき、大規模な基盤モデルの成功に大きく貢献しています。
あらゆるニューラルネットワークの核となる活性化関数は、入力信号に基づいてニューロンが「発火」するかどうかを決定します。整流線形ユニット (ReLU)のような古い関数はスイッチのように動作し、負の入力にはゼロを出力し、正の値には入力自体を出力します。効率的ではあるものの、この急峻なカットオフはトレーニングダイナミクスを妨げる可能性があります。
GELUは、ガウス分布の累積分布関数によって入力をスケーリングすることで、これを改善します。直感的には、入力値が減少するにつれてニューロンがドロップアウトする確率が増加しますが、それは突然ではなく徐々に起こります。この湾曲により、すべての点で微分可能な滑らかで非単調な関数が生成されます。この滑らかさは、勾配のより良い逆伝播を促進し、深層ネットワークのトレーニングを停滞させる可能性のある勾配消失問題のような問題を軽減するのに役立ちます。
GELUによって提供されるより滑らかな最適化ランドスケープは、機械学習(ML)における最も高度なアプリケーションの一部でデフォルトの選択肢となっています。
GELUを理解するには、Ultralytics用語集にある他の一般的な活性化関数と区別することがしばしば必要です。
PyTorchのような最新の深層学習ライブラリを使用すれば、GELUの実装は簡単です。以下の例は、入力データの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 Platformはワークフロー全体を簡素化します。データのアノテーション、YOLO26(SiLUのような最適化された活性化関数を利用)のようなアーキテクチャを使用したモデルのトレーニング、そしてクラウドまたはエッジデバイスへの効率的なデプロイのための統合インターフェースを提供します。

未来の機械学習で、新たな一歩を踏み出しましょう。