Created by 2GMon
これまでは、学習データに対する誤識別率を考えていたが、この章では未知データに対して誤識別率を最小にする方法を考える
未知データに対する誤識別率を計算するために、学習データから未知データの統計的性質を推定し、それをパターン認識に適用する
身長による成人男女識別システムの例を考える
この問題では男クラスのデータの分布と女クラスのデータの分布が重なっている部分があるので、 ある特徴ベクトルを持つデータは男の場合と女の場合がある
しかし、155cmという特徴ベクトルは女クラスから出てきた確率が高く$p(155|\omega_f) > p(155|\omega_m)$、 185cmという特徴ベクトルは男クラスから出てきた確率が高い$p(185|\omega_m) > p(185|\omega_f)$と思われる。
よって、誤識別率を最小にしようとすれば入力された特徴ベクトル${\bf x}$に対して誤り確率が低いクラスを認識結果にすれば良い
特徴ベクトル${\bf x}$が入力されたという条件の下で、その結果がクラス$\omega_i$である確率を条件付き確率$P(\omega_i|{\bf x})$ で表現すると、最も誤り確率が低くなるような判定法は $$\left\{ \begin{array}{ll} P(\omega_m|{\bf x}) > P(\omega_f|{\bf x}) & \Rightarrow {\bf x} \in \omega_m \\ P(\omega_m|{\bf x}) < P(\omega_f|{\bf x}) & \Rightarrow {\bf x} \in \omega_f \end{array} \right. $$
$P(\omega_i|{\bf x})$は、特徴ベクトル${\bf x}$を観測した後で、クラス$\omega_i$である確率を表しているので事後確率という
また、この判定法を事後確率最大法あるいはベイズ判定法という
すべての特徴ベクトル${\bf x}$に対して事後確率を求めれば識別できるが、一般に統計的なパターン認識問題において 事後確率を直接求めるのは不可能
なので、ベイズの定理を用いて事後確率を求める $$P(\omega_i|{\bf x}) = \frac{p({\bf x}|\omega_i)P(\omega_i)}{p({\bf x})}$$
クラス判別のためには事後確率の大小のみがわかれば良いので、$p({\bf x})$は無視することができる $$argmax_i \frac{p({\bf x}|\omega_i)P(\omega_i)}{p({\bf x})} = argmax_i p({\bf x}|\omega_i)P(\omega_i)$$
$P(\omega_i)$は$\omega_i$が起こる確率なので、 $$P(\omega_i) = \frac{n_i}{N} \;\; (N:全データ数, n_i:クラス\omega_iに属するデータ数)$$
この確率は${\bf x}$の項を含んでおらず特徴を観測する前に求めることができるので、事前確率という
$p({\bf x}|\omega_i)$はクラス$\omega_i$において、特徴ベクトル${\bf x}$が観測される確率
ある特徴があるクラスに属する尤もらしさを表していると考えることができるので尤度という
尤度は確率密度関数で表現され、統計的な方法によるパターン認識では、この確率密度関数の形を与えられたデータから推定する
つまり、${\bf x}$が与えられれば、$p({\bf x}|\omega_i)$の値が得られるような関数$f_{\omega_i}({\bf x})$を決めるということ
身長による男女の判別という例で考えると、確率密度関数の形は平均付近に多くのデータが集まり、 平均から離れるに従ってデータが少なくなっていくものが望ましいと思われる
よって、正規分布が適している場合が多い $$p({\bf x}|\omega_i) = \frac{1}{(2 \pi)^{\frac{d}{2}} | {\sum}_i | ^ {\frac{1}{2}}} exp \left\{ -\frac{1}{2} ({\bf x} - {\bf m}_i)^t {{\sum}_i} ^{-1} ({\bf x} - {\bf m}_i) \right\}$$
正規分布は平均ベクトルと共分散行列が定まれば形が決まるので、確率密度関数を推定する問題は 平均ベクトルと共分散行列を推定する問題に置き換えることができる
システムに入力される個々のデータを予測するのは不可能である
しかし、未知データの集合の性質はある程度予測可能なので、 学習データの平均ベクトルと共分散行列を確率密度関数のパラメータとするのが最も尤もらしい予測になる
このようなパラメータの推定方法を最尤推定という
また、確率密度関数の形を仮定して、そのパラメータによって推定する学習法をパラメトリックな方法という
一方、NN法のように、データの分布を考慮せずエラーに着目して識別関数を学習する方法をノンパラメトリックな方法という
確率密度関数が定まると、識別関数を$g_i({\bf x}) = p({\bf x}|\omega_i)P(\omega_i)$として、$g_i({\bf x})$が最大となる$i$ を求めることで識別ができる
右辺の確率の掛け算は小さくなりすぎてアンダーフローの可能性があるので、対数を取って $g_i({\bf x}) = log(p({\bf x}|\omega_i)) + log(P(\omega_i))$とする
$p({\bf x}|\omega_i)$に正規分布の四季を当てはめると $$\begin{array}{lll} g_i({\bf x}) & = & - \frac{1}{2} ({\bf x} - {\bf m}_i)^t {{\sum}_i}^{-1} ({\bf x} - {\bf m}_i) \\ & & - \frac{1}{2} log|{\sum}_i| - \frac{d}{2} log 2 \pi + log P(\omega_i) \\ & = & - \frac{1}{2} {\bf x}^t {{\sum}_i}^{-1} {\bf x} + {\bf x}^t {{\sum}_i}^{-1} {\bf m}_i - \frac{1}{2} {\bf m}_i^t {{\sum}_i}^{-1} {\bf m}_i \\ & & - \frac{1}{2} log |{\sum}_i| - \frac{d}{2} log 2 \pi + log P(\omega_i) \end{array}$$
第1項より、この識別関数は${\bf x}$の二次関数になるので、2クラスの場合は決定境界が二次曲面になる
共分散行列${\sum}_i$を書くクラス共通として${\sum}_0$とすると、識別関数の第1項は $- \frac{1}{2} {\bf x}^t {\sum}_0^{-1} {\bf x}$となって全クラス共通の値になるので無視できるので、以下のような一次関数になる $$g_i({\bf x}) = {\bf x}^t {{\sum}_0}^{-1} {\bf m}_i - \frac{1}{2} {\bf m}_i^t {\sum}_0^{-1} {\bf m}_i + log P(\omega_i)$$
データの広がり方が全クラス等しいと仮定すれば、決定境界は超平面になる
さらに、正規化によって共分散行列を単位行列にし、事前確率$P(\omega_i)$が全クラスで等しいとすると$g_i({\bf x}) = {\bf m}_i^t {\bf x} - \frac{1}{2}||{\bf m}_i||^2$ となり、各クラスの平均ベクトルをプロトタイプとしたNN方と同じになる