確率的生成モデル
線形識別を最小二乗法で解くとうまくいきません。*1 最小二乗法は誤差が正規分布に従うことを前提とした手法ですので、どのクラスに属するかという識別の問題ではこの前提が成り立っていないからです。*2 確率的生成モデルでは、データがどのような確率分布に従って生起しているのかを考慮してモデルを考えていきます。
2クラスの場合
クラス、クラスの2クラスの問題を考えます。データが与えられたとき、クラスに属する確率は、ベイズの定理より、
と書けます。事後確率を出力結果とするようなモデルを考え、これが0.5を超えるならクラスに識別する、とします。そのようなモデルを考えたいので、右辺がの線形関数で表せると都合が良いです。
式(1)は周辺確率、確率の乗法定理を使えば*3、
と展開できます。ここで、
とすれば、
だから、これを式(2)に代入して計算していけば
となり、データが与えられたとき、それがクラスに属する事後確率が式(7)のように表すことができました。これをで表し、シグモイド関数と呼びます。
さて、ここで式(3)がの線形関数で表すことができるなら、が与えられたとき、クラスである確率は
で書けることになります。もちろん
です。
シグモイド関数のグラフ
シグモイド関数は以下のような形の関数で、どのような入力でも出力は]の区間に収まっておりますので、どちらのクラスに属するか?という2値の問題を考えるのに適していますし、確率として解釈することもできます。ベイズの定理から出発したのだから確率として解釈できるのは当然ですが。
2次元データの識別を考えたとき、シグモイド関数の出力のイメージは以下の図のようになります。この出力が0.5を超えるかどうかで、どちらのクラスに属するかを判別します。そして係数を適切に求めることによって、境界である0.5の位置が調整されます。
以上より、事後確率はの出力として表せることがわかりました。前提としては式(3)がで表せることなのですが、実際に様々な分布において、式(3)がで表すことができるようです。
式(3)で登場するが唐突で、なぜシグモイド関数が出てきたのかがなんとなくすっきりしませんが、微分がしやすいとか計算上のメリットがあるようです。
代表としてが正規分布の場合にがと表せることを次に確認したいと思います。→aが線形関数で表されることの確認