活性化関数(シラバス 技術12)

1行の定義と◯×チェックは用語『活性化関数』の解説にあります。

学習目標

ニューラルネットワークの中で活性化関数が果たす役割を説明し、代表的な活性化関数の形・使いどころ・注意点を、勾配消失問題との関係も含めて説明できるようにします。

要点

活性化関数の役割

ニューロンは、入力に重みを掛けて足し合わせた値を活性化関数に通して出力します。活性化関数が線形だと、層をいくら重ねても全体は1つの線形変換と変わらず、複雑な関係を表せません。非線形の活性化関数を挟むことで、層を深くする意味が生まれます。出力層では、出力を確率のような扱いやすい形に変える役割も担います。

主な活性化関数

  • シグモイド関数:f(x) = 1 / (1 + exp(-x))。出力は0から1の範囲です。2値分類の出力層で、正例である確率を表すのに使います。微分の最大値はx = 0のときの0.25です。
  • tanh関数:出力は-1から1の範囲で、0を中心に対称です。微分の最大値は1なので、シグモイド関数より勾配が小さくなりにくい関数です。ただし、入力の絶対値が大きいと微分がほぼ0になる点は同じです。
  • ReLU関数:f(x) = max(0, x)。入力が正なら微分は常に1なので、層を深くしても勾配が小さくなりにくく、計算も軽いことから隠れ層で広く使われます。一方、入力が負の範囲では出力も微分も0です。負の入力ばかり受けるニューロンは、重みが更新されなくなります。
  • Leaky ReLU関数:入力が負のときに、0.01倍のような小さな傾きをもたせた関数です。負の範囲でも勾配が0にならず、ReLU関数の弱点を和らげます。
  • ソフトマックス関数:複数の値を、それぞれ0から1の範囲で合計が1になる値に変換します。多クラス分類の出力層で、各クラスの確率を表すのに使います。

勾配消失問題

誤差逆伝播法では、出力層から入力層へ向かって、各層の微分を掛け合わせながら勾配を伝えます。シグモイド関数のように微分の値が1より小さい関数を何層も重ねると、掛けるたびに勾配が小さくなります。その結果、入力層に近い層の重みがほとんど更新されなくなります。これが勾配消失問題です。隠れ層の活性化関数をReLU関数などに替えることが、代表的な対策の1つです。

使い分けの目安

  • 隠れ層:ReLU関数とその改良版が基本です。かつてはシグモイド関数やtanh関数が使われていました。
  • 出力層:回帰では値をそのまま出す恒等関数、2値分類ではシグモイド関数、多クラス分類ではソフトマックス関数を使います。

G検定で問われる深さ

微分の導出は不要です。各関数の出力の範囲、微分の最大値(シグモイド関数は0.25、tanh関数は1)、隠れ層と出力層でどれを使うかを説明できれば十分です。グラフの形から関数名を答えられるようにしておくと役立ちます。

つまずきやすい点

  • ソフトマックス関数は多クラス分類の出力層、シグモイド関数は2値分類の出力層で使い、隠れ層の主流はReLU関数である、という使い分けの混同
  • tanh関数も入力の絶対値が大きいと微分がほぼ0になるため、勾配消失問題を完全には防げない点
  • ReLU関数は入力が負のとき出力も微分も0になり、更新されないニューロンが生じうる点。Leaky ReLU関数はこの範囲に小さな傾きを与えて対処する

シラバスのキーワード

Leaky ReLU関数、ReLU関数、tanh関数、シグモイド関数、ソフトマックス関数、勾配消失問題

練習問題

  1. シグモイド関数と勾配消失
  2. 出力層の活性化関数の選択
  3. ReLU系関数とtanh関数の性質
  4. 活性化関数の形と勾配の伝わり方
  5. 回帰の出力層の活性化関数
ほかの2問
  1. ソフトマックスとシグモイドの関係
  2. 勾配消失問題への対処

混同しやすい用語

この項目の関連用語

ディープラーニングの概要の中項目
  1. ニューラルネットワークとディープラーニング
  2. 活性化関数
  3. 誤差関数
  4. 正則化
  5. 誤差逆伝播法
  6. 最適化手法

表示設定

テーマ
文字の大きさ
問題演習