ソフトマックス関数
, z K ) ∈ R K {\displaystyle \sigma ({\boldsymbol {z}})_{i}={\frac {e^{z_{i}}}{\textstyle \sum \limits _{j=1}^{K}e^{z_{j}}}}\quad {\text{ for }}i=1,\dotsc ,K{\text{ and }}\mathbf {z} =(z_{1},\dotsc ,z_{K})\in \mathbb {R} ^{K}}
簡単に言えば、入力ベクトルの z {\displaystyle {\boldsymbol {z}}} の各成分 z i {\displaystyle z_{i}} に標準的な指数関数を適用し、これらすべての指数の合計で割ることによって、値を正規化する。この正規化により、出力ベクトル σ ( z ) {\displaystyle \sigma ({\boldsymbol {z}})} の成分の和が 1 になることが保障される。
e(ネイピア数)の代わりに別の基底 b > 0 を用いることもできる。 0 < b < 1 であれば、入力値が小さいほど出力される確率が高くなり、b の値を小さくすると、入力値が小さいところに集中する確率分布となる。b > 1 の場合、入力値が大きいほど出力される確率が大きくなり、b の値を大きくすると、最大の入力値が大きい位置に集中する確率分布が作成される。
実数 β を用いて b = e β {\displaystyle b=e^{\beta }} ないし b = e − β {\displaystyle b=e^{-\beta }} と記載すると、次の表現を得る。
σ ( z ) i = e β z i ∑ j = 1 K e β z j or σ ( z ) i = e − β z i ∑ j = 1 K e − β z j for i = 1 , ... , K . {\displaystyle \sigma ({\boldsymbol {z}})_{i}={\frac {e^{\beta z_{i}}}{\textstyle \sum \limits _{j=1}^{K}e^{\beta z_{j}}}}{\text{ or }}\sigma ({\boldsymbol {z}})_{i}={\frac {e^{-\beta z_{i}}}{\textstyle \sum \limits _{j=1}^{K}e^{-\beta z_{j}}}}{\text{ for }}i=1,\dotsc ,K.}
基底が固定されている分野もあれば、基底を変化させる分野もある。
ソフトマックス関数(ソフトマックスかんすう、英: softmax function)は、ロジスティック関数を多次元に拡張したもの。ネットワークの出力を確率分布に変換することができるので、ニューラルネットワークの最後の活性化関数としてよく用いられる。
ソフトマックス関数は、K 個の実数からなるベクトル z を入力として受け取り、入力の指数に比例する K 個の確率で構成される確率分布に正規化する。つまり、ソフトマックス関数を適用することで、各成分は区間 (0, 1) に収まり、全ての成分の和が 1 になるため、「確率」として解釈できるようになる。入力値が大きいほど「確率」も大きい。
K > 1 に対し、標準(単位)ソフトマックス関数 σ : R K → ( 0 , 1 ) K {\displaystyle \sigma :\mathbb {R} ^{K}\to (0,1)^{K}} は次のように定義される。
σ ( z ) i = e z i ∑ j = 1 K e z j for i = 1 , ... , K and z = ( z 1 , ...