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を入力すると、0.5が出力される。
答えを見る
答え ◯ 正しい
1 / (1 + e^0) = 1 / 2です。グラフは点(0, 0.5)を中心に点対称なS字になります。
-
シグモイド関数は、入力が大きくなるほど出力も上限なく大きくなる。
答えを見る
答え × 誤り
出力は1に近づくだけで、1を超えません。出力に上限がないのはReLU関数です。
-
LSTMのゲートでは、情報をどれだけ通すかを0から1の割合で表すために、シグモイド関数が使われる。
答えを見る
答え ◯ 正しい
入力ゲート・忘却ゲート・出力ゲートは、シグモイド関数の出力を情報に掛けて、通す量を調整します。
練習問題
出典と作成について
作成:ウカトレ編集部(AIで作成し、別のAIが一次資料と照合。手順は編集方針)
公開日: 最終更新日: 最終確認日:
対応シラバス:シラバス第1.4版 技術12
出典
- G検定 試験出題範囲(シラバス2024)第1.4版(技術分野 項目12 活性化関数)2026年10月30日閲覧
- David E. Rumelhart, Geoffrey E. Hinton, Ronald J. Williams, Learning representations by back-propagating errors, Nature 323, 533–536 (1986)2026年10月30日閲覧
- Ian Goodfellow, Yoshua Bengio, Aaron Courville, Deep Learning, MIT Press (2016)(6.3 Hidden Units)2026年10月30日閲覧