作者:shuhuai008
PCA的核心就是对原始特征空间的重构(将一组可能线性相关的变量,通过正交变换变换成一组线性无关的变量)
两个基本的要求是最大投影方差(即找到的投影方向对于数据集投影方差最大),最小重构代价(即降维所得到的新数据与原数据相比,信息损失最小)
$$
\begin{gathered}
X=\begin{pmatrix}
x_{1} & x_{2} & \cdots & x_{N}
\end{pmatrix}^{T}_{N \times p}=\begin{pmatrix}
x_{1}^{T} \ x_{2}^{T} \ \vdots \ x_{N}^{T}
\end{pmatrix}=\begin{pmatrix}
x_{11} & x_{12} & \cdots & x_{1p} \ x_{21} & x_{22} & \cdots & x_{2p} \ \vdots & \vdots & & \vdots \ x_{N1} & x_{N2} & \cdots & x_{NP}
\end{pmatrix}_{N \times p}\
x_{i}\in \mathbb{R}^{p},i=1,2,\cdots ,N\
记1_{N}=\begin{pmatrix}1 \ 1 \ \vdots \ 1\end{pmatrix}_{N \times 1}\
\bar{x}=\frac{1}{N}X^{T}1_{N},S=\frac{1}{N}X^{T}\mathbb{H}X
\end{gathered}
$$
对于新的方向向量$u_{1}$,归零化后数据的投影为
$$
(x_{i}-\bar{x})u_{1}
$$
显然由于归零化,新的数据集$\bar{x}=0$(即对于$x_{i}-\bar{x}$数据集),因此投影方差为
$$
\begin{aligned}
J&=\frac{1}{N}\sum\limits_{i=1}^{N}[(x_{i}-\bar{x})^{T}u_{1}]^{2}-0^{2}\
&=\frac{1}{N}\sum\limits_{i=1}^{N}[(x_{i}-\bar{x})^{T}u_{1}]^{2}\
&=u_{1}^{T}\left(\sum\limits_{i=1}^{N} \frac{1}{N}(x_{i}-\bar{x})(x_{i}-\bar{x})^{T}\right)u_{1}\
&=u_{1}^{T}\cdot S \cdot u_{1}
\end{aligned}
$$
对于$\hat{u_{1}}$
$$
\begin{aligned}
\hat{u_{1}}&=\mathop{\text{argmax}\space}\limits_{u_{1}}u_{1}^{T}\cdot S \cdot u_{1}
\end{aligned}
$$
这里我们令$u_{1}^{T}u_{1}=1$,因此,根据拉格朗日数乘法有
$$
\begin{aligned}
L(u,\lambda)&=u_{1}^{T}Su_{1}+\lambda(1-u_{1}^{T}u_{1})\
\frac{\partial L(u,\lambda)}{\partial u_{1}}&=2S u_{1}-\lambda 2u_{1}=0\
S u_{1}&=\lambda u_{1}
\end{aligned}
$$
上式对于方差矩阵$S$,$u_{1}$即为特征向量,$\lambda$即为特征值。将该式代回$\hat{u_{1}}$
$$
\begin{aligned}
\hat{u_{1}}&=\mathop{\text{argmax}\space}\limits_{u_{1}}u_{1}^{T}\lambda u_{1}\
&=\mathop{\text{argmax}\space}\limits_{u_{1}}\lambda u_{1}^{T}u_{1}\
&=\mathop{\text{argmax}\space}\limits_{u_{1}}\lambda
\end{aligned}
$$
这里是对于降维后只有一个向量,如果是想要降维后有$q$个向量,思路大体一致
$$
\begin{aligned}
J&=\sum\limits_{j=1}^{q}u_{j}^{T}Su_{j}\
&=\sum\limits_{j=1}^{q}\lambda_{j}\quad (从大到小取\lambda)
\end{aligned}
$$
另一个角度要求最小重构代价。对于原数据$x_{i}$,原本是$p$维向量,如果我们保留$u_{i}$的所有向量,则可表示为
$$
x_{i}=\sum\limits_{k=1}^{p}(x_{i}^{T}u_{i})u_{i}
$$
其中$x_{i}^{T}u_{i}$可以认为是投影长度,也就是单位长度$u_{i}$为单位向量。
对于$\hat{x}_{i}$,其也是$p$维的,但我们假设只保留其最大$\lambda$对应的前$q$个维度,则可表示为
$$
\hat{x_{i}}=\sum\limits_{k=1}^{q}(x_{i}^{T}u_{i})u_{i}
$$
在PCA中,由于我们需要中心化原数据集,因此上述$x_{i}$需要变为$x_{i}-\bar{x}$(其实道理都一样),对应损失函数
$$
\begin{aligned}
J&=\frac{1}{N}\sum\limits_{i=1}^{N}||(x_{i}-\bar{x})-\hat{x_{i}}||^{2}\
&=\frac{1}{N}\sum\limits_{i=1}^{N}\left|\left|\sum\limits_{k=q+1}^{p}[(x_{i}-\bar{x})^{T}u_{k}]u_{k}\right|\right|^{2}\
&=\frac{1}{N}\sum\limits_{i=1}^{N}\sum\limits_{k=q+1}^{p}[(x_{i}-\bar{x})^{T}u_{k}]^{2}\
&=\sum\limits_{k=q+1}^{p}\underbrace{\sum\limits_{i=1}^{N} \frac{1}{N}[(x_{i}-\bar{x})^{T}u_{k}]^{2}}{u{k}^{T}\cdot S \cdot u_{k}}\
&=\sum\limits_{k=q+1}^{p}u_{k}^{T}\cdot S \cdot u_{k}
\end{aligned}
$$
因此对于$\hat{u_{k}}$,有
$$
\hat{u_{k}}=\mathop{\text{argmin}\space}u_{k}^{T}Su_{k}
$$
再根据之前的要求$u_{k}^{T}u_{k}=1$,建立拉格朗日函数和上面最大投影方差完全相同,不再展示
这里就说明了两个角度最大投影方差,最小重构代价是相同的