logo

ディープラーニングにおけるソフトマックス関数 📂機械学習

ディープラーニングにおけるソフトマックス関数

定義

$\mathbf{x} := (x_{1} , \cdots , x_{n}) \in \mathbb{R}^{n}$ としよう。

$\displaystyle \sigma_{j} ( \mathbf{x} ) = {{ e^{x_{j}} } \over {\sum_{i=1}^{n} e^{x_{i}} }}$ に対して、$\sigma ( \mathbf{x} ) := \left( \sigma_{1} (\mathbf{x}) , \cdots , \sigma_{n} (\mathbf{x} ) \right)$のように定義された$\sigma : \mathbb{R}^{n} \to (0,1)^{n}$をソフトマックスsoftmaxと呼ぶ。

説明

ソフトマックス関数は、定義域が$\mathbb{R}^{n}$である、活性化関数の一種である。これは、ベクトルを入力として受け取り、その値を正規化するために使用される。どんな$\mathbf{x} \in \mathbb{R}$であっても、$\sigma ( \mathbf{x} )$の全ての成分は$0$と$1$の間の値で、全てを合計すると正確に$1$になる。

この特性は、確率と似ており、実際に人工ニューラルネットワークを実装する際には、分類問題に便利に使用される。