【BioInfo】ニューラルネットワークの活性化関数の種類と用途

BioInfo

ニューラルネットワークで使用される活性化関数は、入力に基づいて出力を決定する重要な役割を果たします。各層に非線形性を導入し、複雑な問題を解決できるようにするため、さまざまな活性化関数が使われます。ここでは、代表的な活性化関数とその用途について整理します。

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値分類に適している。
  • ステップ関数: 初期のパーセプトロンなどで使用されるが、ディープラーニングではあまり使われない。

それぞれの関数は、ニューラルネットワークの学習において非常に重要な役割を果たしています。

コメント

タイトルとURLをコピーしました