Processing math: 100%

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 件のコメント:

コメントを投稿