ソフトマックス関数

ソフトマックス関数とは、以下の式で表される関数のことです。

\[\text{Softmax}(\boldsymbol{Z})_i=\frac{e^{\boldsymbol{Z}_i}}{\displaystyle\sum_{j=1}^{n}e^{\boldsymbol{Z}_j}}\]

ここで、\(\boldsymbol{Z}\)\(n\)個の実数を要素として持つベクトル(データ)、\(\boldsymbol{Z}_i\)はベクトルの\(i\)番目の要素、\(\text{Softmax}(\boldsymbol{Z})\)\(\boldsymbol{Z}\)のすべての要素に対して上記の計算を行なった結果得られる新しいベクトル、\(\text{Softmax}(\boldsymbol{Z})_i\)はその新しいベクトルの\(i\)番目の要素です。

ソフトマックス関数は、指数関数を利用しているため、\(\boldsymbol{Z}\)の要素間の差を大きくすることができます。特に\(\boldsymbol{Z}\)の最大値の要素を顕著に目立たせることができます。

なお、\(\text{Softmax}(\boldsymbol{Z})\)のすべての要素を足すと、1になります。

ソフトマックス関数でネイピア数を使う理由

ソフトマックス関数でネイピア数を使う理由は、ソフトマックス関数の応用において、ソフトマックス関数の微分を容易にするためです。