活性化関数とは

かっせいかかんすうactivation function

1行定義

活性化関数とは、ニューラルネットワークの各ユニットで、入力の重み付き和にバイアスを加えた値を変換し、そのユニットの出力を決める関数のことです。

くわしく

活性化関数は、ニューラルネットワークの各ユニット(ニューロン)が、受け取った信号をどのような値に変えて次へ渡すかを決める関数です。

全結合層とセットで働く

全結合層では、まず入力に重みを掛けて足し、バイアスを加えます。式で書くとu = Wx + bで、これは線形関数です。このuを活性化関数fに通したf(u)が、次の層への出力になります。

線形関数だけを何層重ねても、全体は1つの線形関数と同じになります。たとえばy = 2(3x)はy = 6xと同じです。隠れ層に非線形の活性化関数をはさむことで、層を重ねるほど複雑な関係を表せるようになります。CNNの畳み込み層の後にも、同じ理由で活性化関数をはさみます。

隠れ層で使う関数

初期のパーセプトロンは、0か1を出すステップ関数を使っていました。誤差逆伝播法で学習するには微分が必要なため、なめらかなシグモイド関数やtanh関数に置き換わりました。しかし、これらは入力の絶対値が大きいと微分が0に近づき、勾配消失問題の原因になります。

現在は、正の入力をそのまま通すf(u) = max(0, u)のReLU関数や、その改良であるLeaky ReLU関数が広く使われています。計算が軽く、正の範囲では微分が1なので勾配が小さくなりにくいためです。

出力層で使う関数

出力層では、答えの形に合わせて選びます。

  • 回帰:恒等関数(値をそのまま出す)
  • 2値分類や複数ラベルの判定:シグモイド関数(各出力が0〜1)
  • 多クラス分類:ソフトマックス関数(出力の合計が1)

覚え方

「隠れ層は学びやすさ、出力層は答えの形で選ぶ」と覚えます。

G検定での出題

シグモイド関数・tanh関数・ReLU関数などの形と微分の性質、全結合層の線形変換に非線形の関数を組み合わせる理由、出力層でタスクに応じて恒等関数・シグモイド関数・ソフトマックス関数を使い分けることが問われます。

◯×チェック

  1. 1つのネットワークの中では、隠れ層と出力層に同じ種類の活性化関数を使わなければならない。

    答えを見る

    答え × 誤り

    隠れ層では学習のしやすさからReLU関数などを使い、出力層では回帰なら恒等関数、多クラス分類ならソフトマックス関数のように、答えの形に合わせて別の関数を選びます。

  2. 誤差逆伝播法で勾配を求めるときには、各ユニットの活性化関数の微分の値が使われる。

    答えを見る

    答え ◯ 正しい

    連鎖律により、出力層から入力層へ勾配を伝える途中で、各層の活性化関数の微分が掛け合わされます。微分が0に近い値ばかりだと、勾配消失問題が起きます。

  3. 活性化関数は全結合層だけで使われ、CNNの畳み込み層の出力には使われない。

    答えを見る

    答え × 誤り

    畳み込み層でも、フィルタで計算した値にバイアスを加え、ReLU関数などの活性化関数に通してから次の層へ渡すのが一般的です。

練習問題

活性化関数の問題(2問)
  1. 神経回路とニューラルネットワーク
  2. 全結合層と畳み込み層の共通点

AIで作成 人による確認:未 誤りを報告

出典と作成について

作成:ウカトレ編集部(AIで作成し、別のAIが一次資料と照合。手順は編集方針)

公開日: 最終更新日: 最終確認日:

対応シラバス:シラバス第1.4版 技術12・技術17

出典

改訂履歴

表示設定

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