【徹底解説】主成分分析が分散共分散行列の固有値問題に帰着する理由

本記事は機械学習の徹底解説シリーズに含まれます。

初学者の分かりやすさを優先するため,多少正確でない表現が混在することがあります。もし致命的な間違いがあればご指摘いただけると助かります。

目次

はじめに

本稿では,主成分分析が分散共分散行列の固有値問題に帰着する理由をお伝えします。主成分分析はデータ分析における「キホンのキ」ですが,線形代数や微積分という観点から見たときは,非常に良質な練習問題になります。そこで今回は,主成分分析を線形代数における固有値問題という観点から眺めてみます。

そもそも,主成分分析は正規直交基底への正射影だと考えることができます。どのような正規直交基底を選ぶかは,以下の2通りが考えられます。

  1. 正射影後のデータの分散が最大になる
  2. 正射影前後のデータの二乗誤差を最小にする

これらの二通りの方針について,どちらも固有値問題に帰着することを示します。

証明

下準備

まずは,両方針に共通して正射影前のデータと正射影後のデータを数学的に表現しておきましょう。正射影先の$D$次元単位縦ベクトルを$\vu\in\mR^{D\times 1}$,$D$次元$N$サンプルデータを$\vx\in\mR^{D\times N}$とします。正射影の定義より,$\vu$上への$\vx_{n}$の正射影の長さは$\vu^{T}\vx_{n}$となり,正射影ベクトルは$(\vu^{T}\vx_{n})\vu$と表されます。

定義より,正射影前の平均ベクトル$\vmu\in\mR^{D\times 1}$と分散共分散行列$\Sigma\in\mR^{D\times D}$は,

\begin{align}
\vmu &= \frac{1}{N}\sum_{n=1}^{N} \vx_{n},\quad
\Sigma = \frac{1}{N} \sum_{n=1}^{N} (\vx_n - \vmu)(\vx_n - \vmu)^T
\end{align}

となり,正射影後の平均値$\hat{\mu}$は以下のように表されます。

\begin{align}
\hat{\mu}
&= \frac{1}{N}\sum_{n=1}^{N}\vu^{T}\vx_{n}
= \vu^T \frac{1}{N}\sum_{n=1}^{N} \vx_n
= \vu^{T}\vmu
\end{align}

ただし,$\vu^{T}\vmu$はスカラーであることに注意してください。同様に,正射影後の分散$\hat{\sigma}^{2}$は

\begin{align}
\hat{\sigma}^{2}
&= \frac{1}{N}\sum_{n=1}^{N}(\vu^{T}\vx_{n}-\vu^{T}\vmu)^{2} \\[0.7em]
&= \frac{1}{N}\sum_{n=1}^{N}(\vu^{T}\vx_{n}-\vu^{T}\vmu)(\vu^{T}\vx_{n}-\vu^{T}\vmu)^{T} \\[0.7em]
&= \frac{1}{N}\sum_{n=1}^{N}(\vu^{T}\vx_{n}-\vu^{T}\vmu)(\vx_{n}^{T}\vu-\vmu^{T}\vu) \\[0.7em]
&= \vu^{T}\left\{\frac{1}{N}\sum_{n=1}^{N}(\vx_{n}-\vmu)(\vx_{n}-\vmu)^{T}\right\}\vu
= \vu^{T}\Sigma\vu
\end{align}

と表されます。ここから,各方針に枝分かれしていきます。

分散最大

$\|\vu\|{=}\vu^{T}\vu{=}1$という条件下で$\vu^T \Sigma\vu$を最大化します。条件付きの最大最小問題ですので,ラグランジュの未定乗数法を利用しましょう。目的関数$L$は,

\begin{align}
L(\vu, \lambda) &= \vu^{T}\Sigma\vu - \lambda(\vu^{T}\vu-1)
\end{align}

と表されます。$L$を$\vu$で偏微分して$0$とおくと,スカラーのベクトルによる微分の公式より,

\begin{align}
\frac{\partial L}{\partial \vu}
&= \left(\Sigma + \Sigma^{T}\right)\vu - \lambda\left(\mI + \mI^{T}\right)\vu
= 2(\Sigma\vu - \lambda\vu) = 0
\end{align}

が得られます。すなわち,

\begin{align}
\lambda\vu=\Sigma\vu\label{偏微分の結果}
\end{align}

が得られます。この時点で固有方程式は得られているのですが,あえて$\lambda$に意味づけをしましょう。式($\ref{偏微分の結果}$)の両辺に左から$\vu^{T}$をかけると,$\vu^{T}\vu=1$より

\begin{align}
\lambda &= \vu^{T}\Sigma\vu = \hat{\Sigma}
\end{align}

が得られます。つまり,$\lambda$は正射影後のデータに対する分散そのものだということです。今回の目的が正射影後の分散を最大にすることであったことを踏まえると,$\vu$は$\Sigma$の最大固有値$\lambda$に対する固有ベクトルになることが分かりました。

