統計的特徴抽出(PCA,LDA,PCS,CCA)

機械学習技術 人工知能技術 確率的生成モデル デジタルトランスフォーメーション技術 アルゴリズム 機械学習における数学 深層学習 画像情報処理技術 ノイズ除去と欠損値補間 本ブログのナビ
サマリー

画像認識技術とは、コンピュータがデジタル画像を解析し、その画像に写っている物体や人物、風景などを識別する技術のことを指し、それらに用いられる手法としては(1)特徴抽出、(2)分類、(3)ディープラーニング(DNN)等がある。この中で特徴抽出と分類が同時に実現され、また高い精度も得られる等の理由から、CNN等のDNNアルゴリズムを使うことが一般的となっている。ただし、DNNは大量の学習データが必要となるため、少量のデータしかない場合などは他のアルゴリズムを組み合わせたアプローチも検討されている。またこの画像認識技術は、セキュリティ監視、医療画像診断、自動運転技術、ロボット工学、画像検索など、多岐にわたる分野で利用される。

ここではこの画像認識技術に関して、機械学習プロフェッショナルシリーズ「画像認識」をベースに様々な手法や応用について述べている。

前回までは最初のステップである局所特徴について述べた。今回は次のステップである統計的特徴量につい述べる。

統計的特徴抽出(PCA,LDA,PCS,CCA)

実際の画像には、なんらかの外乱やノイズが加わり、外乱などの影響を受けている画像から得られた局所特徴をそのまま利用すると、期待する認織精度が得られない可能性がある。そこで、観測されるデータの確立統計的な構造に基づいて認織に有利な特徴へ変換する統計的特徴抽出が必要となる。

統計的特徴抽出とは

統計的特徴抽出(statistical feature extraction)とは、抽出した局所特徴に対して確率統計的な構造に基づいてさらに特徴抽出をおこない、ノイズや外乱の影響を受けにくい頑健な特徴に変換することを言う。統計的特徴抽出は、局所特徴だけでなく、画像認識の様々な特徴に適用可能な手法となる。

データがどのクラスに所属しているのかといった外的基準、つまり教師情報の有無により統計的特徴抽出は分類できる。外的基準がない場合の特徴抽出手法には主成分分析を利用する。また、特徴量のスケールは認識結果に大きく影響を与えるので、特徴量の正規化は重要となる。特徴量の正規化には主成分分析による白色化を利用する。一方、外的基準がある場合、クラス認識の特徴抽出にはフィッシャー線形判別分析、2変量の相関最大化には正凖相関分布、2変量の共分散最大化には偏最小2乗法を利用する。これらは一見すると異なる手法のように見えるが、相互には深く関係している。

主成分分析

まず主成分分析(priccipal component analysis、PCA)について述べる。PCAは線型空間におけるデータの分布をある基準で最もよく近似する、低次元の部分空間を求める次元削減方法となる。主成分分析に用いられる基準には、射影されたデータの分散最大化や、射影誤差の最小化などがあるが、いずれの基準を用いても得られる結果はほぼ透過となる。ここでは分散最大化を基準とした主成分分析について述べる。

主成分分析はKL展開(Karhunen-Loeve expansion)とも呼ばれ、特徴抽出のみならず、データ圧縮、データの可視化にも利用される。

まずデータ集合\(D=\{x_n \in \mathbb{R}^{D_x}\}_{n=1}^N \)を考える。データの平均\(\tilde{x}\)と共分散行列Cxxは以下のように計算できる。

\begin{eqnarray}\tilde{x}&=&\displaystyle\frac{1}{N}\sum_{n=1}^N x_n\quad(1)\\C_{xx}&=&\displaystyle\frac{1}{N}\sum_{n=1}^N (x_n-\tilde{x})(x_n-\tilde{x})^T\quad(2)\end{eqnarray}

ここで(1)式のデータ平均\(\tilde{x}\)を、データ行列を使って表す。データ行列とは、以下の式に示すようなデータを行に並べた行列となる。

\[\mathbf{X}=\begin{pmatrix}x_1^T\\\vdots\\x_N^T\end{pmatrix}\quad(3)\]

(3)式のXを使って(1)式を表すと以下のような式となる。

\[\tilde{x}=\frac{1}{N}\mathbf{X}^T\mathbf{1}_N\quad(4)\]

ここで1N=(1,…,1)Tは、要素がすべて1であるN次元のベクトルとなる。ここで、次式に示す平均偏差行列を定める。

\[\tilde{\mathbf{X}}=\mathbf{X}-\mathbf{1}_N\tilde{\mathbf{x}}^T\quad(5)\]

