シグモイド関数とは

しぐもいどかんすうsigmoid function別名 ロジスティック関数、標準シグモイド関数

1行定義

シグモイド関数とは、どんな実数の入力も0から1の間の値に変換する、なめらかなS字形の関数のことです。

くわしく

シグモイド関数は、入力を0から1の間の値に押し込める関数です。ニューラルネットワークでは、標準シグモイド関数(ロジスティック関数)σ(x) = 1 / (1 + e^(−x))を指すのが普通です。入力が0のとき0.5を出力し、入力が大きくなるほど1に、小さくなるほど0に近づきます。

使われる場面

出力が0から1に収まるので、確率として読めます。そのため、2値分類の出力層でよく使われます。たとえば「このメールが迷惑メールである確率は0.92」のように出力し、0.5以上なら迷惑メールと判定します。ロジスティック回帰も同じ関数を使います。1枚の画像に複数のタグを付ける判定のように、クラスごとに独立して「当てはまるかどうか」を出す場合も、各出力にシグモイド関数を使います。

LSTMのゲートでも使われます。0から1の値を「情報をどれだけ通すかの割合」として使うためです。

隠れ層で使われなくなった理由

かつては隠れ層の活性化関数の定番でした。しかし、微分σ(x)(1 − σ(x))は入力が0のときに最大の0.25で、入力の絶対値が大きくなるとほぼ0になります(飽和)。誤差逆伝播法では、この小さな値が層の数だけ掛け合わされます。そのため、入力層に近い層ほど勾配が小さくなります。これが勾配消失問題です。出力が常に正で、0を中心としないことも、学習を遅くする原因の1つとされます。

現在の隠れ層ではReLU関数が主流です。出力を−1から1にしたtanh関数も、0を中心とする点でシグモイド関数より学習しやすいとされます。

ソフトマックス関数との違い

シグモイド関数は、1つの値を独立に変換します。ソフトマックス関数は、複数の値をまとめて変換し、合計が1になるようにします。複数のクラスから1つだけを選ぶ多クラス分類では、ソフトマックス関数を使います。

覚え方

「どんな値もS字で0〜1に収める」と覚えます。

G検定での出題

出力が0から1になる性質と2値分類の出力層での使い方、微分の最大値が0.25であることと勾配消失問題の関係、ReLU関数・tanh関数・ソフトマックス関数との違いが問われます。

混同しやすい用語

用語意味
ソフトマックス関数複数の数値をそれぞれ0から1の間の値に変換し、その合計がちょうど1になるようにする関数
tanh関数入力を−1から1の範囲の値に変換する、原点を中心に対称なS字形の活性化関数

違いを表で比べる:シグモイド関数とソフトマックス関数

◯×チェック

  1. シグモイド関数に0を入力すると、0.5が出力される。

    答えを見る

    答え ◯ 正しい

    1 / (1 + e^0) = 1 / 2です。グラフは点(0, 0.5)を中心に点対称なS字になります。

  2. シグモイド関数は、入力が大きくなるほど出力も上限なく大きくなる。

    答えを見る

    答え × 誤り

    出力は1に近づくだけで、1を超えません。出力に上限がないのはReLU関数です。

  3. LSTMのゲートでは、情報をどれだけ通すかを0から1の割合で表すために、シグモイド関数が使われる。

    答えを見る

    答え ◯ 正しい

    入力ゲート・忘却ゲート・出力ゲートは、シグモイド関数の出力を情報に掛けて、通す量を調整します。

練習問題

シグモイド関数の問題(11問)
  1. 線形回帰とロジスティック回帰
  2. ロジスティック回帰の係数とオッズ
  3. シグモイド関数と勾配消失
  4. 出力層の活性化関数の選択
  5. 活性化関数の形と勾配の伝わり方
  6. 回帰の出力層の活性化関数
  7. ソフトマックスとシグモイドの関係
  8. 勾配消失問題への対処
  9. 分類で交差エントロピーを使う理由
  10. 深層化による訓練誤差の悪化
  11. LSTMの記憶セルの更新計算

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

出典と作成について

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

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

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

改訂履歴

表示設定

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