シグモイド関数とは?意味・仕組み・活用例をわかりやすく解説

AIの初心者
「シグモイド関数」ってよく聞くんですけど、どんなものか教えてください。

AI専門家
簡単に言うと、どんな数値も0から1の間に変換する関数だよ。AIが「猫らしさは0.7」「犬らしさは0.3」のように判断結果を扱うときに役立つんだ。

AIの初心者
0から1の数字になると、確率のように見られるんですね。どうやって変換しているんですか?

AI専門家
S字型の曲線を作る式を使うんだ。入力が大きいほど1に近づき、小さいほど0に近づくので、0.5などの基準を決めると二つの分類にも使いやすいよ。
シグモイド関数とは。
シグモイド関数は、入力された数値を0から1の範囲に変換するS字型の関数です。機械学習では、予測モデルが出した生のスコアを「起こりやすさ」や「分類の判断材料」として扱いやすくするために使われます。たとえば、出力が0.8なら可能性が高い、0.2なら可能性が低い、といった読み方ができます。

シグモイド関数とは?0から1に変換するS字型の関数
シグモイド関数とは、どのような入力値でも出力を0から1の間に収める関数です。グラフにすると、左下から右上へなめらかに伸びるS字型の曲線になります。この形から、エス字曲線と呼ばれることもあります。
入力値が大きくなるほど出力は1に近づき、入力値が小さくなるほど0に近づきます。入力が0付近のときは出力が大きく変化しやすく、両端に近づくほど変化はゆるやかになります。この性質によって、単なる点数やスコアを、確率のように解釈しやすい値へ変換できます。
たとえば、あるメールが迷惑メールであるかを判定するモデルが「2」というスコアを出したとしても、そのままでは意味を読み取りにくい場合があります。シグモイド関数を通すと、おおよそ0.88のような値になり、「迷惑メールである可能性が高い」と解釈しやすくなります。
| 項目 | 内容 |
|---|---|
| 名称 | シグモイド関数 |
| 形状 | S字型のなめらかな曲線 |
| 出力範囲 | 0より大きく1より小さい値 |
| 主な用途 | 確率らしい値への変換、ロジスティック回帰、二値分類 |
| 注意点 | 出力が0から1でも、常に正確な確率を保証するわけではない |
シグモイド関数の式とグラフの読み方
代表的なシグモイド関数は、次の式で表されます。
\(f(x)=rac{1}{1+e^{-ax}} quad (a>0)\)ここで、\(x\) は入力値、\(e\) は自然対数の底、\(a\) は曲線の傾きを調整するパラメータです。\(a\) が大きいほど、0.5付近で出力が急に変化します。反対に \(a\) が小さいほど、全体としてゆるやかな曲線になります。
グラフを見るときは、まず中央の0.5に注目すると理解しやすくなります。標準的な式では、入力 \(x\) が0のとき出力は0.5になります。そこから入力が正の方向に大きくなると1へ近づき、負の方向に小さくなると0へ近づきます。
重要なのは、シグモイド関数が急に0や1へ切り替わる関数ではなく、境界付近をなめらかにつなぐ関数だという点です。このなめらかさが、機械学習モデルの学習や予測値の解釈に役立ちます。

ロジスティック回帰で確率として解釈できる理由
シグモイド関数がよく登場する代表例が、ロジスティック回帰です。ロジスティック回帰は、ある出来事が起こるかどうかを予測する手法で、購入するかしないか、病気の可能性が高いか低いか、メールが迷惑メールかどうかといった場面で使われます。
モデルは、まず特徴量からスコアを計算します。たとえば「年齢」「閲覧回数」「過去の購入履歴」などから、購入しそうかどうかを表す数値を作ります。ただし、このスコアはマイナスにもプラスにもなり得るため、そのままでは確率として扱いにくい値です。
そこで、スコアをシグモイド関数に通します。すると、どんなスコアでも0から1の範囲に収まるため、結果を「購入する確率が高い」「病気である可能性が低い」のように説明しやすくなります。予測モデルの内部スコアを、人が読める確率らしい値に変換する橋渡しがシグモイド関数の役割です。
ただし、出力が0.8だからといって、必ず現実の確率が厳密に80%であるとは限りません。学習データの偏り、特徴量の選び方、モデルの作り方によって、出力値の信頼性は変わります。実務では、予測値の校正や評価指標もあわせて確認します。

二値分類では閾値とセットで使う
シグモイド関数の出力は0から1の値ですが、分類結果として使うには基準が必要です。この基準を閾値と呼びます。たとえば閾値を0.5にすると、出力が0.5以上なら陽性、0.5未満なら陰性のように分類できます。
迷惑メール判定を例にすると、シグモイド関数の出力が0.9なら迷惑メールの可能性が高く、0.1なら通常メールの可能性が高いと考えられます。0.5付近の値は判断が難しい領域であり、モデルの精度や業務上のリスクを見ながら扱う必要があります。
閾値は常に0.5に固定するものではありません。迷惑メールを見逃したくないなら閾値を低めにし、重要なメールを誤って迷惑メールにしたくないなら閾値を高めにすることがあります。医療のスクリーニング、審査、異常検知のような場面では、見逃しと誤検知のどちらを重く見るかが重要です。
シグモイド関数は確率らしい値を出し、閾値はその値を実際の判断に変える、と分けて理解すると混乱しにくくなります。

