| シグモイド | σ(x) = 1 / (1 + e^(−x)) σ′(x) = σ(x)·(1 − σ(x)) | (0, 1) | 0.25 (x = 0) | いいえ | 両側 | 2値分類の出力層、LSTM・GRUのゲート |
|---|
| tanh(双曲線正接) | tanh(x) = (eˣ − e^(−x)) / (eˣ + e^(−x)) tanh′(x) = 1 − tanh²(x) | (−1, 1) | 1 (x = 0) | はい | 両側 | LSTM・GRUの状態更新、古典的なRNN |
|---|
| ReLU(ランプ関数) | ReLU(x) = max(0, x) ReLU′(x) = 0 (x < 0), 1 (x > 0) | [0, ∞) | 1 (x > 0) | いいえ | 左側(勾配がちょうど0) | AlexNet・VGG・ResNet。CNNやMLPの標準 |
|---|
| Leaky ReLU | f(x) = x (x ≥ 0), αx (x < 0); α = 0.01 f′(x) = 1 (x > 0), α (x < 0) | (−∞, ∞) | 1 (x > 0) | いいえ | しない | GANの識別器(DCGANはα = 0.2) |
|---|
| PReLU | f(x) = x (x ≥ 0), a·x (x < 0) f′(x) = 1 (x > 0), a (x < 0); ∂f/∂a = min(0, x) | (−∞, ∞) | 1 (x > 0) | いいえ | しない | 傾きaも学習する(PyTorchの初期値は0.25)。He et al.(2015)がImageNet向けCNNで導入(He初期化と同じ論文) |
|---|
| ELU | f(x) = x (x > 0), α(eˣ − 1) (x ≤ 0); α = 1 f′(x) = 1 (x > 0), αeˣ (x ≤ 0) | (−α, ∞) | 1 (x > 0) | 一部:負の出力で平均が0に近づく | 左側(−αへ滑らかに) | Clevert et al.(2015)が深いネットの学習を速める目的で提案 |
|---|
| SELU | f(x) = λx (x > 0), λα(eˣ − 1) (x ≤ 0); λ ≈ 1.0507, α ≈ 1.6733 f′(x) = λ (x > 0), λαeˣ (x ≤ 0) | (−1.7581, ∞) | 1.7581 (x → 0⁻) | はい(LeCun正規初期化と組で設計) | 左側(−λα ≈ −1.7581へ) | 自己正規化ネットワーク(Klambauer et al., 2017) |
|---|
| GELU | GELU(x) = x·Φ(x) = ½x(1 + erf(x/√2)) GELU′(x) = Φ(x) + x·φ(x) | [−0.1700, ∞) | 1.1289 (x = √2) | いいえ(最小−0.1700) | 左側(0へ) | BERT・GPT-2・ViTのフィードフォワード層 |
|---|
| GELU(tanh近似) | f(x) = ½x(1 + tanh(√(2/π)·(x + 0.044715x³))) f′(x) = ½(1 + t) + ½x(1 − t²)·√(2/π)·(1 + 0.134145x²); t = tanh(√(2/π)·(x + 0.044715x³)) | [−0.1700, ∞) | 1.1290 (x ≈ 1.42) | いいえ(最小−0.1700) | 左側(0へ) | GPT-2の元のコード。PyTorchのapproximate='tanh' |
|---|
| SiLU / Swish | f(x) = x·σ(βx); β = 1: SiLU f′(x) = σ(βx) + βx·σ(βx)·(1 − σ(βx)) | [−0.2785, ∞) (β = 1) | 1.0998 (x ≈ 2.40, β = 1) | いいえ(最小−0.2785) | 左側(0へ) | EfficientNet。LLaMA系LLMのSwiGLUフィードフォワード |
|---|
| Mish | Mish(x) = x·tanh(softplus(x)) Mish′(x) = tanh(s) + x·sech²(s)·σ(x); s = softplus(x) | [−0.3088, ∞) | 1.0885 (x ≈ 1.49) | いいえ(最小−0.3088) | 左側(0へ) | YOLOv4のバックボーン(Misra, 2019) |
|---|
| ソフトプラス | softplus(x) = ln(1 + eˣ) softplus′(x) = σ(x) | (0, ∞) | → 1 (x → ∞) | いいえ | 左側(0へ) | 分散やスケールなど、出力を正に保つ用途 |
|---|
| ソフトサイン | softsign(x) = x / (1 + |x|) softsign′(x) = 1 / (1 + |x|)² | (−1, 1) | 1 (x = 0) | はい | 両側(ただし多項式的にゆっくり) | tanhの代替として検討された(Glorot & Bengio, 2010)。現在はまれ |
|---|
| ハードシグモイド | f(x) = ReLU6(x + 3) / 6 = min(1, max(0, x/6 + ½)) f′(x) = 1/6 (−3 < x < 3), 0 (|x| > 3) | [0, 1] | 1/6 (−3 < x < 3) | いいえ | 両側(|x| > 3で勾配がちょうど0) | MobileNetV3のSqueeze-and-Excitationブロック |
|---|
| Hard swish | f(x) = x·ReLU6(x + 3) / 6 f′(x) = 0 (x < −3), (2x + 3)/6 (−3 ≤ x ≤ 3), 1 (x > 3) | [−0.375, ∞) | 1.5 (x = 3) | いいえ(最小−0.375) | 左側(x < −3で勾配がちょうど0) | MobileNetV3(Howard et al., 2019) |
|---|
| ステップ関数 | f(x) = 1 (x ≥ 0), 0 (x < 0) f′(x) = 0 (x ≠ 0) | {0, 1} | 0 | いいえ | 全域(逆伝播できる勾配がない) | ローゼンブラットのパーセプトロン。誤差逆伝播では学習できない |
|---|