end0tknr's kipple - 新web写経開発

http://d.hatena.ne.jp/end0tknr/ から移転しました

ロジスティック回帰による二項分類/パーセプトロン (1/2)

シグモイド関数(ロジスティック関数)の理解度の整理を目的に、 2種の薬(X1, X2)投与による効果予測(解消 or not)を ロジスティック回帰による二項分類で行います。

今回は、シグモイド関数を使用した予測関数の作成と、 最尤推定による誤差関数の作成までを行います。

f:id:end0tknr:20170406095513p:plain

シグモイド関数を使用した予測関数

先程の左上図における境界関数を一次式で次のように設定します。

 \displaystyle
f(x_1, x_2) = w_0 + w_1 \cdot x_1 + w_2 \cdot x_2

次に、この f(X1, X2) による効果のある確率をシグモイド関数を使って表します。

 \displaystyle
\sigma(x) = \frac{1}{1 + e^{-x}}
\rightarrow  \underline{ P(x_1,x_2) = \sigma( f(x_1,x_2)) }
これを予測関数とします。

最尤推定の為の誤差関数 - STEP ½

次に、誤差関数を考えますが、 まず、(X1, X2)で与えられるデータは、N個あるとし、 n番目のデータを(X1n,X2n)と表すことにします。

また、n番目のデータで、効果があった or not を、 それぞれ、tn = 1, 0 としたとき、それぞれの確率は次のように表せます。

 \displaystyle
t_{n} = 1 \rightarrow  Pn = P(x1n, x2n)

 \displaystyle
t_{n} = 0 \rightarrow  Pn = 1 - P(x1n, x2n )

また、上記2式は、次のように統合できます。

 \displaystyle
Pn = ( P(x1n, x2n ) )^{tn} \cdot ( 1 - P(x1n, x2n ) )^{1-tn}

ここで、N個全てを正解する確率は、

 \displaystyle
P = P_1 \times  P_2 \times \cdots \times P_n = \prod_{n=1}^{N}P_n

のような総積である為、一旦?、誤差関数は次のようになる。

 \displaystyle
P = \underline{
     \prod_{n=1}^{N} ( P(x1n, x2n ) )^{tn} \cdot ( 1 - P(x1n, x2n ) )^{1-tn} }

最尤推定の為の誤差関数 - STEP 2/2

が、先程、作成した誤差関数は掛け算を多く含み、計算効率が悪い為

 \displaystyle  E = - \log P  \displaystyle  \log ab = \log a + \log b   \displaystyle  \log a^{n} = n \log a

を使って変形します。

 \displaystyle
E = - \log \prod_{n=1}^{N} ( P(x1n, x2n ) )^{tn} \cdot ( 1 - P(x1n, x2n ) )^{1-tn}

 \displaystyle
= \underline{
     - \sum_{n-1}^{N} ( tn \cdot \log P(x1n, x2n)) + (1-tn) \cdot \log ( 1 - P(x1n, x2n ) ) }

上記が最終的な誤差関数。