線形次元削減 (Linear Dimensionality reduction)

記事を共有する:

1. 概要

線形次元削減(Linear Dimensionality Reduction)とは,特徴ベクトルの次元削減のうち,線形の手法のことを言う(例:PCA,LDAなど)

この記事では,古典的な線形次元削減手法のうち代表的なものを列挙する.

次元削減(Dimensionality reduction)とは,元のデータセットの分布の情報を保持したまま,高次元特徴ベクトルを低次元ベクトルに削減することを指す.具体的な手順としては,(高次元の)特徴ベクトル$\bf{x}^i \in \mathcal{R}^d$N個から構成されるデータセット$D = \{ \bf{x}_{1},\bf{x}_{2},\ldots,\bf{x}_{N}\}$を用いて,$\bf{x}^i$ベクトルが表す分布や構造をなるべく保持したまま,低次元数k( < d)の「特徴の総数が削減された」特徴ベクトル$\bf{\hat{x}} \in \mathcal{R}^k$を得る処理を行う.この次元削減済みのその後は予測モデルの学習およびテストに使用する.

1.1 記事の構成

以降の各節では,以下のような各アルゴリズムの概要を紹介する:

  • 2.1 主成分分析(PCA)
  • 2.2 線形判別分析(LDA)
  • 2.3 正準相関分析(CCA)
  • (※ 2.4 NMF をのちに追加するかもしれない)

各アルゴリズムの詳細については,書籍やWikipediaなど外部リソースで参照,学習していただきたい(記事数が増えてきてサイトらしくなってきたら,各アルゴリズムの個別記事も書く予定).

統計分野等で古くから用いられ続けてきた「主成分分析(PCA)」など,相関行列へのガウス分布当てはめを通じて,元の特徴ベクトル空間を部分空間へ射影する各手法は,各種統計やデータ解析でも広く用いられてきた.一方で,音源分離目的で当初登場した独立成分分析(ICA)や非負値行列分解(NMF)など,音・波形を処理するために最初登場した信号処理分野由来の次元削減手法も多い.

2. 代表的な線形次元削減の手法

2.1 主成分分析(Principal component analysis:PCA)

PCA(主成分分析)は,線形部分空間の射影を求めることで次元削減を行う,最も基礎的で基本的な手法である.各次元の特徴ごとにゼロ平均化した特徴ベクトルに対して多次元ガウス分布を当てはめることで,データ分布の分散が最大になる方向に空間全体を回転し,射影後はその新しい「お互いの相関回転前よりも少なくなった」基底ベクトルによる空間を通じてデータを表現できるようになる.

具体的な処理としては,共分散行列もしくは相関行列をデータセットから計算し,行列を固有値分解(SVD)することで固有ベクトル・固有値として部分空間を得る.

変換後の線形部分空間においては,上位の分散量を持つK個の特徴がデータ分布を最も大きく変動させる,主要要素(Principal Component)となっており,変換前よりそれらの主要要素の影響力が大きい空間に各サンプルが射影できる.以後その軸の方向に,つまりは各主成分の変化に沿って,データサンプルを変化させることが可能となる.

よって,このうち分散が上位のK次元のみ残して残りの(N-K)次元は破棄したK次元の特徴ベクトルを次元削減結果のベクトル(空間)として新たに取得でき,この情報があまり削減されないまま少数の主成分特徴のみで構成された特徴ベクトルによりその後のパターン認識処理を行うことが可能となる.

2.2 線形判別分析(Linear discriminant analysis)

(フィッシャーの)線形判別分析は,2クラス分類問題において,教師ラベル$y \in {0,1}$も使用しながら,各クラスで個別にガウス分布を当てはめて,識別的な線形部分空間を推定する手法である.「判別分析」と名付けられているくらいで,線形の識別境界を作るので,次元削減後に識別器として使用することができる.

