2016年1月27日水曜日

Softmax関数とシグモイド関数のこと 〜確率との関係〜

 いま、観測量$\vec{x}$がラベル$\{c_{k}\},k=1,\cdots,K$のいずれかに属している問題を考える。$\vec{x}$が実現する確率$p(\vec{x})$は \begin{equation} p(\vec{x})=\sum_{k=1}^{K} p(\vec{x}, c_{k}) \end{equation} と書くことができる。ここで、 $p(\vec{x}, c_{k})$は$\vec{x}$と$c_{k}$が同時に実現する確率である。Bayesの定理から上式の右辺は \begin{equation} p(\vec{x})=\sum_{k=1}^{K} p(\vec{x}| c_{k})\;p(c_{k}) \label{d0} \end{equation} と変形することができる。ここで、$p(\vec{x}| c_{k})$は$c_{k}$が実現しているとき$\vec{x}$が実現する事後確率、$p(c_{k})$は事前確率である。次に、$\vec{x}$が実現しているときラベルが$c_k$である事後確率を考える。Bayesの定理と式($\ref{d0}$)より \begin{eqnarray} p(c_k|\vec{x})&=&\frac{p(\vec{x}, c_{k})}{p(\vec{x})} \\ &=&\frac{p(\vec{x}| c_{k})p(c_k)}{\sum_{i} p(\vec{x}| c_{i})\;p(c_{i})} \\ &=&\frac{ {\rm e}^{a_k} }{\sum_{i} {\rm e}^{a_i}} \label{e0} \end{eqnarray} を得る。ここで \begin{eqnarray} a_k&=&\ln\left(p(\vec{x}| c_{k})p(c_k)\right) \\ &=&\ln p(\vec{x},c_{k}) \end{eqnarray} とした。式($\ref{e0}$)がSoftmax関数である。先に考えた多次元回帰では、計算の順序として最初に$a_{k}$が計算され、Softmax関数を使って確率に変換していた。$a_{k}$とは$\vec{x}$と$c_k$が同時に実現する確率$p(\vec{x},c_k)$の対数である。

 2分類の場合、式($\ref{e0}$)は \begin{equation} p(c_1|\vec{x})=\frac{ {\rm e}^{a_1} }{{\rm e}^{a_1}+{\rm e}^{a_2}} \end{equation} となる。ここで \begin{eqnarray} b&\equiv&a_1-a_2 \\ &=&\ln{\frac{p\left(\vec{x},c_1\right)}{p\left(\vec{x},c_2\right)}}\\ &=&\ln{\frac{p\left(c_1|\vec{x}\right)}{p\left(c_2|\vec{x}\right)}} \label{e1} \end{eqnarray} を導入すると \begin{equation} p(c_1|\vec{x})=\frac{1}{1+{\rm e}^{-b}} \end{equation} を得る。これはシグモイド関数である。先の1次元回帰では最初に$b$を求め、この関数により確率に変換した。

 シグモイド関数 \begin{equation} \sigma=\frac{1}{1+{\rm e}^{-b}} \end{equation} を$b$について解いた式 \begin{equation} b=\ln{\left(\frac{\sigma}{1-\sigma}\right)} \end{equation} をlogit関数と呼ぶ。

0 件のコメント:

コメントを投稿