Processing math: 100%

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,NM分類することである。先と同様に、M個の実数a_{k},k=1,\cdots,M はこの式により確率に変換されることになる。以下が成り立つ事に注意する。 \begin{equation} \sum_{k=1}^{M}\;f_{\rm SO}(a_{k})=1 \end{equation} それでは、M2のとき上記の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_2aが十分大きいことに対応し、a_1 \ll a_2aが十分小さいことに対応する。

0 件のコメント:

コメントを投稿