【しぐもいどかんすう】
シグモイド関数 とは?
最終更新:
💡 大きさを、0と1の間のS字カーブへ
入力を滑らかなS字カーブで0と1の間へ変換する関数。ロジスティック関数の式、入力0の出力、確率として読む条件や勾配を解説します。
📌 このページのポイント
- 機械学習でいうシグモイドは通常ロジスティック関数
- 入力が0のとき出力は0.5
- 大きな負の入力では0、大きな正の入力では1へ近づく
- 0と1の間の値でも、確率の正確さは自動では保証されない
シグモイド関数って、どんな形?
入力を横軸、出力を縦軸にすると、滑らかなS字の曲線になるよ。大きな負の入力では0に、大きな正の入力では1に近づく。入力0では、ちょうど0.5になるんだ。
数式も難しい?
通常はσ(x) = 1 / (1 + e^(-x))というロジスティック関数を指すよ。まずは、入力が増えると出力も増え、両端では変化が緩やかになる形をつかもう。
出力は、0や1になる?
数学上、有限の実数を入れると出力は0より大きく1より小さいよ。0や1に近づいていくんだ。ただしコンピューターの計算では、精度の限界で端の値に丸められる場合がある。
0.8なら、80%の確率?
二つのクラスを判定するモデルの出力などで、確率として扱うことがあるよ。ただ、関数に数字を入れたことだけでは、その解釈や精度は保証されない。学習の目的と、実際の結果がどれくらい合うかを確認する必要があるんだ。
学習では、何に注意する?
入力が大きな正負になると、曲線が平らになり、勾配が小さくなる。微分はσ(x)×(1−σ(x))だよ。用途に合う活性化関数や学習の設定を選ぼう。どんなモデルにもこれが最適、という意味ではないんだ。
もっと詳しく知りたい人へ
シグモイドとsoftmaxは同じ?
通常のシグモイドは、一つひとつの入力を0と1の間へ変換します。softmaxは複数の入力をまとめて扱い、出力の合計を1にします。Kerasは、シグモイドを「もう一つの入力を0とした二要素のsoftmax」とも説明しています。
0より小さい入力は、全部0になる?
通常のシグモイドでは、有限の負の入力も数学上は0より大きい値になります。負の入力を0にする標準のReLUなどとは、変換の形が違います。
まとめ:ざっくりこれだけ覚えればOK!
「シグモイド関数」って出てきたら「値を0と1の間へ滑らかに変換するS字型の関数」と思えばだいたいOK!
📖 おまけ:英語の意味
「Sigmoid」 = S字型の
💬 曲線の形を表す呼び方です。ここでは機械学習でよく使うロジスティック関数を説明します。