takahiro_itazuriの公倍数的ブログ

本やWebを通して学習したことをまとめるブログです。最大公約数(つまり、共通部分)的なという表現と対比して、「なるべく包括的にカバーしつつ、更に+αの要素も加えられたらいいな」という意味で公倍数的ブログと名付けました。

主成分分析(PCA)

主成分分析の定式化

 n次元空間における主成分の軸を w_1, w_2, \cdots, w_nとする。
 xの各軸への写像 yは次式で与えられる。
\begin{align}
y_{1} &= w_{11} x_{1} + w_{12} x_{2} + \cdots + w_{1n} x_{n} = w_1^{T} \vec{x} \\
y_{2} &= w_{21} x_{1} + w_{22} x_{2} + \cdots + w_{2n} x_{n} = w_2^{T} \vec{x} \\
\vdots \\
y_{n} &= w_{n1} x_{1} + w_{n2} x_{2} + \cdots + w_{nn} x_{n} = w_n^{T} \vec{x} \\
\end{align}
ただし、
\begin{align}
w_{i}^{T} w_j = \delta_{ij}
\end{align}
ここでPCAとは、分散が最大となる方向ベクトル w_1, w_2, \cdots, w_nを求める問題である。
\begin{align}
y=W^T x
\end{align}

最小二乗法による主成分分析

平均を引いたサンプル点 x_j(j=1, 2, \cdots, N)とする。
 x_jの部分空間 w_1, w_2, \cdots, w_m (m \leq n)への写像 \hat{x}_j
\begin{align}
\hat{x}_j = y_1 w_1 + y_2 w_2 + \cdots + y_m w_m = \sum_{i=1}^{m} w_{i}^{T} x_j w_i
\end{align}
で与えられる。ここで、全てのサンプル点に対して、サンプル点とその写像との距離関数を次式で定義する。
\begin{align}
E(w_i) &= \sum_{j=1}^{N} || x_j - \hat{x}_j || \\
&= \sum_{j=1}^{N} || x_j - \sum_{i=1}^{m} w_i^T x_j w_i || \\
&= \sum_{j=1}^{N}||x_j||^2 - 2 \sum_{j=1}^{N} \sum_{i=1}^{m} w_i^T x_j x_j^T w_i + \sum_{j=1}^{N} \sum_{i=1}^{m} w_i^T x_j x_j^T w_i \\
&= \sum_{j=1}^{N}||x_j||^2 - \sum_{j=1}^{N} \sum_{i=1}^{m} w_i^T x_j x_j^T w_i
\end{align}
ここで
\begin{align}S = \sum_{j=1}^{N}x_j x_j^T \end{align}
は共分散行列である。
ここで w_iの関数でない部分を取り除くと、 E(w_i)の最小化と
\begin{align} \sum_{i=1}^{m} w_i^T S w_i \end{align}
の最大化は同等である。したがってPCAは以下の拘束条件付き最適化問題となる。
\begin{align} max \sum_{i=1}^{m} w_i^T S w_i \end{align}
subject
\begin{align} ||w_i||^2 = 1 (i=1, 2, \cdots, m) \end{align}
これをLagrangeの未定乗数法を用いて解く。
\begin{align} L(w_1, w_2, \cdots, w_m) = \sum_{i=1}^{m} w_i^T S w_i - \sum_{i=1}^{m} \lambda_i (w_i^T w_i - 1) \end{align}
 w_iについて偏微分を取ると
\begin{align} \frac{1}{2} \frac{\partial L}{\partial w_1} = S w_i - \lambda_i w_i = 0 \end{align}
\begin{align} S w_i = \lambda_i w_i \end{align}
以上から w_1, w_2, \cdots, w_mは共分散行列 S固有ベクトルとなる。
ここで yの共分散行列 S_y
\begin{align} S_y = \sum_{j}^{N} y y^T = W^T S_x W = \begin{bmatrix}\lambda_1 & & & \\ & \lambda_2 & & \\ & & \ddots & \\ & & & \lambda_m \end{bmatrix} \end{align}
したがって、共分散行列 S_x固有値問題を解くことに匹敵する。

ちなみに主成分分析はデータが正規分布に従っていることを仮定している。
そうでない場合を扱う場合、独立成分分析が主流となっている。