モデル・技術

GELUとは?折れ目ではなく曲線——TransformerのFFNがReLUの代わりに選ぶ活性化

読み:ジェル / 英:GELU(Gaussian Error Linear Unit)

更新日: 読了目安:約6分

GELU(Gaussian Error Linear Unit)は、滑らかな曲線で非線形性を与えるニューラルネットワーク活性化関数です。AlexNet世代のReLUが「0で折れる直線」だったのに対し、Transformer世代のBERTGPTはFFN(フィードフォワード層)にGELUを採用する——本記事は厳密な数式より、「なぜ折れ目のない活性化が選ばれたか」に焦点を当てます。

活性化関数の役割

G-160が示すように、活性化関数は非線形性を導入するために使われます。重み付き和だけを層で重ねると、全体として線形変換に近くなり、複雑なパターンを表現できません。

G-203のように、隠れ層から活性化を外すと表現力が落ちます。試験ではReLU、シグモイド、tanh、ソフトマックスなど名前と用途の対応が問われます——GELUはその仲間入りをした比較的新しい選択肢です。

ReLU時代の常識

AlexNet以降、CNNではReLUが標準になりました(TF-384)。

関数長所・短所(試験向け)
ReLU0で折れる計算が単純、勾配消失を緩和しやすい。負の入力は完全に0(G-196
シグモイド/tanhなだらかだが飽和深い層で勾配消失しやすい(G-122
ソフトマックス出力を確率分布に出力層の多クラス分類用。隠れ層の活性化ではない

ReLUは強力ですが、負の領域で出力がゼロに「切り落とされる」——この折れ目が、深いTransformerのFFNでは別の選択が検討される一因になりました。

GELUの形と直感

GELUの特徴は滑らかさです。

  • 正の入力 — ほぼそのまま通す(ReLUに近い)
  • 負の入力 — 完全に0にせず、小さな値を残す曲線
  • 名前の由来 — ガウス誤差関数(正規分布の累積)に関連する形。試験では式より「滑らかな非線形」で十分なことが多い

直感的には「入力を確率的に通す」ような振る舞い——小さな負の値も少し残す——と説明されることがあります。実務ではBERTGPTアーキテクチャのFFNでGELU(または近い変種)が使われ、Transformer系=GELUと覚えると整理しやすいです。

TransformerのFFNでの位置

TransformerブロックはおおむねAttention+FFNの繰り返しです(TF-0108)。

部品役割活性化の有無
Self-Attention系列内の重み付き集約ソフトマックスは注意重み用(G-304)
FFN(2層MLP)各位置の特徴を非線形変換GELUがここに入る
出力層次トークン・クラスの予測ソフトマックス等(タスク依存)

GELUはTransformer全体の名前ではなく、FFNの中の部品の一つです。レイヤー正規化Attentionと同じく、ブロックを構成する要素として位置づけます。

試験で押さえるポイント

  • 定義滑らかな活性化関数。Transformer系でよく使われる
  • 役割 — 隠れ層への非線形性(G-160)。なければ表現力が落ちる(G-203)
  • 対比 — ReLU=折れ目、GELU=曲線。ソフトマックス=出力層の確率化
  • すり替え回避 — 損失関数・正則化・Transformerそのものではない

演習で確認する

G検定:G-160G-203G-122TF-380TF-384

生成AIパスポート:TF-0108(Transformer構成)

すり替えに注意

誤った説明正しい理解
GELU=ReLU曲線 vs 折れ目。世代も用途も異なる
GELU=ソフトマックス隠れ層活性化 vs 出力層の確率化(G-122)
GELU=TransformerFFNの部品 vs 全体アーキテクチャ
GELU=損失関数順伝播の非線形 vs 学習の誤差(G-204)
GELU=正則化活性化 vs L1/L2など(G-169)

よくある質問

GELUは何ですか?

Gaussian Error Linear Unitの略で、ニューラルネットワークの隠れ層などに挿入する活性化関数の一種です。ReLUのように0付近で折れ目があるのではなく滑らかな曲線で非線形性を与え、BERTやGPTなどTransformer系モデルのフィードフォワード層でよく使われます。

GELUとReLUは同じですか?

同じではありません。どちらも隠れ層に非線形性を与える活性化関数ですが、ReLUは入力が0以下なら0・正ならその値を返す折れ目のある関数、GELUは滑らかな曲線で負の領域にも小さな値を通します。用途の世代(CNNのReLU vs TransformerのGELU)も異なります。

GELUとソフトマックスは同じですか?

同じではありません。GELUは隠れ層の各ユニットに適用する活性化関数です。ソフトマックスは多クラス分類の出力層で確率分布(合計1)に正規化する関数であり、役割と適用位置が異なります。