本日のまとめ

線形判別分析による教師ありデータ圧縮

  • 線形判別分析(Linear Discriminant Analysis).PCAは分散が最も大きい直工成分軸を見つけるのに対し、LDAはクラスの分離を最適化する特徴部分空間を見つけ出す
  • LDAは教師ありのアルゴリズム。そのため、一般的にはこちらの方が優れている
  • LDAはデータが正規分布に従っていることを前提として、線形判別する
LDAの手順
  • d次元のデータセットを標準化する
  • クラスごとにd次元の平均ベクトルを計算する
  • 平均ベクトルを使ってクラスかん変動行列Sbと、クラス内変動行列Swを生成する
  • 行列Sw-1Sbの固有ベクトル固有値を計算する
  • 固有値をソートする
  • d*k次元の変換行列Wを生成するために、最も大きいk個の固有ベクトルを生成し、変換行列Wを生成する
  • 変換行列Wを使ってサンプルを新しい特徴空間へ射影する
平均行列の作成
  • クラスラベルi の平均行列は以下のようになる

m_i = \frac{1}{n_j} \sum_{x \in D_i}^{c} x

  • クラス内変動行列Swは、個々のクラスiについて変動行列Siは

S_w = \sum_{i=1}^{c} S_i
S_i = \sum_{x \in D_i}^{c}(x - m_i ) (x_m_i)^{T} \\ 
S_w : クラス内変動行列  \\
S_i :  個々のクラスの変動行列 \\

  • クラス内変動行列を計算するときは、(定義からしても)クラスラベルが一様に分布していることが前提となる。
  • していない場合は、スケーリングが必要

カーネル主成分分析を使った非線形写像

  • 非線形問題を解くには、より高次元の特徴空間へ射影し、そこで線形分離可能な状態にする

\phi : \mathbb{R^{d}}  → \mathbb{R^{k}} (k >> d)

  • φは、もとの特徴量を別の高次元へ射影する。例としては以下のようなもの

x = [x_1 ,x_2 ]^{T} \\
↓ \phi \\
z = [ x_1^{2}, \sqrt{2x_1x_2}, x_2^{2} ]^{T} 

  • この高次元空間に対して、標準のPCAを適用し、より低次元の空間へデータを再び射影し、サンプルを分離する
  • 上記は、非常に計算コストが高いので、カーネルトリックの出番となる。これにより、元の特徴空間において2つの高次元の特徴ベクトルの類似度を計算する

    一般的なPCAについて

  • 特徴量が標準化されているとき、共分散と、共分散行列は以下のように現れる

\delta_{jk} = \frac{1}{n}\sum_{i=1}^{n} x_j^{(i)}x_k^{(i)} \\
\delta_{jk}: 特徴量j, k間の共分散 \\
\sum = \frac{1}{n}\sum_{i=1}^{n} x^{(i)}x^{(i)T} \\
\sum:共分散行列

  • カーネル主成分分析の数式展開がかなり難しい。。。。ここはかなり難しいのでいったんとばす。。
  • RBFカーネルPCAの実装は、次の3つの手順にまとめることができる。
  • カーネル(類似度)行列Kを計算し、そこで次の計算をする

\chi (x^{(i)},x^{(j)}) = exp( - \gamma (\| x^{(i)} - x^{(j)} \|^{2} )
 \\

上記の計算をサンプル毎に行う(全ペア) - 以下の式を使って、Kの中心化を行う


K^{'} = K - 1_nK - K1_n + 1_nK1_N

  • ガンマは、実験が必要となるので、グリッドサーチ的に求める