ソフトマックス関数

Softmax Function

ソフトマックス関数(Softmax Function)とは、K個の実数値のベクトルを、各要素が0〜1で合計が1となる確率分布に変換する関数です。多クラス分類の出力層で標準的に使用されます。

数式

softmax(z_i) = exp(z_i) / Σ_j exp(z_j) で定義されます。各クラスのスコア(ロジット)を指数関数で正の値に変換し、合計で割ることで確率に正規化します。

表:ソフトマックス関数の要点まとめ
ひとことで言うと複数の数値を、合計が1になる確率の形に変換する関数。
どこで使う多クラス分類の出力層。「猫70%・犬20%・鳥10%」のような形にする。
注意点確率のように見えるが、モデルの自信の度合いであり正確さの保証ではない。

温度パラメータ

ソフトマックス関数に温度パラメータTを導入し、softmax(z_i/T)とすることで出力の「鋭さ」を制御できます。Tが小さいほど確率分布が尖り(最大値のクラスに集中)、大きいほど均一な分布になります。知識蒸留などで活用されます。

図:ソフトマックスの変換
1クラスごとの点数3.2, 1.1, 0.5 など
▶
2指数を取る差を強調する
▶
3合計で割る合計が1になるよう正規化
▶
4確率として出力0.70, 0.20, 0.10

交差エントロピー損失との組み合わせ

ソフトマックスと交差エントロピー損失の組み合わせは、多クラス分類における標準的な設定です。この組み合わせでは勾配の計算が簡潔になるという数学的な利点もあります。