シグモイド関数とは、任意の入力値を0から1の範囲の実数に変換するS字型の数学的関数です。機械学習や深層学習において二値分類の予測確率の算出やニューラルネットワークの活性化関数として広く活用されてきました。
シグモイド関数とは
シグモイド関数は、どのような実数値であっても滑らかなS字曲線を描いて0から1の範囲に収める関数であり、確率の表現やニューラルネットワークの活性化関数として用いられます。
詳しく解説
シグモイド関数(一般には標準ロジスティック関数)は、数式「f(x) = 1 / (1 + exp(-x))」で表されます。入力値がどれほど大きくても1に近づき、どれほど小さくても0に近づくという性質を持ちます。この連続的で微分可能な特性から、勾配に基づく最適化手法と相性が良く、初期の多層パーセプトロンにおける重要な活性化関数として発展しました。また、統計的機械学習の手法であるロジスティック回帰でも中核的な役割を果たします。
具体例・使われ方
迷惑メールの判定モデルにおいて、入力データ(メール本文の特徴量)から「迷惑メールである確率(例: 0.85)」を出力する二値分類の最終層で利用されます。また、医療診断における疾患の有無の判定など、結果を確率として解釈したい場面で幅広く活用されています。
似た用語との違い
多クラス分類で使われるソフトマックス関数は、複数の出力の合計が1になるように正規化する関数であり、二値分類向けのシグモイド関数を多変量に拡張したものと言えます。また、深層学習の中間層では、計算がシンプルで勾配が減衰しにくいReLU関数がシグモイド関数に代わって主流となっています。
注意点
入力値の絶対値が非常に大きい領域では傾き(微分係数)がほぼ0になるため、ディープニューラルネットワークの中間層に多数重ねると学習が進まなくなる勾配消失問題が発生しやすいという欠点があります。そのため現代の深層学習では中間層ではなく、主に二値分類の出力層に用途が限定される傾向があります。