降维 ---- 主成分分析 (PCA)、奇异值分解 (SVD)

降维

在机器学习或数据处理中,经常会碰到一些高维数据,而高维数据情形下经常出现样本稀疏、计算困难等问题,称之为“维度灾难”。
对于一个高维数据数 D = { X 1 , X 2 , . . . , X N } D = \{X_1, X_2, ..., X_N\} D={X1,X2,...,XN},其中每条数据的对应维度为 n n n,即 X i ∈ R n X_i\in R^{n} XiRn。降维的目的是找到一个映射函数 f f f,使得 D D D中的任意一条数据 X X X,都能被映射到一个低维空间中:
f ( X ) → R m f(X) \to R^m f(X)Rm
其中, m m m是映射后的低维空间的维度,从而每一条数据的维度都从 n n n维降到了 m m m维。
映射函数 f f f的形式有无数种,可简单分为线性变换和非线性变换。线性变换在高维空间中,寻找一个超平面从而将高维空间中的数据点映射到超平面上。而线性变换的形式较为简单,不一定能够完全表现出数据的特征,因此也有许多基于非线性变换的降维方法。

在确定映射函数的形式后,一般需要根据不同的任务或某些准则来确定映射函数的最优参数:
min ⁡ θ L ( f ( D ∣ θ ) , D ) \min_{\theta} L(f(D|\theta), D) θminL(f(Dθ),D)
其中, L L L是定义的准则函数, θ \theta θ是映射函数 f f f的参数, D D D是原始的高维数据集合, f ( D ∣ θ ) f(D|\theta) f(Dθ)是映射后的低维数据集合。

线性变换降维

主成分分析(PCA)

主成分分析 (PCA)是一种较为常用的线性变换、无监督的降维方法。线性变换是在高维空间中,寻找一个超平面从而将高维空间中的数据点映射到超平面上。那么,一个较好的超平面,应该具有以下的性质:

  • 最近可重构性: 样本点到这个超平面的距离都足够近。
    即下图中所有红线(即投影造成的损失)加起来最小。西瓜书对最近可重构性的解释较为简略,基于西瓜书的个人对最近可重构性的理解是其等价于基于投影后的低维数据集,重构到原来的高维空间中,应使重构后的高维的点与原始的高维的点的距离尽可能小(欢迎探讨)。

  • 最大可分性: 样本点在这个超平面上的投影能尽可能地分开。
    一个比较直观的感受是,投影应尽可能保留更多原始数据的特征和信息,因此应尽可能地分开;如果投影存在重合,那么则无法区分其对应的原始数据。而数据之间的离散程度可以用样本方差表示,所以,如下图的二维到一维的投影所示,最大可分性即需最大化投影点的方差。
    在这里插入图片描述

从最近可重构性的推导

原始的高维数据 X = { X 1 , X 2 , . . . , X N } X = \{X_1, X_2, ..., X_N\} X={X1,X2,...,XN},其中每一条样本是一个列向量,数据矩阵 X ∈ R n × N X\in R^{n×N} XRn×N。现在对这些点进行压缩,使其投影到k维空间中,其中k<n,使其损失的信息最小。设矩阵 W = { w 1 , w 2 , . . . , w k } W = \{w_1, w_2, ..., w_k\} W={w1,w2,...,wk}是一个 n × k n×k n×k的正交阵, w i w_i wi是标准正交基向量,即满足
W T W = I W^TW = I WTW=I
根据线性变换,原始数据矩阵 X X X经过线性变换 W W W的点的坐标:
Z = f ( X ) = W T X Z = f(X) = W^TX Z=f(X)=WTX

矩阵相乘实际上一种线性变换,这里的 W W W是一个正交阵,保证线性变换后的子空间的基是一组标准正交基,即投影后的数据之间各个维度的协方差为0,从而避免冗余信息,保留更多的数据特征。

如果对原始样本进行中心化处理,均值化为0,即每个样本都减去所有样本的均值:
X ′ = X − μ X = X − 1 N ∑ i = 1 N X i X' = X - \mu_X = X - \frac{1}{N}\sum_{i=1}^{N}X_i X=XμX=XN1i=1NXi
那么,处理后的投影点的均值:
μ Z ′ = 1 N ∑ i = 1 N Z i ′ = 1 N ∑ i = 1 N W T X i ′ = 1 N W T ∑ i = 1 N X i ′ = 0 \mu' _Z = \frac{1}{N}\sum_{i=1}^{N}Z'_i = \frac{1}{N}\sum_{i=1}^{N}W^TX'_i = \frac{1}{N}W^T\sum_{i=1}^{N}X'_i =0 μZ=N1i=1NZi=N1i=1NWTXi=N1WTi=1NXi=0
因此,可知如果对原始数据进行中心化处理,得到的投影数据的均值也为0。