教師なしの手法のPCAと違い,LDAはバイナリラベル付きのデータを対象とする教師あり手法である.よって,クラス情報を加味しながら最も適した射影を推定する.まず最初に,各クラスのデータのみで「クラス内共分散」を算出し,今度は2クラス間で「クラス間共分散」も算出しておく.そして,「クラス内共分散に対するクラス間共分散の比率」を最大化することにより,2つのクラス(のガウス分布)の識別性能が最も良い,「同一クラス同士は近づいて,異なるクラス同士は離れる方向」に直行基底を持つ空間に射影することができる.射影後の各サンプルを線形識別することで,2クラス間を一番識別できる部分空間において(元の空間より)識別制度の良い処理を行うことができるようになる.

2.3 正準相関分析 (Canonical Correlation Analysis)

正準相関分析では.異なる2つのモーダル間で個別にデータセットAとBから計算した部分空間を元に,射影後の相関が高くなるような共通の正準な(Canonical)線形部分空間を求める.この相関が高い共通部分空間を用いて,2モーダル間や2ビュー間で部分空間同士の位置合わせを行い,異なるモーダルやビュー間で,部分空間特徴ベクトルを連動させる手法である.

CCAで取得された結果の「共通部分空間」は,2モーダルの個別の部分空間ベクトル同士が最も相関する部分空間が推定されているので,この共通部分ベクトル空間は2モーダルが連動して起こるベクトルの変化を把握できている空間である.

そのため,例えば画像と言語の間をマルチモーダル認識の初期の頃に,CCAは2モーダルを共有部分空間(の次元削減されたベクトル)で表現する目的でよく用いられてきた.また画像認識においても,複数視点画像からの認識問題(マルチビュー認識)などでCCAは有効である.例えば,対象物体の各視点のシルエットを対応づけておきCCAすると,各視点から別視点のシルエットを同時に生成できるような「複数ビューの変化を共有して把握した部分空間」を学習することができる.

3. 画像認識での応用例: 「固有顔」「フィッシャー顔」

画像認識・コンピュータビジョンにおいて,線形次元削減の応用例としてまず思いつくのは,顔認識目的の「固有顔(Eigen Face)」および「フィッシャー顔(Fisher Face)」である.位置合わせ/スケール正規化を行なった顔画像データセットに対してPCAやLDAを行い,顔画像の線形部分空間を作って次元削減を行い,認識処理に役立てる方法である.

固有顔の処理では.まず事前準備として,あらかじめ顔のスケールと中心や目・鼻位置がおおよそ位置合わせされた同サイズで複数人の顔画像群を用意する.更に位置合わせをよくしておきたい場合は.目・鼻・口位置などをランドマークを用いてProcrustes Analysisと呼ばれるアルゴリズムでランドマークを用いた位置合わせをしておく.

「固有顔」では,その下準備がalignement済みのモノクロ顔画像ベクトル群にPCAを行うことで,それらの顔画像の主要な変化具合を示した主成分ベクトル群(=部分空間)が手に入る.その後は,分散値が大きな上位の主成分ベクトルのみで構成した「次元削減済み低次元特徴ベクトル」を用いて,頑健で高速な各種認顔識処理(例えば表情認識やID認識など)を行う.

OpenCVのcontribモジュールにEigenFace(固有顔)とFisherFace(LDA)を実行できるFaceRecognierクラスが提供されており,このドキュメントに可視化がされているので参考になると思う.線形次元削減手法や潜在グラフィカルモデル手法で部分空間を求めておくと,部分空間上でベクトルの値を任意の値に連続的に変えながら画像を再構成した画像を目で見てデバッグもできて便利である.

References

  • “Machine Learning: An Algorithmic Perspective, Second Edition”, Stephen Marsland, Chapman and Hall/CRC ,2014.
  • “Machine Learning: A Probabilistic Perspective”, Kevin Patrick Murphy, MITPress, 2013.
  • 「画像認識」原田達也,講談社,2017.

外部リンク