データ行列と平均偏差行列を用いると、式(2)の共分散行列は以下のようになる。

\[\mathbf{C}_{xx}=\frac{1}{N}\tilde{\mathbf{X}}^T\tilde{\mathbf{X}}=\frac{1}{N}\mathbf{X}^T\mathbf{X}-\tilde{\mathbf{x}}\tilde{\mathbf{x}}^T=\frac{1}{N}\mathbf{X}^T\mathbf{P}_c\mathbf{X}\quad(6)\]

ただし、\(\mathbf{P}_c=(\mathbf{I}-\frac{1}{N}\mathbf{1}_N\mathbf{1}_N^T)\)と置く。

ここで、データ集合を係数ベクトル\(\mathbf{u}\in\mathbb{R}^{D_x}\)で1次元に射影する。

\[s_n=\mathbf{u}^T(\mathbf{x}_n-\tilde(\mathbf{x}))\quad(7)\]

全データを考えると以下の式となる。

\[\mathbf{s}=\tilde{\mathbf{X}}\mathbf{u}\quad(8)\]

ここでs=(s1,s2,…,sN)Tは射影成分を並べたN次元のベクトルとなる。

次に、射影成分snの分散の最大化を考える。射影成分の分散は以下の式のように求められる。

\begin{eqnarray} var(s)&=&\displaystyle\frac{1}{N}\sum_{n=1}^N s_n^2=\frac{1}{N}\mathbf{s}^T\mathbf{s}\\&=&\frac{1}{N}(\tilde{\mathbf{X}}\mathbf{u})^T(\tilde{\mathbf{X}}\mathbf{u})=\frac{1}{N}\mathbf{u}^T\tilde{\mathbf{X}}^T\tilde{\mathbf{X}}\mathbf{u}\\&=&\mathbf{u}^T\mathbf{C}_{xx}\mathbf{u}\quad(9)\end{eqnarray}

射影軸uは方向のみに意味があり、大きさには意味がないのでuTu=1と仮定する。よって主成分分析は、係数ベクトルuのノルムが1という条件下で、射影成分の分散var[s]を最大化する以下のような問題となる。

\[max(var[s])\quad s.t.\ \mathbf{u}^T\mathbf{u}=1\quad(10)\]

この最適化はλをラグランジュ係数とする次の目的関数の停留問題に帰着する。

\[J(\mathbf{u})=\mathbf{u}^T\mathbf{C}_{xx}\mathbf{u}-\lambda(\mathbf{u}^T\mathbf{u}-1)\quad(11)\]

この目的関数をuで微分して、\(\frac{\partial J}{\partial\mathbf{u}}=0\)とすると以下のようになる。

\[\frac{\partial J}{\partial\mathbf{u}}=2\mathbf{C}_{xx}\mathbf{u}-2\lambda\mathbf{u}=0\quad(12)\]

よって最適な係数ベクトルを求める問題は、以下の固有値問題に帰着する。

\[\mathbf{C}_{xx}\mathbf{u}=\lambda\mathbf{u}\quad(13)\]

分散はvar[s]=uTCxxu=λとなるので、最大固有値に対する固有ベクトルを選択すると、分散は最大となる。この固有ベクトルを第一成分ベクトルと呼ぶ。すでに得られた主成分ベクトルに直行すると言う条件のもとで、分散を最大化することで逐次的に第2、第3の主成分ベクトルを得ることができる。

CxxのM個(M≤Dx)の固有値をλ12,…,λM1≥λ2≥…≥λM)とすると、固有値に対応する固有ベクトルu1,…,uM\((\mathbf{u}_i^T\mathbf{u}_j=\delta_{ij})\)により、M次元の主成分部分空間が得られる。

λiはuiに対応する分散と考えられるので、i番目の固有値を全体の固有値の和で割った値\(\lambda_i/\sum_{j=1}^{D_x} \lambda_j\)を累積寄与率といい、線形部分空間の次元数を決める基準として利用される。

白色化

次に主成分分析の応用として白色化(whitening)について述べる。白色化は、異なる変数を無相関化してスケールを揃える手法で、データの前処理として頻繁に利用される。具体的には以下のような式で表される。

\[s_n=\Delta^{-1/2}\mathbf{U}^T(x_n-\tilde{x})\quad(15)\]

全データをまとめると以下のようになる。

\[\mathbf{S}=\tilde{\mathbf{X}}\mathbf{U}\mathbf{\Delta}^{-1/2}\quad(16)\]

変換後のデータ集合の平均は明らかに0となり共分散行列も単位行列となる。

