本日のまとめ
線形判別分析による教師ありデータ圧縮
- 線形判別分析(Linear Discriminant Analysis).PCAは分散が最も大きい直工成分軸を見つけるのに対し、LDAはクラスの分離を最適化する特徴部分空間を見つけ出す
- LDAは教師ありのアルゴリズム。そのため、一般的にはこちらの方が優れている
- LDAはデータが正規分布に従っていることを前提として、線形判別する
LDAの手順
- d次元のデータセットを標準化する
- クラスごとにd次元の平均ベクトルを計算する
- 平均ベクトルを使ってクラスかん変動行列Sbと、クラス内変動行列Swを生成する
- 行列Sw-1Sbの固有ベクトルと固有値を計算する
- 固有値をソートする
- d*k次元の変換行列Wを生成するために、最も大きいk個の固有ベクトルを生成し、変換行列Wを生成する
- 変換行列Wを使ってサンプルを新しい特徴空間へ射影する
平均行列の作成
- クラスラベルi の平均行列は以下のようになる
- クラス内変動行列Swは、個々のクラスiについて変動行列Siは
- クラス内変動行列を計算するときは、(定義からしても)クラスラベルが一様に分布していることが前提となる。
- していない場合は、スケーリングが必要
カーネル主成分分析を使った非線形写像
- 非線形問題を解くには、より高次元の特徴空間へ射影し、そこで線形分離可能な状態にする
- φは、もとの特徴量を別の高次元へ射影する。例としては以下のようなもの
- この高次元空間に対して、標準のPCAを適用し、より低次元の空間へデータを再び射影し、サンプルを分離する
- 上記は、非常に計算コストが高いので、「カーネルトリック」の出番となる。これにより、元の特徴空間において2つの高次元の特徴ベクトルの類似度を計算する
一般的なPCAについて
- 特徴量が標準化されているとき、共分散と、共分散行列は以下のように現れる
- カーネル主成分分析の数式展開がかなり難しい。。。。ここはかなり難しいのでいったんとばす。。
- RBFカーネルPCAの実装は、次の3つの手順にまとめることができる。
- カーネル(類似度)行列Kを計算し、そこで次の計算をする
\\
上記の計算をサンプル毎に行う(全ペア) - 以下の式を使って、Kの中心化を行う
- ガンマは、実験が必要となるので、グリッドサーチ的に求める