機械学習のニューラルネットワークにおいて**活性化関数(Activation Function)**は、各ニューロンの出力を非線形に変換する重要な役割を果たします。これにより、ネットワークは線形では表現できない複雑なパターンを学習できるようになります。以下に、代表的な活性化関数である ReLU、Sigmoid、Tanh について詳しく説明します。
1. ReLU(Rectified Linear Unit)
定義
特徴
-
入力が0より大きければそのまま出力し、0以下であれば0を出力します。
-
非線形性を持ちつつも、計算が非常に効率的です。
-
深層ニューラルネットワーク(ディープラーニング)で最もよく使われる活性化関数です。
長所
-
勾配消失問題(後述)の影響を受けにくい。
-
計算コストが小さい。
短所
-
入力が負の領域では勾配が0になるため、**死んだニューロン問題(Dead Neuron Problem)**が起こることがある。
2. Sigmoid(シグモイド関数)
定義
特徴
-
出力値は常に (0, 1) の範囲に収まります。
-
確率的な出力や分類タスク(特に2クラス分類)の最終層に使われることがあります。
長所
-
出力が確率のように解釈できる。
-
小さな入力に対して滑らかに応答。
短所
-
勾配消失問題:大きな正または負の入力では勾配がほとんどゼロになり、学習が進まなくなる。
-
出力の中心が0でない(0.5に偏る)ため、最適化が遅くなることがある。
3. Tanh(双曲線正接関数)
定義
特徴
-
出力範囲は (−1, 1)。
-
Sigmoidと似ているが、出力が0中心であるため、学習が早く進む傾向がある。
長所
-
Sigmoidよりも勾配消失問題に強い。
-
出力が0中心であるため、収束が早くなることがある。
短所
-
それでも大きな入力では勾配が小さくなり、勾配消失が起こりうる。
活性化関数の選択について
| 活性化関数 | 出力範囲 | 勾配消失耐性 | 中心性(0中心か) | 使用される場面 |
|---|---|---|---|---|
| ReLU | [0, ∞) | 強い | なし | 中間層(特に深層ネットワーク) |
| Sigmoid | (0, 1) | 弱い | なし | 出力層(2クラス分類) |
| Tanh | (−1, 1) | 中程度 | あり | 中間層(浅層ネットワークや古典的RNN) |
補足:勾配消失問題とは
勾配降下法による学習では、誤差を逆伝播して重みを更新しますが、活性化関数の微分値が小さいと、勾配が層を伝わるうちに急速に小さくなってしまい、学習が進まなくなる現象を指します。これが**勾配消失問題(vanishing gradient problem)**であり、SigmoidやTanhはこれに比較的弱い傾向があります。
生成日:2025/06/01