読み方 : ソフトマックスかんすう

ソフトマックス関数【softmax function】

概要

ソフトマックス関数とは、与えられた複数の値について指数関数を取り、各値を全体の和で割った値に変換して出力する関数。すべての値が0から1の間の値に正規化され、全体の和が1になる。確率として解釈できるため、機械学習の多クラス分類の出力などでよく用いられる。
ソフトマックス関数のイメージ画像

z1からzkまでk個の値があるとき、各々の値の指数関数(ネイピア数eの冪乗)ez1からezkまでを求める。それらの和Sを求め、各指数値を和で割った値 ez1/S, ez2/S, …, ezk/S を並べたものが出力となる。

元の値が大きいほど、対応する出力値も大きくなるが、元の値は指数として扱われるため、大きさの差が強調され、大きい値はより大きく、小さい値はより小さく評価される。出力値の和は1で、各値は0から1の間の値を取るため、元の値の大きさに応じた確率分布のように解釈することができる。

ニューラルネットワークでは、多クラス分類の最終層で各クラスに属する確率を出力する目的で広く用いられる。例えば、写真に写っている動物が何かを分類する課題について、各動物の確からしさを表す出力値が (猫:3, 犬:2, 狸:1) だった場合、これをソフトマックス関数にかけることで、(猫:0.665, 犬:0.245, 狸:0.090) のように変換される。これは結果が各動物である確率として解釈することができる。

(2025.11.27更新)