ニューラルネットワークで使用される活性化関数は、入力に基づいて出力を決定する重要な役割を果たします。各層に非線形性を導入し、複雑な問題を解決できるようにするため、さまざまな活性化関数が使われます。ここでは、代表的な活性化関数とその用途について整理します。
1. ReLU関数(Rectified Linear Unit)
- 定義:
f (x) = max(x, 0)
ReLUは、入力が正の場合はそのままの値を返し、負の場合は0を返す関数です。 - 用途:
ディープラーニングで最も一般的に使われている活性化関数です。勾配が大きな範囲で一定であり、計算が非常に効率的なため、多層ニューラルネットワークの隠れ層で広く使用されています。ただし、負の入力がすべて0になる「ニューロンの死」という問題が発生することがあります。
2. tanh関数(双曲線正接関数)
- 定義:
f (x) = tanh x
出力は -1 から 1 の範囲で、ゼロ中心の非線形関数です。 - 用途:
隠れ層でよく使われる活性化関数です。tanhはシグモイド関数に比べて、出力がゼロ中心であるため、勾配の効率が向上します。ニューラルネットワークにおける勾配消失問題を軽減する役割もあります。
3. シグモイド関数(sigmoid関数)
- 定義:
f (x) = 1/{1 + exp(-x)}
出力は0から1の間で、入力を確率のように解釈することができます。 - 用途:
主に2値分類問題の出力層で使用されます。確率として出力が解釈できるため、ロジスティック回帰やニューラルネットワークで、クラスの所属確率を予測するのに使われます。ただし、入力が大きくなると勾配が小さくなり、勾配消失問題が発生しやすいです。
4. ステップ関数(Heaviside関数)
- 定義:
f (x) = 1 (x ≥ 0), 0 (x < 0)
0と1の二値を返すシンプルな関数です。 - 用途:
パーセプトロンなどの古典的なニューラルネットワークで使用されます。入力が閾値を超えた場合に1を、それ以外は0を返すため、初期のニューラルネットワークや論理回路のモデルで使われます。ディープラーニングでは、微分不可能なためほとんど使われませんが、歴史的には重要な関数です。
まとめ
ニューラルネットワークでは、さまざまな活性化関数が使われます。それぞれの関数には特定の役割や利点があり、タスクやモデルの設計に応じて適切なものが選ばれます。
- ReLU: ディープラーニングの隠れ層で広く使用。シンプルで計算効率が高い。
- tanh: 隠れ層で使用され、ゼロ中心で勾配消失を軽減する。
- シグモイド: 出力層で確率的な解釈に利用。2値分類に適している。
- ステップ関数: 初期のパーセプトロンなどで使用されるが、ディープラーニングではあまり使われない。
それぞれの関数は、ニューラルネットワークの学習において非常に重要な役割を果たしています。
コメント