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

46 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第8天,点击查看活动详情

作者:shuhuai008

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

 

PCA的核心就是对原始特征空间的重构(将一组可能线性相关的变量,通过正交变换变换成一组线性无关的变量)

两个基本的要求是最大投影方差(即找到的投影方向对于数据集投影方差最大),最小重构代价(即降维所得到的新数据与原数据相比,信息损失最小)

 

X=(x1x2 xN)N×pT=(x1Tx2T xNT)=(x11x12 x1px21x22 x2p    xN1xN2 xNP)N×pxiRp,i=1,2,,N1N=(11 1)N×1xˉ=1NXT1N,S=1NXTHX \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}

对于新的方向向量u1u_{1},归零化后数据的投影为

(xixˉ)u1 (x_{i}-\bar{x})u_{1}

显然由于归零化,新的数据集xˉ=0\bar{x}=0(即对于xixˉx_{i}-\bar{x}数据集),因此投影方差为

J=1Ni=1N[(xixˉ)Tu1]202=1Ni=1N[(xixˉ)Tu1]2=u1T(i=1N1N(xixˉ)(xixˉ)T)u1=u1TSu1 \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}

对于u1^\hat{u_{1}}

u1^=argmax u1u1TSu1 \begin{aligned} \hat{u_{1}}&=\mathop{\text{argmax}\space}\limits_{u_{1}}u_{1}^{T}\cdot S \cdot u_{1} \end{aligned}

这里我们令u1Tu1=1u_{1}^{T}u_{1}=1,因此,根据拉格朗日数乘法有

L(u,λ)=u1TSu1+λ(1u1Tu1)L(u,λ)u1=2Su1λ2u1=0Su1=λu1 \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}

上式对于方差矩阵SSu1u_{1}即为特征向量,λ\lambda即为特征值。将该式代回u1^\hat{u_{1}}

u1^=argmax u1u1Tλu1=argmax u1λu1Tu1=argmax u1λ \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}

这里是对于降维后只有一个向量,如果是想要降维后有qq个向量,思路大体一致

J=j=1qujTSuj=j=1qλj(从大到小取λ) \begin{aligned} J&=\sum\limits_{j=1}^{q}u_{j}^{T}Su_{j}\\ &=\sum\limits_{j=1}^{q}\lambda_{j}\quad (从大到小取\lambda) \end{aligned}

另一个角度要求最小重构代价。对于原数据xix_{i},原本是pp维向量,如果我们保留uiu_{i}的所有向量,则可表示为

xi=k=1p(xiTui)ui x_{i}=\sum\limits_{k=1}^{p}(x_{i}^{T}u_{i})u_{i}

其中xiTuix_{i}^{T}u_{i}可以认为是投影长度,也就是单位长度uiu_{i}为单位向量。

对于x^i\hat{x}_{i},其也是pp维的,但我们假设只保留其最大λ\lambda对应的前qq个维度,则可表示为

xi^=k=1q(xiTui)ui \hat{x_{i}}=\sum\limits_{k=1}^{q}(x_{i}^{T}u_{i})u_{i}

在PCA中,由于我们需要中心化原数据集,因此上述xix_{i}需要变为xixˉx_{i}-\bar{x}(其实道理都一样),对应损失函数

J=1Ni=1N(xixˉ)xi^2=1Ni=1Nk=q+1p[(xixˉ)Tuk]uk2=1Ni=1Nk=q+1p[(xixˉ)Tuk]2=k=q+1pi=1N1N[(xixˉ)Tuk]2ukTSuk=k=q+1pukTSuk \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}

因此对于uk^\hat{u_{k}},有

uk^=argmin ukTSuk \hat{u_{k}}=\mathop{\text{argmin}\space}u_{k}^{T}Su_{k}

再根据之前的要求ukTuk=1u_{k}^{T}u_{k}=1,建立拉格朗日函数和上面最大投影方差完全相同,不再展示

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