活性化関数 (Activation Function) は、ニューラルネットワークのニューロン(ノード)に「スイッチ」の役割を与える重要な要素です。前の層から受け取った入力信号の合計が、次の層にどの程度の強さで情報を伝えるべきかを決定します。
もし活性化関数がなければ、ニューラルネットワークは単なる線形変換(入力に数値を掛けて足すだけ)の繰り返しになってしまい、複雑なパターンを学習することができません。活性化関数が非線形性を導入することで、ネットワークは曲がりくねった決定境界や複雑な関数を表現できるようになります。
これは、ニューロンへの入力 (x) と、それに対する出力 (y) の関係を示しています。例えば、入力が「2」のとき、Sigmoid関数なら出力は「0.88」となり、ReLU関数なら「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のため、勾配降下法による学習ができない。 |