活性化関数(ReLU, Sigmoid, Tanh)

機械学習のニューラルネットワークにおいて**活性化関数(Activation Function)**は、各ニューロンの出力を非線形に変換する重要な役割を果たします。これにより、ネットワークは線形では表現できない複雑なパターンを学習できるようになります。以下に、代表的な活性化関数である ReLU、Sigmoid、Tanh について詳しく説明します。


1. ReLU(Rectified Linear Unit)

定義

ReLU(x)=max(0,x)\text{ReLU}(x) = \max(0, x)

特徴

  • 入力が0より大きければそのまま出力し、0以下であれば0を出力します。

  • 非線形性を持ちつつも、計算が非常に効率的です。

  • 深層ニューラルネットワーク(ディープラーニング)で最もよく使われる活性化関数です。

長所

  • 勾配消失問題(後述)の影響を受けにくい。

  • 計算コストが小さい。

短所

  • 入力が負の領域では勾配が0になるため、**死んだニューロン問題(Dead Neuron Problem)**が起こることがある。


2. Sigmoid(シグモイド関数)

定義

Sigmoid(x)=11+ex\text{Sigmoid}(x) = \frac{1}{1 + e^{-x}}

特徴

  • 出力値は常に (0, 1) の範囲に収まります。

  • 確率的な出力や分類タスク(特に2クラス分類)の最終層に使われることがあります。

長所

  • 出力が確率のように解釈できる。

  • 小さな入力に対して滑らかに応答。

短所

  • 勾配消失問題:大きな正または負の入力では勾配がほとんどゼロになり、学習が進まなくなる。

  • 出力の中心が0でない(0.5に偏る)ため、最適化が遅くなることがある。


3. Tanh(双曲線正接関数)

定義

Tanh(x)=exexex+ex\text{Tanh}(x) = \frac{e^x – e^{-x}}{e^x + e^{-x}}

特徴

  • 出力範囲は (−1, 1)。

  • Sigmoidと似ているが、出力が0中心であるため、学習が早く進む傾向がある。

長所

  • Sigmoidよりも勾配消失問題に強い。

  • 出力が0中心であるため、収束が早くなることがある。

短所

  • それでも大きな入力では勾配が小さくなり、勾配消失が起こりうる。


活性化関数の選択について

活性化関数 出力範囲 勾配消失耐性 中心性(0中心か) 使用される場面
ReLU [0, ∞) 強い なし 中間層(特に深層ネットワーク)
Sigmoid (0, 1) 弱い なし 出力層(2クラス分類)
Tanh (−1, 1) 中程度 あり 中間層(浅層ネットワークや古典的RNN)

補足:勾配消失問題とは

勾配降下法による学習では、誤差を逆伝播して重みを更新しますが、活性化関数の微分値が小さいと、勾配が層を伝わるうちに急速に小さくなってしまい、学習が進まなくなる現象を指します。これが**勾配消失問題(vanishing gradient problem)**であり、SigmoidやTanhはこれに比較的弱い傾向があります。

生成日:2025/06/01