シグモイド関数

Sigmoid Function

シグモイド関数(Sigmoid Function)とは、任意の実数値を0から1の範囲に変換するS字型の関数です。σ(x) = 1/(1+e^(-x))で定義され、確率の表現や二値分類の出力層で使用されます。

特性

シグモイド関数の出力は0と1に漸近し、x=0のとき0.5を出力します。微分可能で滑らかな関数であり、出力を確率として解釈できることが大きな利点です。

表:シグモイド関数の要点まとめ
ひとことで言うとどんな数値も0〜1の範囲に押し込む、S字カーブの関数。
どこで使う2値分類の出力(確率として解釈)、LSTMなどのゲート制御。
注意点入力が大きいと傾きがほぼ0になり、勾配消失を起こす。中間層では非推奨。

勾配消失問題

シグモイド関数の勾配は最大でも0.25であり、深いネットワークでは逆伝播時に勾配が指数的に小さくなる「勾配消失問題」が発生します。このため、現在の深層学習の隠れ層ではReLUが主流となっています。

図:シグモイド関数の働き
1任意の実数−∞から+∞まで
▶
2S字カーブに通す中央付近は急、両端は平ら
▶
30〜1に収まる確率として扱える
▶
4しきい値で判定0.5以上なら陽性

現在の使い方

隠れ層の活性化関数としての利用は減りましたが、二値分類の出力層、ゲート機構(LSTMやGRUの内部)、注意機構の重みの計算などでは依然として重要な役割を果たしています。