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