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つの比較
| 特性 | ReLU | Leaky ReLU | GELU |
|---|---|---|---|
| 計算速度 | 最速 | 速い | やや遅い |
| 負値の扱い | 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が標準的に使われるアーキテクチャ