【しぐもいどかんすう】

シグモイド関数 とは?

💡 どんな値もゼロとイチの間に収める「AIのS字カーブ」
📌 このページのポイント
シグモイド関数(Sigmoid Function) x y 1.0 0.5 0.0 (0, 0.5) σ(x) = 1/(1+e⁻ˣ) 出力は 0〜1 の範囲 → 1に近づく(活性化) → 0に近づく(抑制) 確率の表現に最適なS字カーブ
シグモイド関数のイメージ
ひよこ ひよこ

シグモイド関数ってどんな形?

ペンギン先生 ペンギン先生

横軸に入力値、縦軸に出力値をとると、きれいなS字カーブになるよ。入力が大きなマイナスだと出力は0に近づき、大きなプラスだと1に近づく。入力が0のときちょうど出力は0.5になる。この「0と1の間に滑らかに収まる」性質が便利なんだ。

ひよこ ひよこ

なんで中間層ではあまり使わないの?

ペンギン先生 ペンギン先生

勾配消失問題が起きやすいからだよ。シグモイドは入力が大きいか小さいと勾配がほぼ0になる。ニューラルネットワークの層が深くなると、この小さい勾配同士の掛け算で勾配がどんどん消えてしまう。だから中間層ではReLUという関数が主流になったんだ。

ひよこ ひよこ

じゃあどこで使われてるの?

ペンギン先生 ペンギン先生

主に2つの場面で現役だよ。1つは二値分類の出力層。「スパムか非スパムか」みたいな判定で、0~1の確率を出すのに最適なんだ。もう1つはLSTMなどのゲート機構。「この情報を何%通すか」を0~1で表現するのにシグモイドが使われているよ。

ひよこ ひよこ

シグモイドの数式って覚えなきゃダメ?

ペンギン先生 ペンギン先生

σ(x) = 1 / (1 + e^(-x)) という式だよ。覚えておくと論文やドキュメントが読みやすくなるけど、実装ではフレームワークの関数を呼ぶだけだから暗記は必須じゃない。大事なのは「出力が0〜1」「微分が簡単(σ(1-σ))」「大きな入力で勾配が消える」という性質を理解していることだよ。

ひよこ ひよこ

シグモイドの代わりにtanhを使うこともあるの?

ペンギン先生 ペンギン先生

あるよ。tanhは出力が-1〜1の範囲で、中心が0になる。シグモイドは0〜1で中心が0.5だから、ニューラルネットの中間層ではtanhの方が学習が安定しやすいと言われていた。ただし両方とも勾配消失問題は抱えているので、現在の中間層ではReLU系が主流。シグモイドとtanhは出力層やゲート機構など「0〜1や-1〜1の値が欲しい」特定の場面で使い続けられているんだよ。

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「シグモイド関数」って出てきたら「値を0~1のS字カーブに変換する活性化関数で、確率やゲートの表現に使われるもの」と思えればだいたいOK!
📖 おまけ:英語の意味
「Sigmoid」 = S字型の
💬 ギリシャ文字のシグマ(S)に由来する。グラフがS字型のカーブを描くことから名付けられたよ
← 用語集にもどる