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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了详解降维-PCA-最大投影方差&最小重构代价白板推导系列笔记相关的知识,希望对你有一定的参考价值。

 

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

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

 

$$

\\begingathered

X=\\beginpmatrix

x_1 & x_2 & \\cdots  & x_N

\\endpmatrix^T_N \\times p=\\beginpmatrix

x_1^T \\ x_2^T \\ \\vdots  \\ x_N^T

\\endpmatrix=\\beginpmatrix

x_11 & x_12 & \\cdots &  x_1p \\ x_21 & x_22 & \\cdots  & x_2p \\ \\vdots  & \\vdots  &  & \\vdots  \\ x_N1 & x_N2 & \\cdots  & x_NP

\\endpmatrix_N \\times p\\

x_i\\in \\mathbbR^p,i=1,2,\\cdots ,N\\

记1_N=\\beginpmatrix1 \\ 1 \\ \\vdots  \\ 1\\endpmatrix_N \\times 1\\

\\barx=\\frac1NX^T1_N,S=\\frac1NX^T\\mathbbHX

\\endgathered

$$

对于新的方向向量$u_1$,归零化后数据的投影为

$$

(x_i-\\barx)u_1

$$

显然由于归零化,新的数据集$\\barx=0$(即对于$x_i-\\barx$数据集),因此投影方差为

$$

\\beginaligned

J&=\\frac1N\\sum\\limits_i=1^N[(x_i-\\barx)^Tu_1]^2-0^2\\

&=\\frac1N\\sum\\limits_i=1^N[(x_i-\\barx)^Tu_1]^2\\

&=u_1^T\\left(\\sum\\limits_i=1^N \\frac1N(x_i-\\barx)(x_i-\\barx)^T\\right)u_1\\

&=u_1^T\\cdot S \\cdot u_1

\\endaligned

$$

对于$\\hatu_1$

$$

\\beginaligned

\\hatu_1&=\\mathop\\textargmax\\space\\limits_u_1u_1^T\\cdot S \\cdot u_1

\\endaligned

$$

这里我们令$u_1^Tu_1=1$,因此,根据拉格朗日数乘法有

$$

\\beginaligned

L(u,\\lambda)&=u_1^TSu_1+\\lambda(1-u_1^Tu_1)\\

\\frac\\partial L(u,\\lambda)\\partial u_1&=2S u_1-\\lambda 2u_1=0\\

S u_1&=\\lambda u_1

\\endaligned

$$

上式对于方差矩阵$S$,$u_1$即为特征向量,$\\lambda$即为特征值。将该式代回$\\hatu_1$

$$

\\beginaligned

\\hatu_1&=\\mathop\\textargmax\\space\\limits_u_1u_1^T\\lambda u_1\\

&=\\mathop\\textargmax\\space\\limits_u_1\\lambda u_1^Tu_1\\

&=\\mathop\\textargmax\\space\\limits_u_1\\lambda

\\endaligned

$$

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

$$

\\beginaligned

J&=\\sum\\limits_j=1^qu_j^TSu_j\\

&=\\sum\\limits_j=1^q\\lambda_j\\quad (从大到小取\\lambda)

\\endaligned

$$

另一个角度要求最小重构代价。对于原数据$x_i$,原本是$p$维向量,如果我们保留$u_i$的所有向量,则可表示为

$$

x_i=\\sum\\limits_k=1^p(x_i^Tu_i)u_i

$$

其中$x_i^Tu_i$可以认为是投影长度,也就是单位长度$u_i$为单位向量。

对于$\\hatx_i$,其也是$p$维的,但我们假设只保留其最大$\\lambda$对应的前$q$个维度,则可表示为

$$

\\hatx_i=\\sum\\limits_k=1^q(x_i^Tu_i)u_i

$$

在PCA中,由于我们需要中心化原数据集,因此上述$x_i$需要变为$x_i-\\barx$(其实道理都一样),对应损失函数

$$

\\beginaligned

J&=\\frac1N\\sum\\limits_i=1^N||(x_i-\\barx)-\\hatx_i||^2\\

&=\\frac1N\\sum\\limits_i=1^N\\left|\\left|\\sum\\limits_k=q+1^p[(x_i-\\barx)^Tu_k]u_k\\right|\\right|^2\\

&=\\frac1N\\sum\\limits_i=1^N\\sum\\limits_k=q+1^p[(x_i-\\barx)^Tu_k]^2\\

&=\\sum\\limits_k=q+1^p\\underbrace\\sum\\limits_i=1^N \\frac1N[(x_i-\\barx)^Tu_k]^2uk^T\\cdot S \\cdot u_k\\

&=\\sum\\limits_k=q+1^pu_k^T\\cdot S \\cdot u_k

\\endaligned

$$

因此对于$\\hatu_k$,有

$$

\\hatu_k=\\mathop\\textargmin\\spaceu_k^TSu_k

$$

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

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

以上是关于详解降维-PCA-最大投影方差&最小重构代价白板推导系列笔记的主要内容,如果未能解决你的问题,请参考以下文章

PCA主成分分析(降维)

LDA和PCA降维总结

常用降维方法之PCA 和 LDA

PCA算法详解——本质上就是投影后使得数据尽可能分散(方差最大),PCA可以被定义为数据在低维线性空间上的正交投影,这个线性空间被称为主?空间(principal subspace),使得投影数据的?

PCA(手写原理)及其Python实现

LDA线性模型