機械学習に詳しくなりたいブログ

機械学習や数学について勉強した内容を中心に書きます。100%趣味です。記事は数学的に厳密でなかったり誤りを含んでいるかもしれません。ご指摘頂ければ幸いです。

確率的生成モデル(1)

最小二乗法による線形識別では、出力が最大となるクラスを識別結果としていました。また、その出力と教師データとの誤差を正規分布に従うと仮定して解いているため、正しく識別することができませんでした。(参考:線形識別を最小二乗法で解く) 最小二乗法では、教師データの1ofK符号の意味は特に考慮せず、とにかく出力がこれに近くなるように解いています。これに対して1ofK符号を確率として解釈し、データはどのような分布に従って生起するのか?を考慮したモデルを確率的生成モデルと呼びます。*1

クラスC_1、クラスC_2の2クラスの問題を考えます。データ\mathbf{x}が与えられたとき、クラスC_1に属する確率は、ベイズの定理より、


\displaystyle P(C_{1}|\mathbf{x}) = \frac{P(\mathbf{x}|C_{1})P(C_{1})}{P(\mathbf{x})} \tag{1}

と書けます。事後確率P(C_{1}|\mathbf{x})を出力結果とするようなモデルを考え、これが0.5を超えるならクラスC_{1}に識別する、とします。そのようなモデルを考えたいので、右辺が\mathbf{x}の線形関数で表せると都合が良いです。

式(1)は周辺確率、確率の乗法定理を使えば(参考:条件付き確率、同時確率、周辺確率))、


\displaystyle P(C_{1}|\mathbf{x}) = \frac{P(\mathbf{x}|C_{1})P(C_{1})}{P(\mathbf{x}|C_{1})P(C_{1}) + P(\mathbf{x}|C_{2})P(C_{2})} \tag{2}

と展開できます。ここで、


\displaystyle a = \ln \frac{P(\mathbf{x}|C_{1})P(C_{1})}{P(\mathbf{x}|C_{2})P(C_{2})} \tag{3}

とすれば、


\displaystyle \exp(a) = \frac{P(\mathbf{x}|C_{1})P(C_{1})}{P(\mathbf{x}|C_{2})P(C_{2})} \tag{4}

だから、これを式(2)に代入して計算していけば


\begin{eqnarray*}

\displaystyle P(C_{1}|\mathbf{x}) &=& \frac{\exp(a)P(\mathbf{x}|C_{2})P(C_{2})}{\exp(a)P(\mathbf{x}|C_{2})P(C_{2}) + \exp(-a)P(\mathbf{x}|C_{1})P(C_{1})} \tag{5} \\
\displaystyle & =& \frac{1}{1 + \exp(-2a)\frac{P(\mathbf{x}|C_{1})P(C_{1})}{P(\mathbf{x}|C_{2})P(C_{2})}} \tag{6} \\
\displaystyle & =& \frac{1}{1+\exp(-a)} \tag{7}
\end{eqnarray*}

となります。式(7)を\sigma(a)で表し、これをシグモイド関数と呼びます。

さて、ここで式(3)が\mathbf{x}の線形関数\mathbf{w}^{T}\mathbf{x}で表すことができるなら、\mathbf{x}が与えられたとき、クラスC_{1}である確率P(C_{1}|\mathbf{x})


P(C_{1}|\mathbf{x}) = \sigma(\mathbf{w}^{T}\mathbf{x}) \tag{8}

で書けることになります。もちろん


P(C_{2}|\mathbf{x}) = 1 - \sigma(\mathbf{w}^{T}\mathbf{x}) \tag{9}

です。

ちなみにシグモイド関数は以下のような形の関数で、どのような入力でも出力は[0,1]の区間に収まっており、確率の公理を満たしていますから、確率として解釈できることが確認できます。(参考:確率の定義) ベイズの定理から出発したのだから確率として解釈できるのは当然ですが、、、。

f:id:opabinia2:20180711225557p:plain


以上より、事後確率P(C_{1}|\mathbf{x})\sigma(\mathbf{w}^{T}\mathbf{x})の出力として表せることがわかりました。前提としては、式(3)が\mathbf{w}^{T}\mathbf{x}で表せること、なのですが、これは次回確認したいと思います。→確率的生成モデル(2)

*1:この説明は、多分間違ってはいないと思いますが、なんかあまり的を射ていないような気もする