ソフトマックス関数

ソフトマックス関数（ソフトマックスかんすう、）は、ロジスティック関数を多次元に拡張したもの。ネットワークの出力を確率分布に変換することができるので、ニューラルネットワークの最後の活性化関数としてよく用いられる。

ソフトマックス関数は、 個の実数からなるベクトル  を入力として受け取り、入力の指数に比例する  個の確率で構成される確率分布に正規化する。つまり、ソフトマックス関数を適用することで、各成分は区間  に収まり、全ての成分の和が 1 になるため、「確率」として解釈できるようになる。入力値が大きいほど「確率」も大きい。

 に対し、標準（単位）ソフトマックス関数  は次のように定義される。
 

簡単に言えば、入力ベクトルの  の各成分  に標準的な指数関数を適用し、これらすべての指数の合計で割ることによって、値を正規化する。この正規化により、出力ベクトル  の成分の和が 1 になることが保障される。

（ネイピア数）の代わりに別の基底  を用いることもできる。  であれば、入力値が小さいほど出力される確率が高くなり、 の値を小さくすると、入力値が小さいところに集中する確率分布となる。 の場合、入力値が大きいほど出力される確率が大きくなり、 の値を大きくすると、最大の入力値が大きい位置に集中する確率分布が作成される。

実数  を用いて  ないし  と記載すると、次の表現を得る。
 

基底が固定されている分野もあれば、基底を変化させる分野もある。

解釈

Arg max の滑らかな近似 
「ソフトマックス softmax」という名前は誤解を招く恐れがある。この関数は最大値関数の滑らかな近似ではなく、Arg max関数（どのインデックスが最大値を持つかを表す関数）の滑らかな近似値である。実際、「softmax」という用語は、最大値の滑らかな近似である LogSumExp関数にも用いられる。これを明確にするために「softargmax」を好む人もいるが、機械学習では「softmax」という用語が一般的である。

関連項目 
 多項ロジット回帰
 ディリクレ分布 – カテゴリ分布をサンプリングする別の方法
 分配関数

脚注

出典

外部リンク 
 

指数関数
関数
人工ニューラルネットワーク
ロジスティック回帰
計算論的神経科学
数学に関する記事