微分できることが学習に役立つ
機械学習では、予測の誤差を小さくするために、モデルのパラメータを少しずつ調整します。この調整で重要になるのが微分です。微分は、関数がどの方向にどれくらい変化するかを知るための手がかりになります。
シグモイド関数はなめらかで微分可能な関数です。そのため、勾配降下法のような学習方法で扱いやすいという利点があります。勾配降下法では、誤差が小さくなる方向を勾配から読み取り、パラメータを少しずつ更新します。
シグモイド関数の微分は、関数の出力 \(f(x)\) を使って次のように書けます。
\(f'(x)=f(x)(1-f(x))\)この式から、出力が0や1に近いときは微分値が小さくなり、0.5付近で大きくなることが分かります。学習のしやすさと、後述する勾配消失問題の両方に関わる大切な性質です。
他の活性化関数との違いと注意点
ニューラルネットワークでは、シグモイド関数のほかにもReLU関数やtanh関数などの活性化関数が使われます。それぞれ出力範囲や学習のしやすさが異なるため、目的に合わせて選ぶ必要があります。
シグモイド関数の強みは、出力が0から1に収まるため、二値分類の出力層で確率のように解釈しやすいことです。一方で、入力が大きすぎる、または小さすぎる領域では曲線が平らになり、勾配がほとんど0になります。この状態ではパラメータ更新が進みにくくなり、勾配消失問題につながります。
tanh関数は出力が-1から1の範囲になり、中心が0になるため、シグモイド関数より扱いやすい場面があります。ReLU関数は正の入力に対して勾配が残りやすく、深いニューラルネットワークの中間層でよく使われます。ソフトマックス関数は、多クラス分類で各クラスの確率分布を出すときに使われます。
| 関数 | 主な特徴 | 向いている場面 | 注意点 |
|---|---|---|---|
| シグモイド関数 | 出力が0から1に収まる | 二値分類の出力層、ロジスティック回帰 | 両端で勾配が小さくなりやすい |
| tanh関数 | 出力が-1から1に収まる | 0中心の値を扱いたい場面 | シグモイド関数と同様に勾配消失が起こり得る |
| ReLU関数 | 正の入力をそのまま通し、負の入力を0にする | 深いニューラルネットワークの中間層 | 負の領域で勾配が0になることがある |
| ソフトマックス関数 | 複数クラスの合計が1になるように変換する | 3種類以上の分類の出力層 | 二値分類の単一出力とは役割が異なる |

シグモイド関数を使う場面・避けたい場面
シグモイド関数は、今でもロジスティック回帰や二値分類の出力層でよく使われます。出力が0から1に収まるため、予測結果を説明しやすく、閾値を使った分類にもつなげやすいからです。AIや統計を学ぶうえでも、確率予測の基本として押さえておきたい関数です。
一方で、深いニューラルネットワークの中間層に何層もシグモイド関数を使うと、勾配消失によって学習が進みにくくなることがあります。そのため、現在の実務では中間層にはReLU系の関数を使い、二値分類の出力層にシグモイド関数を使う、といった使い分けが一般的です。
また、複数のクラスから一つを選ぶ分類では、シグモイド関数よりソフトマックス関数が適していることがあります。たとえば「猫、犬、鳥のどれか」を選ぶ問題では、各クラスの確率の合計を1にしたいからです。反対に、「この画像に猫が含まれるか」「このタグが当てはまるか」のように、それぞれ独立に判定する場合はシグモイド関数が使われることがあります。
まとめ
シグモイド関数は、入力値を0から1の範囲に変換するS字型の関数です。ロジスティック回帰や二値分類では、モデルの出力を確率のように解釈し、閾値によって実際の分類へつなげる役割を持ちます。
初心者が押さえるべきポイントは、0から1に変換すること、0.5付近が判断の境界になりやすいこと、微分可能だが勾配消失に注意が必要なことです。シグモイド関数は古典的な関数ですが、確率予測や分類モデルを理解するうえでは現在も重要な基礎概念です。
ただし、機械学習では一つの関数だけで全てを解決するわけではありません。シグモイド関数、ReLU、tanh、ソフトマックス関数の違いを知り、出力層なのか中間層なのか、二値分類なのか多クラス分類なのかに応じて選ぶことが大切です。
更新履歴
| 日付 | 内容 |
|---|---|
| 2025年2月1日 | 初回公開 |
| 2026年6月13日 | 式の読み方と分類での使い分けを補い、比較表を追加 |
