活性化関数ビジュアライザー

入力 (x): --- 出力 (y): --- 勾配 (f'(x)): ---

活性化関数 f(x)

導関数 f'(x) (学習時の勾配)

活性化関数とは? なぜ重要なのか?

活性化関数 (Activation Function) は、ニューラルネットワークのニューロン(ノード)に「スイッチ」の役割を与える重要な要素です。前の層から受け取った入力信号の合計が、次の層にどの程度の強さで情報を伝えるべきかを決定します。

もし活性化関数がなければ、ニューラルネットワークは単なる線形変換(入力に数値を掛けて足すだけ)の繰り返しになってしまい、複雑なパターンを学習することができません。活性化関数が非線形性を導入することで、ネットワークは曲がりくねった決定境界や複雑な関数を表現できるようになります。

2つのグラフの見方

各活性化関数の比較

関数名 特徴 長所 短所
Sigmoid 出力を0から1の間に押し込める。確率の表現によく使われる。 出力を確率として解釈しやすい。滑らかで微分可能。 入力が大きすぎる/小さすぎると勾配が0に近くなり、学習が停滞する(勾配消失)。
ReLU 入力が0以下なら出力を0に、0より大きければ入力をそのまま出力する。 計算が非常に高速。勾配消失問題を緩和できるため、現在最も広く使われている。 入力が負になると勾配も0になり、そのニューロンは学習しなくなる(Dying ReLU問題)。
Leaky ReLU ReLUの改良版。入力が負でも、わずかな勾配(例: 0.01)を持つ。 Dying ReLU問題を解決し、負の入力でも学習が完全に停止しない。 ReLUほどの劇的な改善が見られない場合もある。
Tanh 出力を-1から1の間に押し込める。Sigmoidを上下に引き伸ばし、中心を0にしたような形。 出力が0中心なので、学習がSigmoidより効率的な場合がある。 Sigmoidと同様に、勾配消失問題を起こしやすい。
Step 入力がしきい値(ここでは0)を超えたら1、そうでなければ0を出力する。最も初期のモデル。 生物のニューロンの「発火するかしないか」という挙動に最も近い。 勾配がほとんどの場所で0のため、勾配降下法による学習ができない。