活性化関数

活性化関数とは?NNの学習と推論の仕組み

1. 活性化関数とは?

活性化関数(Activation Function)とは、ニューラルネットワークにおいて、入力されたデータを適切に変換し、次の層へ出力する関数です。
特に、ニューラルネットワークは 「重み付き入力」→「活性化関数」→「次のニューロンへ伝播」 という流れでデータを処理し、学習を進めます。

ニューラルネットワークの各ニューロンは、入力を単純に受け取るだけではなく、「重み(Weight)」と「バイアス(Bias)」を適用して、重要な情報を抽出します。そして、活性化関数が適用されることで、次のニューロンへの出力が決まります。

この活性化関数がなければ、ニューラルネットワークは単なる線形回帰モデルと同じになってしまい、複雑なパターンを学習できないため、非常に重要な役割を持っています。


2. ニューラルネットワークの学習と推論

① 訓練(Training)

ニューラルネットワークが学習する段階では、次のプロセスが行われます。

  1. フォワードプロパゲーション(Forward Propagation:順伝播)
    • 入力データ(例:画像のピクセル値や音声の波形データ)が最初の層に入る
    • 各ニューロンで「重み付き入力」が計算され、活性化関数を適用する
    • 次の層にデータを送る(隠れ層 → 出力層へ)
    • 出力層では、分類なら「Softmax関数」、回帰なら「ReLU関数」などが適用される
  2. 誤差の計算(Loss Calculation)
    • 出力された結果と 正解データ(ラベル) の誤差を計算する
    • 例: 「犬」と識別したが、正解は「猫」だった → 誤差が発生
  3. バックプロパゲーション(Back Propagation:誤差逆伝播)
    • 誤差を逆向きに伝播させ、各層の 重み(Weight) を修正する
    • 勾配降下法(Gradient Descent) により、最適な重みを見つける
    • この作業を繰り返し、ニューラルネットワークがデータのパターンを学習する

② 推論(Inference:モデルの動作)

ニューラルネットワークの学習が終わると、「訓練済みモデル」となり、実際の予測に利用できます。このとき、新しいデータ を入力すると、学習した重みと活性化関数 に基づいて結果を出力します。

この段階では 「フォワードプロパゲーション(順伝播)」のみ が実行されます。つまり、「誤差の計算」や「重みの更新」は行われず、すでに学習済みの重みを使って、新しいデータの予測を行うだけ です。

例:画像分類の場合

  1. 猫の画像を入力
  2. フォワードプロパゲーションで、特徴を抽出して分類
  3. 出力層の Softmax関数 で「猫: 90%、犬: 5%、ウサギ: 5%」と確率を計算
  4. 「猫」として判定(最も確率の高いクラスを選択)

3. 活性化関数が果たす役割

① 重み付き入力の計算

各ニューロンにおいて、まず入力 xx に対して「重み(Weight)」と「バイアス(Bias)」を適用して、重み付き入力 zz を計算します。

 z = w_1 x_1 + w_2 x_2 + ... + w_n x_n + b

ここで、

  • x は入力値(例:ピクセル値、音声特徴量)
  • w は各入力に対する重み(重要度を示す)
  • b はバイアス(出力の調整)

② 活性化関数を適用

この「線形変換された値 zz」に対して、活性化関数 f(z) を適用することで、非線形な変換を行い、次のニューロンに伝播する値 a を決定します。

 a = f(z)

この a の値が次のニューロンの入力 となり、次々と計算が進んでいきます。


4. 活性化関数が重要な理由

活性化関数を適用することで、ニューラルネットワークには以下のような重要な性質が生まれます。

① ニューラルネットワークを非線形にする

活性化関数がなければ、ニューラルネットワークはすべて線形変換の連続 となり、深い層を作っても単なる線形回帰と同じ結果しか得られません。
しかし、活性化関数を使うことで非線形変換が可能になり、複雑なデータのパターンを学習できる ようになります。

② 学習の収束を助ける

活性化関数の選択によって、学習速度が大きく変わります
適切な活性化関数を使えば、勾配消失問題を軽減し、スムーズに学習を進めることができます。

③ ニューラルネットワークの表現力を向上させる

異なる活性化関数を適用することで、特定のタスクに最適な学習が可能になります。


5. 代表的な活性化関数

ニューラルネットワークでは、以下のような活性化関数がよく使われます。

活性化関数主な用途出力範囲特徴
シグモイド(Sigmoid)確率の出力(分類)(0,1)(0,1)0〜1の確率として解釈可能だが、勾配消失問題がある
tanh
ハイパボリックタンジェント
隠れ層(一般的)(−1,1)(-1,1)シグモイドより学習が速く、ゼロ中心
ReLU(Rectified Linear Unit)隠れ層(深層学習)[ 0, ∞ ]計算コストが低く、勾配消失問題を軽減
Softmax多クラス分類の出力層(0,1)(0,1)各クラスの確率を出力し、合計が1になる

活性化関数の各関数について


まとめ

  • 活性化関数は、ニューラルネットワークの出力を非線形に変換し、学習を可能にする関数 である。
  • 学習時(訓練)では、フォワードプロパゲーションとバックプロパゲーションを行い、重みを最適化する。
  • 推論時(モデルの動作)では、学習済みの重みを用いてデータを処理する。
  • 適切な活性化関数を選ぶことで、ネットワークの学習効率や予測精度が向上する。