2016年1月26日火曜日

Softmax関数とシグモイド関数のこと

1次元ロジスティック回帰では以下のシグモイド関数を用いた(参照)。 \begin{equation} f_{\rm SI}(a)=\frac{1}{1+{\rm e}^{-a}} \end{equation} この式により任意の実数$a$は確率に変換される。この回帰の目的は$N$個の多次元ベクトル $\vec{x}_{i},i=1,\cdots,N$ を2分類することである。一方、多次元ロジスティック回帰では、Softmax関数 \begin{equation} f_{\rm SO}(a_{k})=\frac{{\rm e}^{a_{k}}}{\sum_{i=1}^{M}{\rm e}^{a_{i}}} \end{equation} が使われていた(参照)。この回帰の目的は$N$個の多次元ベクトル $\vec{x}_{i},i=1,\cdots,N$ を$M$分類することである。先と同様に、$M$個の実数$a_{k},k=1,\cdots,M$ はこの式により確率に変換されることになる。以下が成り立つ事に注意する。 \begin{equation} \sum_{k=1}^{M}\;f_{\rm SO}(a_{k})=1 \end{equation} それでは、$M$が$2$のとき上記のSoftmax関数とシグモイド関数はどのように対応付けられるのであろうか?

$M=2$のとき \begin{equation} f_{\rm SO}(a_{1})=\frac{{\rm e}^{a_{1}}}{{\rm e}^{a_{1}}+{\rm e}^{a_{2}}} \label{eq1} \end{equation} となる。$f_{\rm SO}(a_{2})$は$1-f_{\rm SO}(a_{1})$から求める事ができるので$f_{\rm SO}(a_{1})$だけを考える。式($\ref{eq1}$)変形すると、 \begin{eqnarray} f_{\rm SO}(a_{1})&=&\frac{1}{1+{\rm e}^{-\left(a_{1}-a_{2}\right)}}\\ &=&f_{\rm SI}(a_{1}-a_{2}) \end{eqnarray} を得る。すなわち、2変数の場合はその差だけでSoftmax関数を記述することができる。$a_{1}-a_{2}$を改めて$a$とおけばシグモイド関数に帰着する。$a_1 \gg a_2$は$a$が十分大きいことに対応し、$a_1 \ll a_2$は$a$が十分小さいことに対応する。

0 件のコメント:

コメントを投稿