ベイズ識別規則と識別関数法

うぱうぱ~!

今回は機械学習の一部であるベイズ識別について話します。ベイズ識別は「教師あり学習」に用いられます。ベイズ識別は事前知識(事前確率)とデータ(尤度)を組み合わせることで事後確率を推定します。これにより新しいデータのクラスを予測することが可能になります。

パターン認識では、「識別関数法」は重要な概念になります。その識別関数法を構築するのがベイズ識別となっています。なのでこれらの関係について見ていきましょう。

  • 識別関数法とは?
  • ベイズ識別とは?損失関数とは?
  • 識別関数法とベイズ識別の関係

識別関数法とは?

事前知識として、c_{1},c_{2},…,c_{M}に対して、ある関数g_{1}(x),g_{2}(x),…,g_{M}(x)を対応させる。これはそれぞれのクラスにおいて関数を設定し、入力データを直接的に識別するための関数を学習し、その関数を用いてデータの分類や認識を行います。つまり、

識別関数は入力データの特徴を抽出し、それに基づいて各クラスに対する識別スコア(確率)を計算します。

このスコアから最も大きかったものにクラスを分類することを識別関数法といいます。

具体例を示します。ある入力データxに対して、g_{1}(x)=0.2,g_{2}(x)=0.7だとする。この際、最も識別関数の出力が大きいクラスに判別するので今回はクラス2に分類することになります。

ベイズ識別関数とは?損失関数とは?

ベイズ識別には損失関数があります。損失関数とは、クラスを間違えたときの損失の値のことです。

損失関数

 l(c,c'):クラスc'をcと謝ったときに生じる損失

この損失がなるべく少ない方がいいのは分かると思いますが、ここに平均損失という考えをします。平均損失とは損失に対して確率分布を当てはめることをいいます。

平均損失

L(c|x)=\sum{l(c,c')P(c'|x)}

P(c'|x)はある入力データxの条件の下で、クラスc'が発生する確率を示しています。

また、ベイズの定理は

P(c|x)=\frac{p(x|c)P(c)}{p(x)}と表すことができます。

ベイズ識別関数とはベイズの定理を用いてデータの分類や識別を行うための関数です。ベイズの識別関数は入力データの特徴を元に各クラスの事後確率を推定しそれに基づいてデータを分類するための決定境界を定義します。

識別関数とベイズ識別の関係

識別関数は

g_{i}(x)=p(x|c_{i})P(c_{i})
g_{i}(x)=logp(x|c_{i})+logP(c_{i})
と定義した識別関数法=事後確率最大のベイズ識別です。後はP(c|x)もしくはp(x|c)が推定で切ればパータン認識の問題はベイズ識別で解決できます。

ここで特徴ベクトルを正規分布と仮定すると、各クラスを判別する識別境界は二次関数となります。また分散共分散行列が同じ二次元正規分布の場合の識別境界は直線となります。

まとめると

識別関数はクラスごとにあり、入力値に対して最も大きい出力結果を該当クラスとします。またベイズ識別は損失関数を最小に使用とし、ベイズ識別と識別関数は関係しています。識別関数は損失関数を持ち、その最小化を行い関数を設定している。そして入力値を与えたときに識別を行います。もう一度いいますが、これは教師あり学習に利用されます。