详解降维-PCA-最大投影方差&最小重构代价【白板推导系列笔记】

时间:2022-10-14 10:59:41

作者:shuhuai008

链接:【机器学习】【白板推导系列】【合集 1~33】_哔哩哔哩_bilibili

 

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$,建立拉格朗日函数和上面最大投影方差完全相同,不再展示

这里就说明了两个角度最大投影方差,最小重构代价是相同的