ニューラルネットワーク基礎

ReLU・Leaky ReLU・GELU りーるー・りーきーりーるー・じーいーえるゆー

ReLULeaky ReLUGELU活性化関数勾配消失対策
ReLU・Leaky ReLU・GELUについて教えて

簡単に言うとこんな感じ!

現代のニューラルネットワークで最もよく使われる活性化関数の3つだよ。ReLUは「0以下は切り捨て」、Leaky ReLUは「0以下も少し残す」、GELUは「確率的に滑らかに変換」する関数TransformerモデルではGELUが標準なんだ!


ReLU(Rectified Linear Unit)

ReLU(x) = max(0, x)

   x < 0 → 出力 0
   x ≥ 0 → 出力 x(そのまま)

グラフ:

  │   /
  │  /
  │ /
──┼/──────→
  0

特徴:計算が超シンプル、深いネットワークで勾配消失しにくい 問題:Dying ReLU(負の入力が常に0になり学習停止の可能性)


Leaky ReLU

Leaky ReLU(x) = max(αx, x)  (通常 α = 0.01)

   x < 0 → 出力 0.01x(小さな傾き)
   x ≥ 0 → 出力 x

グラフ:

  │     /
  │    /
  │   /
──┼──/────→
 /  0
(ゆるい傾き)

特徴:Dying ReLU問題を緩和 バリエーション:PReLU(αを学習可能)、ELU(負側を滑らかな曲線に)


GELU(Gaussian Error Linear Unit)

GELU(x) = x × Φ(x)

Φ(x):標準正規分布の累積分布関数(CDF)

近似式:
GELU(x) ≈ 0.5x(1 + tanh(√(2/π)(x + 0.044715x³)))

特徴

  • 確率的な解釈を持つ(入力が正規分布に従う場合の期待値)
  • ReLUより滑らか
  • BERT、GPT-2、Transformer全般で採用

3つの比較

特性ReLULeaky ReLUGELU
計算速度最速速いやや遅い
負値の扱い0小さな値滑らかな曲線
Dying問題あり軽減ほぼなし
主な用途CNN一般ReLU代替Transformer

歴史と背景

  • 2011年:ReLUがSigmoidを超える性能を示す(Glorotら)
  • 2015年:Leaky ReLUがReLUの代替として登場
  • 2016年:GELUが提案
  • 2018年:BERTがGELUを採用してTransformerの標準活性化関数に

関連用語

  • 活性化関数 — ReLU・GELU等が属するカテゴリ
  • Sigmoid・Tanh — ReLUが取って代わった旧主流
  • 勾配消失 — ReLUが解決した問題
  • Transformer — GELUを採用した現代の主要モデル
  • CNN — ReLUが標準的に使われるアーキテクチャ