AI用語集・違い比較

シグモイド関数とソフトマックス関数の違い

シグモイド関数とはソフトマックス関数とは

最終更新日:作成:ウカトレ編集部(AIで作成し、別のAIが一次資料と照合)人による確認:未出典

結論

シグモイド関数は1つの入力を0から1の間の値に変換し、2値分類や、複数のラベルをそれぞれ独立に判定する出力に使います。ソフトマックス関数は複数の入力をまとめて変換して合計を1にそろえ、複数のクラスから1つだけを選ぶ多クラス分類の出力に使います。

比較表

シグモイド関数とソフトマックス関数の違いの比較表
観点 シグモイド関数ソフトマックス関数
式 σ(x) = 1 / (1 + exp(−x))yi = exp(zi) / (exp(z1) + … + exp(zK))
入力と出力の数 1つの値を受け取り、1つの値を返すK個の値をまとめて受け取り、K個の値を返す
出力の範囲 0から1の間各出力は0から1の間で、K個を足すと必ず1になる
出力どうしの関係 出力ごとに独立。ある出力の入力を変えても、ほかの出力は変わらない互いに依存する。ある出力が上がると、ほかの出力の合計はその分だけ下がる
出力層での主な使い道 2値分類(1ユニット)、マルチラベル分類(ラベルごとに1ユニット)多クラス分類(クラスの数だけユニット)
組み合わせる誤差関数 2値の交差エントロピー多クラスの交差エントロピー
出力層以外での使い道 LSTMやGRUのゲート(情報を通す割合)。隠れ層では勾配消失を起こしやすく、現在はReLU関数が主流Attentionの重み(どの位置にどれだけ注目するか)
2クラスの場合 1ユニットで一方のクラスの確率を出す2ユニットで出す一方のクラスの確率は、2つの入力の差をシグモイド関数に入れた値と同じ
シラバス項目 技術分野 項目12 活性化関数技術分野 項目12 活性化関数
G検定での問われ方 出力の範囲、微分の最大値と勾配消失問題、2値分類やマルチラベル分類の出力層での選択出力の合計が1になる性質、多クラス分類の出力層での選択、交差エントロピーとの組み合わせ

最終確認日:2026年11月1日

それぞれの説明

シグモイド関数

シグモイド関数は、1つの入力を0から1の間の値に変換するS字形の関数です。入力が0のとき0.5を出し、入力が大きいほど1に、小さいほど0に近づきます。出力を「当てはまる確率」として読めるので、2値分類の出力層で使います。出力層を1ユニットにして「不良品である確率」を出し、0.5以上なら不良品と判定する、といった使い方です。

1枚の画像に「屋外」「人物」「夜景」のような複数のタグを付ける判定では、タグごとにシグモイド関数を使います。各タグの確率は独立に決まるので、2つのタグに同時に高い確率を出せます。

ソフトマックス関数

ソフトマックス関数は、K個の入力をまとめて受け取り、それぞれを指数関数で正の値にしてから、全体の合計で割ります。出力はどれも0から1の間で、合計はちょうど1です。入力の大小の順番はそのまま保たれます。「犬」「猫」「鳥」のうち1つだけを選ぶ多クラス分類の出力層で使い、誤差関数には交差エントロピーを組み合わせるのが定番です。合計が1に固定されるため、あるクラスの確率が上がれば、ほかのクラスの確率の合計はその分だけ下がります。

2つの関係と選び方

2クラスの場合、ソフトマックス関数で求めた一方のクラスの確率は、2つの入力の差をシグモイド関数に入れた値と一致します。そのため2値分類は、1ユニットのシグモイド関数でも2ユニットのソフトマックス関数でも表せます。

違いが効いてくるのは3クラス以上のときです。クラスが互いに排他的ならソフトマックス関数、複数のクラスが同時に当てはまりうるならクラスごとのシグモイド関数を選びます。なお、シグモイド関数の微分は最大でも0.25です。隠れ層に使うと、層をさかのぼるたびに勾配が小さくなりやすいので、現在の隠れ層では主にReLU関数が使われます。

見分けるコツ

  1. クラスが互いに排他的かどうかで見分けます。1つだけを選ぶならソフトマックス関数、1つのデータに複数のラベルが同時に付きうるならラベルごとのシグモイド関数です。
  2. 「出力の合計が1になる」という説明はソフトマックス関数のものです。シグモイド関数を複数の出力に使っても、合計が1になるとは限りません。
  3. 2値分類は、1ユニットのシグモイド関数でも、2ユニットのソフトマックス関数でも表せます。2値分類にソフトマックス関数を使うという記述だけで、誤りと決めつけないようにします。

◯×チェック

3問

次の文が正しいか、誤りかを選んでください。

  1. ソフトマックス関数で、ほかのクラスの入力は変えずに1つのクラスの入力だけを大きくすると、ほかのすべてのクラスの出力は小さくなる。

    答えを見る

    答え ◯ 正しい

    ほかのクラスは分子が同じまま、分母の合計だけが大きくなるためです。シグモイド関数を出力ごとに使う場合は、ある出力の入力を変えても、ほかの出力は変わりません。

  2. Kクラスのソフトマックス関数に、すべて同じ値を入力すると、K個の出力はすべて1/Kになる。

    答えを見る

    答え ◯ 正しい

    指数関数の値がすべて等しくなるので、合計で割ると等分になります。3クラスなら約0.33ずつです。シグモイド関数を出力ごとに使い、すべて0を入力した場合は、各出力が0.5になります。

  3. ソフトマックス関数の出力の合計が1になるのは、関数に入れる前に入力の合計を1に正規化しておいた場合に限られる。

    答えを見る

    答え × 誤り

    指数関数で正の値にしてから、その合計で割ります。そのため、入力に負の値が含まれていても、入力の合計がいくつでも、出力の合計は必ず1になります。入力の前処理は必要ありません。

関連問題

3問
  1. #0036出力層の活性化関数の選択難易度 標準・組合せ未回答
  2. #0353ソフトマックスとシグモイドの関係難易度 応用・単一選択未回答
  3. #0352回帰の出力層の活性化関数難易度 基礎・単一選択未回答

出典

作成:ウカトレ編集部(AIで作成し、別のAIが一次資料と照合)人による確認:未 最終確認日: 対応シラバス:シラバス第1.4版 技術12

誤りを報告

ほかの違い比較

違い比較の一覧

表示設定

テーマ
文字の大きさ
問題演習