用語集

GELU(ガウス誤差リニアユニット)

GELU活性化関数がGPT-4のような変圧器モデルをどのように強化し、勾配フロー、安定性、効率を向上させるかをご覧ください。

Ultralytics HUB で
を使ってYOLO モデルをシンプルにトレーニングする。

さらに詳しく

GELU(Gaussian Error Linear Unit)は、現代のニューラルネットワーク、特にトランスフォーマーアーキテクチャで一般的に使用されている活性化関数の一種である。Dan HendrycksとKevin Gimpelが論文「Gaussian Error Linear Units (GELUs)」で提案したもので、ドロップアウト、ゾーンアウト、ReLU(Rectified Linear Unit)の特性を組み合わせて、モデルの性能を向上させることを目的としています。負の値を鋭くカットするReLUとは異なり、GELUは、符号だけでなく大きさに基づいて入力に重み付けを行い、より滑らかな曲線を提供する。

GELUの仕組み

GELU 関数は入力の値に基づいて入力を調節し、効果的にニューロンを「活性化」す るかどうかを決定する。GELU関数は、入力に標準的なガウス累積分布関数(CDF)の値を掛ける。直感的には、これはゼロから遠い入力(正も負も)は保存される可能性が高く、ゼロに近い入力はゼロにされる可能性が高いことを意味する。この確率的アプローチは、ドロップアウトに似た確率的正則化の形式を導入するが、入力値自体によって決定されるため、データのより複雑なパターンを捉えることができる非線形関数につながる。

GELUと他の活性化機能の比較

GELUは単純な活性化関数よりも優れており、最先端のモデルに採用されている:

  • ReLU: ReLUは計算が簡単だが、ニューロンが負の入力に対して不活発になる「死にゆくReLU」問題に悩まされることがあり、学習の妨げになる可能性がある。GELUの滑らかな曲線は、特に負の値に対して勾配をより容易に流すことができ、この問題を軽減できる可能性がある。
  • Leaky ReLU: Leaky ReLUは、負の入力に対して小さな非ゼロの勾配を許容することで、瀕死のReLU問題に対処しているが、負の領域では単純な線形関係を維持している。GELUはより複雑な非線形変換を提供する。
  • SiLU(スウィッシュ): SiLU (Sigmoid Linear Unit)はもう一つの滑らかな活性化関数で、多くの場合GELUと同様の性能を発揮する。GELUとSiLUの選択は、特定のアーキテクチャとデータセットに依存し、経験的テストやハイパーパラメータのチューニングによって決定されることが多い。

用途と意義

GELUは、その強力な経験的性能により、多くの高度な深層学習モデルでよく使われるようになっている:

  1. 自然言語処理(NLP): BERTや GPTモデルのような変換器ベースのモデルで広く使用されており、テキスト生成や 自然言語理解などのタスクでの成功に貢献している。
  2. コンピュータビジョン:GELUはVision Transformers(ViT)やそれに続くビジョンモデルにも見られる。例えば、Ultralytics YOLOv9で使用されているGELAN(Generalized Efficient Layer Aggregation Network)のようなコンポーネントは、YOLOv9の論文で詳述されているように、特徴抽出を強化し、物体検出タスクの精度を向上させるためにGELUを採用しています。

この関数は、滑らかな非線形性を提供し、活性化の決定に入力の大きさを組み込む能力により、ディープネットワークの学習に効果的である。ReLUよりも若干計算量が多いものの、その性能上の利点から、以下のようなフレームワークで利用可能な大規模モデルでの利用が正当化されることが多い。 PyTorchTensorFlow.

すべて読む