考虑基于投影后的点 Z Z Z重构 X X X,即重新映射回 R n R^n Rn空间:
X ′ = W Z = W W T X X' = WZ = WW^TX X=WZ=WWTX

W T W^T WT是一个标准正交基组成的矩阵,伪逆等于其转置。

那么,假设新得到的数据与原始的数据点之间的距离最小,即PCA可转化为求解约束最优化问题:

min ⁡ ∣ ∣ X − X ′ ∣ ∣ F 2 = min ⁡ ∣ ∣ X − W W T X ∣ ∣ F 2 \min ||X - X'||_F^2 = \min ||X - WW^TX||_F^2 minXXF2=minXWWTXF2

其中, ∣ ∣ A ∣ ∣ F ||A||_F AF代表矩阵 A A A的Frobenius范数(F范数),其值为矩阵所有元素的平方和。根据F范数与矩阵迹的关系:
∣ ∣ A ∣ ∣ F = t r ( A A T ) ||A||_F = \sqrt{tr(AA^T)} AF=tr(AAT)
t r ( A ) tr(A) tr(A)是矩阵A的迹,代表对角线元素之和。那么:
min ⁡ ∣ ∣ X − W W T X ∣ ∣ F 2 = min ⁡ t r ( ( X − W W T X ) ( X − W W T X ) T ) = min ⁡ t r ( ( X − W W T X ) ( X T − X T W W T ) ) = min ⁡ t r ( X X T − X X T W W T − W W T X X T + W W T X X T W W T ) = min ⁡ ( t r ( X X T ) − t r ( X X T W W T ) − t r ( W W T X X T ) + t r ( W W T X X T W W T ) ) \min ||X - WW^TX||_F^2 \\ = \min tr((X-WW^TX)(X-WW^TX)^T )\\ = \min tr((X-WW^TX)(X^T-X^TWW^T)) \\ = \min tr(XX^T - XX^TWW^T - WW^TXX^T +WW^TXX^TWW^T) \\ = \min (tr(XX^T) - tr(XX^TWW^T) - tr( WW^TXX^T) + tr(WW^TXX^TWW^T)) minXWWTXF2=mintr((XWWTX)(XWWTX)T)=mintr((XWWTX)(XTXTWWT))=mintr(XXTXXTWWTWWTXXT+WWTXXTWWT)=min(tr(XXT)tr(XXTWWT)tr(WWTXXT)+tr(WWTXXTWWT))
根据迹的循环不变性:
t r ( W W T X X T W W T ) = t r ( X X T W W T ) = t r ( W W T X X T ) = t r ( W T X X T W ) tr(WW^TXX^TWW^T) = tr(XX^TWW^T) = tr(WW^TXX^T) = tr(W^TXX^TW) tr(WWTXXTWWT)=tr(XXTWWT)=tr(WWTXXT)=tr(WTXXTW)
X X T XX^T XXT是已知项,不会影响结果。上式优化过程为:
min ⁡ W − t r ( W T X X T W ) s . t . W T W = I \min_W -tr(W^TXX^TW)\\ s.t. \quad W^TW = I Wmintr(WTXXTW)s.t.WTW=I

从最大可分性的推导

最大可分性需要最大化投影点的方差:

V a r ( Z ) = C o v ( Z , Z ) = ( Z − μ Z ) ( Z − μ Z ) T = Z Z T = W T X X T W Var(Z) = Cov(Z, Z) = (Z - \mu_Z)(Z - \mu_Z)^T = ZZ^T = W^TXX^TW Var(Z)=Cov(Z,Z)=(ZμZ)(ZμZ)T=ZZT=WTXXTW
考虑协方差矩阵 V a r ( Z ) Var(Z) Var(Z),由于 W T W^T WT是正交阵,因此 V a r ( Z ) Var(Z) Var(Z)对角元素分别是对应维度的方差,其余元素为0。
因此最大可分性即为优化以下目标:
max ⁡ W t r ( W T X X T W ) s . t . W T W = I \max_W tr(W^TXX^TW)\\ s.t. \quad W^TW = I Wmaxtr(WTXXTW)s.t.WTW=I

由上可以看出,PCA的最近可重构性的推导与最大可分行的推导结果是等价的。

拉格朗日乘子法