これを$2$次元以上へ拡張する場合は,グラム・シュミットの正規直交化法を用いて$\vu_{1}$に直交する基底$\vu_{2}$を構成してから同じ議論を行います。正射影後の分散は大きい順に選ばれていきますので,正規直交基底$(\vu_1,\cdots,\vu_{\tilde{D}})$は$\Sigma$の固有値を大きい順に並べた$(\lambda_{1},\cdots,\lambda_{\tilde{D}})$に対応する固有ベクトルとして与えられることが示されました。

二乗誤差最小

す。$\vu^{T}\vx_{n}$がスカラーであることに注意し,正射影前後のデータに対して二乗誤差$\varepsilon^{2}$を計算します。

\begin{align}
\varepsilon^{2}
&= \sum_{n=1}^{N}\|\vx_{n}-(\vu^{T}\vx_{n})\vu\|^{2} \\[0.7em]
&= \sum_{n=1}^{N} \left\{\vx_{n} - (\vu^{T}\vx_{n})\vu\right\}^{T}\left\{\vx_{n}-(\vu^{T}\vx_{n})\vu\right\}\\[0.7em]
&= \sum_{n=1}^{N} \left\{\vx_{n}^{T} - (\vu^{T}\vx_{n})\vu^{T}\right\}\left\{\vx_{n}-(\vu^{T}\vx_{n})\vu\right\}\\[0.7em]
&= \sum_{n=1}^{N} \left\{\vx_{n}^{T}\vx_{n}-2(\vu^{T}\vx_{n})\vu^{T}\vx_{n}+(\vu^{T}\vx_{n})^{2}\|\vu\|^{2}\right\}\\[0.7em]
&= \sum_{n=1}^{N} \left\{\vx_{n}^{T}\vx_{n}- (\vu^{T}\vx_{n})^{2}\right\}
\propto \sum_{n=1}^{N} - (\vu^{T}\vx_{n})^{2}\label{二乗誤差}
\end{align}

ただし,$\vx_{n}^{T}\vx_{n}$が定数であることを利用しました。ここで,式($\ref{二乗誤差}$)を変形すると,

\begin{align}
\varepsilon^{2}
&\propto -\frac{1}{N}\sum_{n=1}^{N} (\vu^{T}\vx_{n}-\vu^{T}\vmu+\vu^{T}\vmu)^{2}\\[0.7em]
&= -\frac{1}{N}\sum_{n=1}^{N}\left[\left\{\vu^{T}(\vx_{n}-\vmu)\right\}^{2}+2\vu^{T}(\vx_{n}-\vmu)\vu^{T}\vmu+\left(\vu^{T}\vmu\right)^{2}\right]\\[0.7em]
&= -\frac{1}{N}\sum_{n=1}^{N}\biggl[\left\{\vu^{T}(\vx_{n}-\vmu)\right\}\left\{\vu^{T}(\vx_{n}-\vmu)\right\}+2(\vu^{T}\vx_{n})(\vu^{T}\vmu)\notag\\[0.7em]
&\quad\quad\quad\quad-2(\vu^{T}\vmu)(\vu^{T}\vmu)+(\vu^{T}\vmu)(\vu^{T}\vmu)\biggr]\\[0.7em]
&= -\frac{1}{N}\sum_{n=1}^{N}\biggl[\left\{\vu^{T}(\vx_{n}-\vmu)\right\}\left\{(\vx_{n}-\vmu)^{T}\vu\right\}+2(\vx_{n}^{T}\vu)(\vu^{T}\vmu)-(\vmu^{T}\vu)(\vu^{T}\vmu)\biggr]\\[0.7em]
&= -\frac{1}{N}\sum_{n=1}^{N}\biggl[\vu^{T}(\vx_{n}-\vmu)(\vx_{n}-\vmu)^{T}\vu+2\vx_{n}^{T}\vmu-\|\vmu\|^{2}\biggr]\\[0.7em]
&\propto -\vu^{T}\left\{\frac{1}{N}\sum_{n=1}^{N}(\vx_{n}-\vmu)(\vx_{n}-\vmu)^{T}\right\}\vu
= -\hat{\sigma}^{2}
\end{align}

ただし,$\vx_{n}^{T}\vmu$と$\|\vmu\|^{2}$が定数であることを利用しました。したがって,二乗誤差($\ref{二乗誤差}$)の最小化は,正射影後の分散$\hat{\Sigma}$の最大化と等価になることが分かりました。以上より,どちらの方針にしても,主成分分析は分散共分散行列の固有値問題に帰着することが示ました。

多次元への拡張は,分散最大化の文脈と同様にして示すことができます。

シェアはこちらからお願いします!

コメント

コメント一覧 (6件)

  • 式(3), (4) において、シグマが前の式にくっついて表示されているようです。

    • 初学者様

      ご指摘誠にありがとうございます。記事を全面的に修正しました。

    • 初学者様

      ご指摘誠にありがとうございます。記事を全面的に修正しました。

  • すごく良い記事で参考になります。
    ただ、目的関数Lの制約の部分は$\lambda(\vu^{T}\vu-1)$ですね。

コメントする

※ Please enter your comments in Japanese to distinguish from spam.

目次