ディープラーニングや機械学習では、「この画像は猫なのか犬なのか」「この文章はポジティブかネガティブか」といった“分類”を行う場面が数多くあります。
その際に重要な役割を果たすのが ソフトマックス関数(Softmax関数) です。
ソフトマックス関数は、ニューラルネットワークの出力を「確率」として扱える形に変換するため、多クラス分類問題で広く利用されています。
この記事では、ソフトマックス関数の仕組みや特徴、具体例、シグモイド関数との違いまで、初心者にもわかりやすく解説します。
ソフトマックス関数とは?
ソフトマックス関数(Softmax Function)は、複数の数値を「合計1になる確率分布」に変換する関数です。
ニューラルネットワークでは、主に最終出力層で利用されます。
たとえばAIが画像を分析した結果、
- 猫:3
- 犬:2
- 狸:1
という数値を出力したとします。
このままでは単なる「スコア」であり、人間には解釈しにくい状態です。
そこでソフトマックス関数を使うことで、
- 猫:66.5%
- 犬:24.5%
- 狸:9.0%
のように、「どのクラスである可能性が高いか」を確率として表現できます。
ソフトマックス関数の数式
ソフトマックス関数は、以下の式で表されます。

を表します。
ソフトマックス関数の仕組み
1. 各値を指数関数に変換する
まず、各スコアを指数関数に変換します。
たとえば、
- 猫:3
- 犬:2
- 狸:1
の場合、
- e3e^3
- e2e^2
- e1e^1
を計算します。
指数関数を使うことで、大きな値はさらに強調され、小さい値との差が広がります。
2. 合計値で割る
次に、それらをすべて足し合わせ、その合計で各値を割ります。
すると、
- 全体の合計が1になる
- 各値が0〜1の範囲に収まる
という性質を持つようになります。
これにより、「確率」として扱える形になるのです。
ソフトマックス関数の特徴
出力値の合計が必ず1になる
ソフトマックス関数の最大の特徴は、出力値の合計が必ず1になる点です。
そのため、
- クラスごとの確率
- 各候補の信頼度
として解釈できます。
大きな値を強調する
ソフトマックス関数では指数関数を使うため、元の値の差が強調されます。
たとえば、
- 10
- 9
- 1
のような入力では、「10」の重要度が非常に高く評価されます。
この性質により、AIは「最も可能性の高い候補」を選択しやすくなります。
ソフトマックス関数はどこで使われる?
画像認識
画像分類AIでは、画像が何であるかを確率として出力します。
例:
- 猫:92%
- 犬:5%
- 狐:3%
自然言語処理(NLP)
文章分類や感情分析でも利用されます。
例:
- ポジティブ:80%
- ネガティブ:15%
- 中立:5%
音声認識
音声データから最適な単語候補を選ぶ際にも使われています。
ソフトマックス関数とシグモイド関数の違い
ソフトマックス関数とよく比較されるのが「シグモイド関数」です。
シグモイド関数
シグモイド関数は、1つの値を0〜1の範囲へ変換します。
主に「2択分類(二値分類)」で使われます。
例:
- スパムメールかどうか
- 不正アクセスかどうか
ソフトマックス関数
一方、ソフトマックス関数は「複数クラス分類」に適しています。
例:
- 猫・犬・鳥の分類
- 感情分類
- 手書き文字認識
つまり、
| 関数 | 用途 |
|---|---|
| シグモイド | 二値分類 |
| ソフトマックス | 多クラス分類 |
という違いがあります。
ソフトマックス関数のメリット
確率として解釈しやすい
出力値が0〜1で合計1になるため、人間にもわかりやすい結果になります。
多クラス分類に強い
複数候補の中から最適なクラスを選択する問題に適しています。
深層学習との相性が良い
クロスエントロピー損失関数と組み合わせることで、高精度な分類モデルを構築できます。
ソフトマックス関数の注意点
極端な値に影響されやすい
入力値が大きすぎる場合、特定のクラスだけが極端に高確率になることがあります。
そのため実装では、
- 最大値を引いて数値を安定化する
- オーバーフロー対策を行う
といった工夫が必要です。
必ず「どれか1つ」を選びやすい
ソフトマックスは「排他的な分類」を前提としています。
そのため、
- 画像に複数の物体が存在する
- 複数ラベルが同時に成立する
ようなケースでは不向きな場合があります。
まとめ
ソフトマックス関数は、ニューラルネットワークの出力を「確率分布」に変換する重要な活性化関数です。
特徴を整理すると、以下のようになります。
- 出力値の合計が1になる
- 多クラス分類で広く利用される
- 大きな値を強調できる
- AIの予測結果を確率として解釈できる
現在では、
- 画像認識
- 自然言語処理
- 音声認識
- レコメンドシステム
など、多くのAI技術で欠かせない存在となっています。
ディープラーニングを理解するうえで、ソフトマックス関数は非常に重要な基礎知識のひとつです。
活性化関数の役割を理解することで、AIモデルの予測の仕組みもより深く理解できるようになるでしょう。
こちらもご覧ください:Leaky ReLU関数とは?ReLUの弱点を改善した活性化関数をわかりやすく解説

