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

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

AIの初心者

「シグモイド関数」ってなんですか?名前だけ聞くと難しそうです。

AI専門家

簡単に言うと、どんな数値でも0から1の間の値に変換する関数だよ。AIが「猫である可能性は0.8」のように判断結果を扱うとき、その確率らしい値を作る場面で役立つんだ。

AIの初心者

0から1の間にするのは、確率として見やすくするためなんですね。どんなところで使われるんですか?

AI専門家

代表例はロジスティック回帰や二値分類だね。迷惑メール判定、購入予測、診断支援のように「起こるか、起こらないか」を扱うとき、判断の強さを0から1の値に変換して使うんだよ。

シグモイド関数とは。

シグモイド関数は、入力された数値を0から1の範囲へ滑らかに変換する関数です。機械学習では、モデルが計算したスコアを「確率のように読める値」へ変換したい場面が多くあります。たとえば、0.8なら可能性が高く、0.2なら可能性が低い、といった判断に使えます。

はじめに

機械学習の出力を確率のような値に変換するイメージ

シグモイド関数は、機械学習や統計を学ぶと早い段階で登場する基本的な関数です。特に、ロジスティック回帰、二値分類、ニューラルネットワークの活性化関数を調べていると、「シグモイド関数とは何か」を理解しておく必要が出てきます。

シグモイド関数の中心的な役割は、任意の数値を0から1の範囲に収めることです。機械学習のモデルは、内部では大きな正の値や負の値を出すことがあります。そのままでは人間が判断に使いにくいため、0に近い、0.5付近、1に近い、といった形に変換します。

この性質により、迷惑メール判定なら「迷惑メールである可能性」、商品購入予測なら「購入される可能性」のように、出力を確率に近い感覚で扱えます。ただし、出力値がそのまま絶対に正しい確率になるわけではありません。学習データ、モデルの作り方、評価方法が適切であることも大切です。

シグモイド関数とは

0から1の範囲に収まるシグモイド曲線

シグモイド関数とは、入力値が小さいと0に近づき、入力値が大きいと1に近づく関数です。グラフにすると、左下から右上へ滑らかに伸びるS字型の曲線になります。このS字型の形から、シグモイド曲線とも呼ばれます。

たとえば、モデルが「このメールは迷惑メールらしい」と強く判断するほど、シグモイド関数の出力は1に近づきます。反対に「迷惑メールではなさそう」と判断するほど、出力は0に近づきます。中間の0.5付近は、どちらとも言い切りにくい状態として扱えます。

重要なのは、入力がどれほど大きくても出力は1を超えず、どれほど小さくても0を下回らないことです。分類問題では、この範囲の決まった値が扱いやすく、しきい値と比較して判定を行いやすくなります。

入力の状態 出力の傾向 分類での読み方
大きな正の値 1に近づく 該当する可能性が高い
0付近 0.5付近 判断が分かれやすい
大きな負の値 0に近づく 該当する可能性が低い

数式の読み方

シグモイド関数の式から曲線へつながる流れ

\(f(x)=\frac{1}{1+e^{-ax}}\quad(a>0)\)

シグモイド関数は、上のような式で表されます。数式が苦手な場合でも、まずは「入力値を0から1の範囲に押し込む式」と捉えれば十分です。ここで \(x\) は入力値、\(f(x)\) は出力値を表します。

\(e\) はネイピア数と呼ばれる定数で、およそ2.718です。式の中にある \(e^{-ax}\) は、\(x\) が大きくなるほど小さくなり、\(x\) が小さくなるほど大きくなります。その結果、分母全体が変化し、出力が0から1の範囲で滑らかに動きます。

\(a\) は曲線の急さを調整する値です。\(a\) が大きいほど、0.5付近で出力が急に変わります。\(a\) が小さいほど、曲線はゆるやかになります。機械学習の文脈では、このような滑らかさが、学習時の微分計算やパラメータ更新にも関わります。

機械学習での役割

機械学習では、入力データから何らかのスコアを計算し、そのスコアを使って予測します。しかし、スコアはそのままだと範囲が決まっていません。たとえば、あるデータに対して12.4、別のデータに対して-3.1のような値が出ても、それだけでは直感的に比較しにくいものです。

そこでシグモイド関数を使うと、スコアを0から1の値へ変換できます。0.9なら高い可能性、0.1なら低い可能性、0.5なら境界付近というように、判断の強さを読み取りやすくなります。分類問題でシグモイド関数がよく使われるのは、出力値をしきい値と比較しやすいからです。

また、シグモイド関数は滑らかな曲線なので、入力が少し変わると出力も少しずつ変わります。この性質は、機械学習で重みを調整するときに重要です。急に0か1へ切り替わるステップ関数と違い、変化の方向や大きさを計算しやすいため、学習に利用しやすい関数といえます。

ロジスティック回帰での使い方

特徴量からスコアを計算しシグモイド関数で確率へ変換する流れ

