AI資格ドリル
資格を選ぶ↓

用語比較

ソフトマックス関数とシグモイド関数の違い|多クラス分類と二値分類(G検定)

ソフトマックス関数は値のベクトルを確率分布に変換する関数、シグモイド関数は1つの値を0から1の範囲に写す関数です。どちらも出力層でよく使われますが、出力が複数の値の合計に関わるかどうかが違います。

G検定の出題範囲には、活性化関数としてシグモイド関数とソフトマックス関数の両方が挙がっています。複数の出力の合計が1になるのがソフトマックス、1つの出力を0から1に写すのがシグモイドと最初に切り分けます。

このページは、ソフトマックス関数とシグモイド関数の比較に絞ります。シグモイド関数とReLU関数の違いは別ページで扱っているため、ここでは重複させません。式と性質はKerasの公式ドキュメントに基づきます。

この記事の根拠と出典

各セクションの見出しの下に、公式資料で確認した内容か編集部の整理かをラベルで示しています。 試験日・料金・申込条件・試験方式は変わることがあるため、申込前に公式サイトで確認してください。G検定の一次情報確認日: 2026-10-02。

結論

ソフトマックス関数

値のベクトルを確率分布に変換する。出力の各要素は0から1の範囲で、合計は1。exp(x) ÷ sum(exp(x))で求める。

シグモイド関数

sigmoid(x) = 1 ÷ (1 + exp(−x))。出力は常に0から1の間で、−5より小さい入力は0に近く、5より大きい入力は1に近い。

違いを表で確認

比較軸ソフトマックス関数シグモイド関数
入力値のベクトル(要素ごとにではなくベクトル全体で計算)1つの値
式exp(x) ÷ sum(exp(x))1 ÷ (1 + exp(−x))
出力の範囲各要素が0から10から1の間
出力の合計1になる要素ごとに独立で、合計が1になる保証はない
典型的な使いどころ分類ネットワークの最後の層で確率分布として解釈出力を0から1の範囲に収めたいとき

どこで迷っているかを切り分ける

01

多クラス分類の出力層を問われる人

Kerasのドキュメントは、ソフトマックスは分類ネットワークの最後の層の活性化としてよく使われ、結果を確率分布として解釈できると述べます。

02

2つの関数の関係を問われる人

Kerasのドキュメントは、シグモイドは2要素のソフトマックスで、2番目の要素を0としたものに等しいと述べます。シグモイドはソフトマックスの2要素版と見られます。

03

Transformerの注意機構を学ぶ人

内積注意でもソフトマックスが使われます。原論文は、キーの次元が大きいと内積が大きくなり、ソフトマックスが勾配の極めて小さい領域に入ると推測し、内積を√d_kで割ります。

具体例で使い分ける

例 1

3クラスの出力2、1、0にソフトマックスをかけるとき

ネットワークが3クラスそれぞれに値2、1、0を出力した場合です。

  • exp(2) ≒ 7.389、exp(1) ≒ 2.718、exp(0) = 1で、合計は約11.107です。
  • 確率は約0.665、約0.245、約0.090で、合計は1になります。

結論: 値が最大のクラスが最大の確率になり、全クラスの確率の合計は1です。

例 2

シグモイドと2要素のソフトマックスを比べるとき

入力2を、シグモイドと、要素が2と0のソフトマックスにかけた場合です。

  • シグモイドは1 ÷ (1 + exp(−2)) ≒ 0.881です。
  • ソフトマックスの1番目の要素はexp(2) ÷ (exp(2) + exp(0)) ≒ 7.389 ÷ 8.389 ≒ 0.881で、同じ値になります。

結論: シグモイドは、2番目の要素を0に固定した2要素のソフトマックスに等しい。

例 3

出力層の活性化を問う設問で、選択肢に《合計が1》があるとき

複数の出力を確率として扱いたい場合の設問です。

  • 出力の各要素が0から1で、合計が1になるのはソフトマックスの性質です。
  • 出力ごとにシグモイドをかけると、各値は0から1になりますが、合計が1になる保証はありません。

結論: 合計が1の確率分布を得るならソフトマックスと答えます。

問題文から答えを選ぶ手順

  1. 1

    出力が1つか複数かを見る

    1つの値を0から1に写すならシグモイド、値のベクトルを確率分布にするならソフトマックスです。

  2. 2

    合計の条件を確かめる

    設問に合計が1確率分布とあればソフトマックスです。

  3. 3

    二値分類との関係を確かめる

    シグモイドは2要素のソフトマックスの形で、2番目の要素を0に固定したものです。

  4. 4

    位置を確かめる

    どちらも出力層で使われますが、ソフトマックスは分類ネットワークの最後の層、Transformerの注意の重み付けでも現れます。

試験での見分け方

  • 1複数の出力の合計が1になる確率分布は、ソフトマックス。
  • 21つの値を0から1に写すのは、シグモイド。式は1 ÷ (1 + exp(−x))。
  • 3シグモイドは、2番目の要素を0としたときの2要素のソフトマックスに等しい。
  • 4ソフトマックスの入力値は、出力される確率の対数オッズに当たる。

誤答しやすい選択肢

シグモイドの出力の合計が1になると考える

修正: シグモイドは値ごとに0から1へ写すだけで、複数の出力に対して合計1を保証しません。合計1はソフトマックスの性質です。

ソフトマックスは要素ごとに独立に計算されると考える

修正: 分母にベクトル全体のexpの合計があるため、1つの要素が変わると他の要素の出力も変わります。

ソフトマックスとシグモイドを無関係な関数と考える

修正: Kerasのドキュメントは、シグモイドは2番目の要素を0とした2要素のソフトマックスに等しいと述べます。

中間層の活性化と出力層の活性化を混ぜる

修正: 出力層の活性化は、予測を確率として解釈する目的で選びます。中間層の活性化の比較は、シグモイド関数とReLU関数の違いで確認します。

確認問題

Q1出力の各要素が0から1で、合計が1になる活性化関数はどちらですか?

答え: ソフトマックス関数

Kerasのドキュメントは、ソフトマックスは値のベクトルを確率分布に変換すると述べます。

Q2シグモイド関数と等しくなるのは、どのような形のソフトマックスですか?

答え: 2要素で、2番目の要素を0としたソフトマックス

入力2なら、シグモイドもソフトマックスの1番目の要素も約0.881です。

Q3出力2、1、0にソフトマックスをかけたとき、確率の合計はいくつですか?

答え: 1(約0.665、約0.245、約0.090)

各要素のexpを、全要素のexpの合計で割るためです。

到達チェック

  • ソフトマックスの式と、出力の合計が1になる性質を言える
  • シグモイドの式と出力範囲を言える
  • シグモイドが2要素のソフトマックスに等しいと説明できる
  • 確率分布が必要な設問でソフトマックスを選べる

同じ資格で次に知りたいこと

よくある質問

Qソフトマックス関数とシグモイド関数の最大の違いは何ですか?

A

ソフトマックスは値のベクトルを合計1の確率分布にし、シグモイドは1つの値を0から1に写します。

Qシグモイド関数はソフトマックスの特別な場合ですか?

A

Kerasのドキュメントは、シグモイドは2番目の要素を0とした2要素のソフトマックスに等しいと述べます。

Qソフトマックス関数の式は?

A

ベクトルxに対して、exp(x) ÷ sum(exp(x))です。

QG検定でソフトマックス関数は出題範囲ですか?

A

はい。G検定の出題範囲の活性化関数と過学習対策の項目に、シグモイド関数、ReLU関数と並んで挙がっています。

次に見る比較

執筆: ミナト編集部(運営者情報を見る)