使用拉格朗日乘子法求解上述优化问题,引入乘子 λ \lambda λ,则为求以下拉格朗日函数的极值:
L ( W , λ ) = t r ( W T X X T W ) + λ ( I − W T W ) L(W, \lambda) = tr(W^TXX^TW) + \lambda(I-W^TW) L(W,λ)=tr(WTXXTW)+λ(IWTW)
W W W求偏导令其为0:
∂ L ( W , λ ) ∂ W = ∂ t r ( W T X X T W ) + λ ( I − W T W ) ∂ W \frac{\partial L(W, \lambda)}{\partial W} =\frac{\partial tr(W^TXX^TW) + \lambda(I-W^TW)}{\partial W} WL(W,λ)=Wtr(WTXXTW)+λ(IWTW)
   ⟹    X X T W = λ W \implies XX^TW = \lambda W XXTW=λW
因此可见, W W W是协方差矩阵 X X T XX^T XXT的特征向量,只需对 X X T XX^T XXT进行特征值分解,然后选取前 k k k大的特征值对应的特征向量,即为组成的 W W W矩阵。

最大特征值对应的特征向量上投影点的方差最大,因此选取前k大个特征向量,其各维度投影的方差之和最大。

PCA算法步骤

PCA算法的主要步骤如下:
输入: 样本数据集 X ∈ R n × N X\in R^{n×N} XRn×N,低维空间的维度 k k k

  1. 对所有样本中心化: X ← X − μ X \gets X - \mu XXμ
  2. 计算协方差矩阵: X X T XX^T XXT
  3. 对协方差矩阵 X X T XX^T XXT特征值分解
  4. 选取最大的k个特征值及其对应的特征向量 { w 1 , w 2 , . . . , w k } \{w_1, w_2, ..., w_k\} {w1,w2,...,wk}

输出: W = { w 1 , w 2 , . . . , w k } ∈ R n × k W = \{w_1, w_2, ..., w_k\} \in R^{n×k} W={w1,w2,...,wk}Rn×k

在算法过程中,可保留均值向量 μ \mu μ以对数据进行复原。

奇异值分解 (SVD)

实际过程中,通常对 X X X进行奇异值分解代替对协方差矩阵作特征值分解。
对于任意一个矩阵 A ∈ R m × n A\in R^{m×n} ARm×n, 都可分解成以下形式:
A = U Σ V T A = U\Sigma V^T A=UΣVT
其中, U m × m U_{m×m} Um×m V n × n V_{n×n} Vn×n均是单位正交矩阵, Σ m × n \Sigma_{m×n} Σm×n是一个对角矩阵。(此处不再证明,可看参考资料)

考虑以下:
A A T = U Σ V T ( U Σ V T ) T = U Σ Σ T U T AA^T = U\Sigma V^T(U\Sigma V^T)^T = U\Sigma\Sigma^TU^T AAT=UΣVT(UΣVT)T=UΣΣTUT
A T A = ( U Σ V T ) T U Σ V T = V Σ T Σ V T A^TA = (U\Sigma V^T)^TU\Sigma V^T = V\Sigma^T\Sigma V^T ATA=(UΣVT)TUΣVT=VΣTΣVT
并且 A A T AA^T AAT A T A A^TA ATA均为实对陈矩阵,因此奇异值分解的求解过程一般如下:

  1. A A T AA^T AAT的特征值和特征向量,用单位化的特征向量构建 U U U
  2. A T A A^TA ATA的特征值和特征向量,用单位化的特征向量构建 V V V
  3. A A T AA^T AAT A T A A^TA ATA的特征值取平方根,构成 Σ \Sigma Σ

SVD用于PCA:

  1. 如果取 V V V的前 k k k 行作为线性变换矩阵 W W W,则起到压缩行即行降维的效果。
  2. 如果取 U U U的前 k k k 行作为线性变换矩阵 W W W,则起到压缩列即列降维的效果。

根据样本数据的行列意义,可使用SVD的左右奇异向量分别起到去除冗余样本、降维的效果。SVD分解常用于替代PCA中的协方差分解,主要是由于计算效率的问题。相对而言,方阵的特征值分解计算效率不高,而SVD具有更高效且准确的迭代求解法,能够避免 A A T AA^T AAT的运算。

非线性变换降维

  • 核化线性变换
  • 流形学习
    • t-SNE
    • 等度量映射 Isomap
    • 局部线性嵌入 LLE

参考

https://zhuanlan.zhihu.com/p/29846048
https://zhuanlan.zhihu.com/p/58064462
https://www.qiujiawei.com/linear-algebra-17/

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值