シグモイド関数の代表的な活用例が、ロジスティック回帰です。ロジスティック回帰は、ある出来事が起こるかどうかを予測するための手法で、迷惑メール判定、購入予測、退会予測、病気の発症リスク推定などに使われます。

ロジスティック回帰では、まず入力データの特徴をもとにスコアを計算します。メール判定なら、本文中の単語、送信元、リンクの有無などが特徴になります。購入予測なら、閲覧回数、過去の購入履歴、カート投入の有無などが特徴になります。

このスコアをシグモイド関数に通すことで、0から1の値に変換します。たとえば出力が0.8なら「購入する可能性が高い」、0.2なら「購入する可能性が低い」と読めます。ここで得られた値を使えば、広告を出す対象を絞ったり、追加確認が必要なケースを抽出したりできます。

活用例 入力データ 出力の使い方
迷惑メール判定 件名、本文、送信元、リンク 迷惑メールとして振り分けるか判断
購入予測 閲覧履歴、購買履歴、行動ログ おすすめ表示やクーポン配布に活用
診断支援 検査値、症状、年齢、既往歴 追加検査や注意喚起の判断材料にする

しきい値の設定と分類

確率のしきい値で分類結果が変わる様子

シグモイド関数の出力を実際の分類に使うときは、しきい値を決めます。しきい値とは、どちらのグループに分けるかを決める境目の値です。よく使われる例は0.5で、出力が0.5以上なら正例、0.5未満なら負例と判断します。

ただし、しきい値は常に0.5でよいわけではありません。迷惑メール判定でしきい値を低くすると、多くの迷惑メールを拾えますが、普通のメールまで迷惑メール扱いする可能性が高まります。反対にしきい値を高くすると、誤判定は減りやすい一方で、迷惑メールを見逃す可能性があります。

しきい値は、何を重視するかによって調整するものです。医療の診断支援のように見落としの影響が大きい場合と、広告配信のように多少の外れを許容できる場合では、適切な基準が変わります。精度、再現率、適合率などの評価指標を見ながら、目的に合う値を選ぶことが大切です。

場面 しきい値を低くする場合 しきい値を高くする場合
迷惑メール判定 見逃しを減らしやすい 普通のメールの誤分類を減らしやすい
購入予測 広い対象に施策を打てる 確度の高い対象に絞りやすい
診断支援 疑わしいケースを拾いやすい 追加対応の対象を厳選しやすい

ニューラルネットワークとの関係

シグモイド関数は、ニューラルネットワークの活性化関数としても知られています。活性化関数とは、各層で計算された値を次の層へ渡す前に変換する関数です。シグモイド関数を使うと、信号の強さを0から1の範囲に整えられます。

一方で、現在のニューラルネットワークでは、隠れ層にReLUなど別の活性化関数が使われることも多くあります。理由の一つは、シグモイド関数では入力が極端に大きい、または小さいと出力変化が小さくなり、学習が進みにくくなる場合があるためです。

それでも、二値分類の出力層ではシグモイド関数が今でもよく使われます。最終的な出力を0から1に収め、「正例である可能性」として扱いやすいからです。多クラス分類では、複数のクラスの確率をまとめて扱うソフトマックス関数が使われることもあります。

初心者がつまずきやすい点

まず、シグモイド関数の出力は「確率のように解釈しやすい値」ですが、モデルが常に正しい確率を出しているとは限りません。たとえば0.8と出たからといって、必ず80%の精度で当たるという意味ではありません。データの偏りやモデルの学習状況によって、出力の信頼性は変わります。

次に、しきい値を0.5に固定して考えすぎないことも重要です。0.5は分かりやすい基準ですが、現場では見逃しを減らしたいのか、誤検知を減らしたいのかによって調整します。目的が変われば、よいしきい値も変わります。

最後に、数式だけを丸暗記しようとすると理解しにくくなります。最初は、シグモイド関数を「範囲の決まっていないスコアを0から1に変換する装置」と考えると、ロジスティック回帰や分類問題との関係が追いやすくなります。

まとめ

シグモイド関数は、入力値を0から1の範囲へ変換する関数です。グラフはS字型になり、入力が大きいほど1に近づき、入力が小さいほど0に近づきます。この特徴により、機械学習では分類問題の出力を確率のように扱いやすくなります。

特にロジスティック回帰では、特徴量から計算したスコアをシグモイド関数に通し、購入する可能性、迷惑メールである可能性、病気である可能性などを0から1の値として出します。その後、しきい値と比較することで、実際の分類判断につなげます。

シグモイド関数を理解すると、ロジスティック回帰、二値分類、ニューラルネットワークの出力層など、機械学習の基礎が見通しやすくなります。数式の細部に入る前に、まずは「スコアを0から1へ滑らかに変換する関数」と押さえておくとよいでしょう。

更新履歴

日付 内容
2025年2月1日 初回公開
2026年5月26日 式の読み方、しきい値調整、関連関数との違いを補足