フィッシャー線形判別分析

次に、フィッシャー線形判別分析(Fisher linear discriminat analysis Fisher LDA)について述べる。これは、教師情報が得られた時に、クラスの分離を強調するような射影を求める次元削減方法となる。主成分分析は原空間におけるデータの分布が保持する情報をなるべく維持した次元削減ほうほうだが、主成分部分空間が必ずしも分類に有効な空間であるとは限らない。

クラス間の分離を強調するということは、同一のクラスに属するデータを近くに集め、異なるクラスに属するデータを遠くに配置すること、と考えられ、これはクラス内分散に対するクラス間分散の最大化で定式化できる。

フィシャー線形判別分析も、主成分分析と同様にクラス内分散とクラス間分散の計算式を導き出し、それらの商を最大化するためラグランジュ法を用いると、一般化固有値問題に帰着される。

正準相関分析(canonical correlation analysis、CCA)は、複数の情報源に共通して含まれる情報を抽出する次元削減方法となる。射影された2つの変量の相関が高くなるような線形部分空間をもちめる。この問題も最終的には一般化固有値問題に帰着する。

偏最小2乗法(partial least square、PLS)は正準相関分析と同様に、複数情報源に共通して含まれる情報を抽出する方法となる。違いはCCAが2変量の相関最大化で定式化されているのに対して、PLSは2変量の共分散最大化で定式化されている所になる。この問題も最終的には一般化固有値問題に帰着する。

次回はコーディングとプーリングについて述べる。

コメント

  1. […] 統計的特徴抽出 […]

  2. […] 次回は統計的特徴抽出について述べる。 […]

  3. […] 近代深層学習技術の始まりであるオートエンコーダーについての項で、ヒントンらの論文では先行例としてPCAを述べていた。今回はそのPCAについてもう少し具体的に述べる。 […]

  4. […] 機械学習プロフェッショナルシリーズ「画像認識」より。前回は統計的特徴量抽出につい述べた。今回はそれらの次のステップであるコーディングとプーリングについて述べる。 […]

  5. […] 局所特徴抽出、統計的特徴抽出、コーディングやプーリングをそれぞれ一つのモジュールとして、このモジュールを多段に重ねた構造を深い構造と呼ぶ。この深い構造を入力から出力までend-to-endで学習する手法を深層学習(deep learning)と呼ぶ。深層学習では、構成するモジュールをニューラルネットワークによって設計する事が一般的であり、ニューラルネットワークを用いた深い構造をディープニューラルネットワークによって設計する事が一般的であり、ニューラルネットワークを用いた深い構造をディープニューラルネットワーク(deep neural network)と呼ぶ。深層学習を利用する事で、前述した局所特徴抽出やコーディング手法に詳しくなくても、入力データに対して望ましい出力を予測するシステムの構築が可能となる。一方で、適切なネットワーク構造の設計やパラメータの学習が難しいことから、必要となる訓練データ量が増大することが、深層学習の利用時の問題として挙げられる。 […]

  6. […] 統計的特徴抽出 (PCA,LDA,PCS,CCA) […]

  7. […] 画像処理における局所特徴抽出、統計的特徴抽出、コーディングやプーリングをそれぞれ一つのモジュールとして、このモジュールを多段に重ねた構造を深い構造と呼ぶ。この深い構造を入力から出力までend-to-endで学習する手法を深層学習(deep learning)と呼ぶ。深層学習では、構成するモジュールをニューラルネットワークによって設計する事が一般的であり、ニューラルネットワークを用いた深い構造をディープニューラルネットワークによって設計する事が一般的であり、ニューラルネットワークを用いた深い構造をディープニューラルネットワーク(deep neural network)と呼ぶ。深層学習を利用する事で、前述した局所特徴抽出やコーディング手法に詳しくなくても、入力データに対して望ましい出力を予測するシステムの構築が可能となる。一方で、適切なネットワーク構造の設計やパラメータの学習が難しいことから、必要となる訓練データ量が増大することが、深層学習の利用時の問題として挙げられる。 […]

  8. […] 統計的処理によるノイズ低減 […]

  9. […] “トピックモデルの理論と実装“で述べているトピックモデリング手法(例: “統計的特徴抽出(PCA,LDA,PCS,CCA)“で述べているLDA、”隠れマルコフモデルの概要と各種応用事例および実装例“で述べているHMM)は、テキストデータやコミュニケーションデータなど、時間的な変化を捉えるために使用されている。これらのモデルは、トピックの変化を追跡し、将来のトピックを予測する。 […]

タイトルとURLをコピーしました