【はじめてのパターン認識】第6章 線形識別関数

はじめてのパターン認識を読んでいる。
その個人的メモ。

はじめてのパターン認識

はじめてのパターン認識

線形判別分析

1次元に写像されたとき、クラス間の分布ができるだけ重ならないような写像方向を見つけるのが線形判別分析。

線形識別関数と線形判別関数の違いは、 線形識別関数がクラス分けを目的としているのに対して、線形判別関数はクラス分離をよくすることを目的として考えられていること。

フィッシャーの線形判別関数

このフィッシャーの線形判別関数の節で少し詰まったので丁寧に書き下していきたい。

フィッシャーの方法の基本的な考え方は、
クラス間変動のクラス内変動に対する比、クラス内変動・クラス間変動比を最大にする一次元軸を求めることにある。
すなわち、変換後の空間において2つのクラスがよく分離するために、変換ベクトルを求めるわけである。

例として、2クラス({(C_1, C_2)})の問題について考える。
{\mu_i}はクラス{C_i}の変換前の平均、
{n_i}はクラス{C_i}のデータサンプル数とする。

ここで変換前のクラス内変動行列{S_W}とクラス間変動行列{S_B}を以下のようにして求める。 {} $$ \begin{align} S_{W} &= \sum_{i=1,2} \sum_{x} (x-\mu_{i})(x-\mu_{i})^{t} \\ S_{B} &= \sum_{i=1,2} n_{i} (\mu_{i} - \mu)(\mu_{i} - \mu)^{t} \\ &= \frac{n_{1} n_{2}}{n} (\mu_{1} - \mu_{2})(\mu_{1} - \mu_{2})^{t} \end{align} $$

さて、{y = w^{t} x}で変換後のクラスの平均を{m_{i}}とすると、 {} $$ \begin{align} m_{i} &= \frac{1}{n_{i}} \sum_{y} y \\ &= \frac{1}{n_{i}} \sum_{x} w^{t} x \\ &= w^{t} \mu_{i} \end{align} $$ となる。 変換後の空間でのクラス内変動行列{\tilde{S}_{W}}、クラス間変動行列{\tilde{S}_{B}}も同様に求めることができる。 {} $$ \begin{align} \tilde{S}_{W} &= \sum_{i=1,2} \sum_{y} (y - \tilde{m}_{i})^{2} \\ &= w^{t} S_{W} w \\ \tilde{S}_{B} &= \sum_{i=1,2} \sum n_{i} (m_{i} - m)^{2} \\ &= \frac{n_{1} n_{2}}{n} (m_{1} - m_{2})^{2} \\ &= w^{t} S_{B} w \end{align} $$

上に述べたように、フィッシャーの判別ではクラス内変動とクラス間変動の比が大きくなるように変換{w}を定める。 これを定式化すると、 {} $$ J(w) = \frac{w^{T} S_{B} w}{w^{T} S_{W} w} $$ となる。 この式を最大化する解を求める。 そのために{w}偏微分すると、 {} $$ \frac{\partial}{\partial w} \frac{w^{T} S_{B} w}{w^{T} S_{W} w} = \frac{2}{(w^{T} S_{W} w)^{2}} \left[ (w^{T} S_{W} w) S_{B}w - (w^{T} S_{B} w) S_{W} w \right] $$ が0になればよいので、満たしておかなければならない条件は、 {} $$ (w^{T} S_{B} w) S_{W} w = (w^{T} S_{W} w) S_{B}w $$ となる。 ちなみに、線形変換{w^{T}}は方向のみに興味があるので、大きさの情報に意味はない。 二次形式の部分はスカラー値なので、無視してよい。 すなわち以下のように評価をしても良いということになる。 {} $$ S_{W} w \propto S_{B} w $$ 両辺に{S_{W}^{-1}}を左からかけて、 さらに{S_{B}w}{m_{1} - m_{2}}に比例することを用いると、 {} $$ w \propto S_{W}^{-1} S_{B} w \propto S_{W}^{-1} (m_{1} - m_{2}) $$ となる。これがフィッシャーの基準による最適な{w}となる。 この意味するところは、結局、 クラスごとの平均の差を求めて、クラス内変動行列{S_{W}}を計算して、 その逆行列を求めれば{w}は決まるということ。

{w}によって変換された特徴空間は,クラス内変動,クラス間変動比を最大にする一次元空間となる. 線形判別法で注意が必要な点は,線形判別法によって決まるのは空間のみであって,軸上に設けるべき識別のための境界は定まらないという点である. このような場合に軸上に決定境界を決定する方法は,

  1. 変換後のクラス平均の中点を境界とする方法
  2. 変換後の各クラスごとの分散で内分する方法
  3. 事前確率も考慮して内分する方法

などがある.

フィッシャーの方法の一般化

フィッシャーの方法をより一般的な形で表現するため, 変動行列の代わりに共分散行列と事前確率{C_{i}}を用いた定式化を試みる. クラス{C_{i}}の共分散行列{\Sigma_{i}}はクラス{C_{i}}に属するパターンの共分散行列であり, {} $$ Σ_{i} = \frac{1}{n_{i}} \sum (x-m_{i}) (x-m_{i})^{t} = \frac{1}{n_{i}} S_{i} $$ で定義される. クラス内共分散行列{Σ_{W}},クラス間共分散行列{Σ_{B}}{} $$ \begin{align} Σ_{W} &= \sum P(C_{i}) Σ_{i} \\ &= \sum ( P(C_{i}) \frac{1}{n_{i}} \sum (x-m_{i}) (x-m_{i})^{t} ) \\ Σ_{B} &= \sum P(C_{i}) (m_{i} - m) (m_{i} - m)^{t} \\ &= P(C_{1}) P(C_{2}) (m_{1} - m_{2}) (m_{1} - m_{2})^{t} \end{align} $$ と定義する. 変換行列{w}によって変換した空間上でも, {\tilde{Σ}_{W}}{\tilde{Σ}_{B}}を求めることができ,

{} $$ \begin{align} \tilde{Σ}_{W} &= P(C_{1}) \tilde{σ}_{1}^{2} + P(C_{2}) \tilde{σ}_{2}^{2} \end{align} $$