PCA


※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

概略

PCA(Principal Component Analysis)は日本語では主成分分析と呼ばれる。次元縮約の代表的な方法。データの分散が大きい軸にデータを射影することで次元を減らす。計算上は固有値問題を解くことになる。

導出

導出にはいくつかの方法がある。ここでは1次元に縮約する場合について、分散最大化に基づいて導出する(PRMLでいえば12.1.1)。

導出の流れ

ある軸を表す長さが1のベクトルu上にデータx_i \in Xを射影してみる。で、射影されたデータの分散を求める。そして、分散が最大になるuを選ぶ最適化問題としてとらえなおすと、情報量の損失が少ない軸を選ぶことができる。

射影された軸上の分散

ux_iの内積が|u||x_i|\cos\theta = |x_i|\cos\thetaであることを考えて、軸u上に射影されたx_iの位置は下記となる。

 \begin{document}
u^{T}x_i 
\end{document}

さらに射影された軸上の分散Vは次式で表せる。なお、Sはデータの分散共分散行列となっている。

 \begin{document} \begin{split}
V&=\frac{1}{N}\sum_{i}\{u^{T}x_i - u^{T}\overline{x}\}^2\\
&= \frac{1}{N}\sum_{i}\{u^{T}(x_i - \overline{x})(x_i - \overline{x})^{T}u\}\\
&= u^{T}\{\frac{1}{N}\sum_{i}(x_i - \overline{x})(x_i - \overline{x})^{T}\}u\\
&= u^{T}Su
\end{split} \end{document}

よって、この分散を最大化するuを選べばよい。

軸の算出

分散Vの最大化にあたって、uの大きさが1であることを考慮する必要がある。それを踏まえ、ラグランジュ未定乗数法を使うと、次式が目的関数として得られる。

 \begin{document} \begin{split}
L = u^{T}Su + \lambda(1-u^{T}u)
\end{split} \end{document}

この式はuの2次形式(符合は正)となっているので、uについて偏微分した式を0とした解で与えられる極値において最小となる。
よって、uは次式を満たす。

 \begin{document} \begin{split}
Su = \lambda u
\end{split} \end{document}

よって、軸はSに対する固有ベクトルを求めることに等しい。さらに、\lambda=u^TSu=Vであることから、最も情報損失の小さい軸を表すベクトル(第一主成分と呼ばれる)は、最大の固有値に対応する固有ベクトルとなる。

M次元への拡張

PRMLのWWWに公開された演習問題の答えにもあるように、これまで選んだ軸を表すベクトルと直交するベクトルを選ぶという条件を加えると、これまで選ばなかった固有ベクトルの中で最大の固有値に対応する固有ベクトルを選ぶという感じとなる。つまり、大きな固有値に対応するベクトルを選べばよい。
|新しいページ|検索|ページ一覧|RSS|@ウィキご利用ガイド | 管理者にお問合せ
|ログイン|


統計・機械学習


計算機


プログラミング



Raspberry Pi


その他



工事中


関係ない話題


管理者用



プロフィール

但馬慶行
(TAJIMA Yoshiyuki)

機械学習とロボットを趣味で勉強中。
連絡先はトップページ