活性化関数
読み: かっせいかかんすう
ニューラルネットワークの各ニューロンに非線形性を導入する関数。線形変換の繰り返しでは表現できない複雑なパターンの学習を可能にする。
活性化関数 (Activation Function) は、ニューロンの線形出力 z = Wx + b に適用される非線形関数である。活性化関数がなければ多層ネットワークは単一の線形変換と等価になり、XOR のような非線形問題を解けない。適切な活性化関数の選択はモデルの学習速度と最終精度に直結する。
画像認識の分野では ReLU (Rectified Linear Unit) が事実上の標準である。f(x) = max(0, x) という単純な計算で、正の入力をそのまま通し負の入力を 0 にする。シグモイドや tanh と比較して勾配消失が起きにくく、計算コストも低い。
- ReLU:
f(x) = max(0, x)。計算が高速で勾配消失しにくいが、負の入力で勾配が完全に 0 になる「死んだニューロン」問題がある - Leaky ReLU:
f(x) = max(0.01x, x)。負の領域にも小さな勾配 (0.01) を持たせ、死んだニューロン問題を緩和する - GELU: Transformer 系モデルで採用される滑らかな活性化関数。x に標準正規分布の累積分布関数を乗じる近似で、BERT や Vision Transformer で標準的に使用される
- Softmax: 出力層で使用され、各クラスの確率分布を生成する。画像分類の最終層で 1000 クラスの確率を出力する際に不可欠
超解像や画像生成では出力層に tanh (-1 から 1) や sigmoid (0 から 1) を使い、ピクセル値の範囲を制約する。中間層には ReLU 系、出力層にはタスクに応じた活性化関数を選択するのが基本方針である。