一、简介
- 为什么需要降维
数据的维度过高容易造成维数灾难(Curse of Dimensionality)。.
维数灾难:通常是指在涉及到向量的计算的问题中,随着维数的增加,计算量呈指数倍增长的一种现象。
这里可以举两个几何的例子来看一下维数过高的影响:

上图表示一个多维空间(以二维为例),则其中图形的体积有如下关系:
V超立方体=1V超球体=K⋅0.5DD→∞limV超球体=0
上式也就表明当数据的维度过高时,数据主要存在于空间的边边角角的地方,这也就造成了数据的稀疏性。

上图也表示一个多维空间(以二维为例),则其中图形的体积有如下关系:
V外=K⋅1D=KV环形带=V外−V内=K−K⋅(1−ε)DV外V环形带=KK−K⋅(1−ε)D=1−(1−ε)DD→∞limV外V环形带=D→∞lim1−(1−ε)D=1
可以看到当数据的维度过高时,数据主要存在于球壳上,类似于人的大脑皮层。
- 降维的方法
降维可以作为一种防止过拟合的方式,其具体的方法包含下列几种:
降维⎩⎨⎧直接降维(特征选择)线性降维(PCA、MDS)非线性降维(流形)
特征选择是一种直接剔除主观认为不重要的特征的过程。
本文接下来的部分主要介绍主成分分析(PCA)。
二、样本均值与样本方差
- 概述
假设有以下数据:
xi∈Rp,i=1,2,⋯,NX=(x1,x1,⋯,xN)T=⎝⎜⎜⎜⎛x1Tx2T⋮xNT⎠⎟⎟⎟⎞=⎝⎜⎜⎜⎛x11x21⋮xN1x12x22⋮xN2⋯⋯⋱⋯x1px2p⋮xNp⎠⎟⎟⎟⎞N×p
- 样本均值与样本方差
以下定义了数据的样本均值与样本方差:
SampleMean:xˉp×1=N1i=1∑NxiSampleCovariance:Sp×p=N1i=1∑N(xi−xˉ)(xi−xˉ)T
接下来需要对样本均值与样本方差进行一些变换来获得其另一种表示形式:
规定向量1N=⎝⎜⎜⎜⎛11⋮1⎠⎟⎟⎟⎞N×1xˉ=N1i=1∑Nxi=N1XT(x1x2⋯xN)⎝⎜⎜⎜⎛11⋮1⎠⎟⎟⎟⎞=N1XT1NS=N1i=1∑N(xi−xˉ)(xi−xˉ)T=N1(x1−xˉx2−xˉ⋯xN−xˉ)⎝⎜⎜⎜⎛(x1−xˉ)T(x2−xˉ)T⋮(xN−xˉ)T⎠⎟⎟⎟⎞上式中(x1−xˉx2−xˉ⋯xN−xˉ)=(x1x2⋯xN)−(xˉxˉ⋯xˉ)=XT−xˉ(11⋯1)=XT−xˉ1NT=XT−N1XT1N1NT=XT(IN−N11N1NT)则S=N1XTH(IN−N11N1NT)(IN−N11N1NT)TX(H称为中心矩阵,centeringmatrix)=N1XTHHTX
中心矩阵H具备以下性质:
①HT=HHT=(IN−N11N1NT)T=IN−N11N1NT=H②Hn=HH2=H⋅H=(IN−N11N1NT)(IN−N11N1NT)=IN−N21N1NT+N211N1NT1N1NT=IN−N2⎝⎜⎜⎜⎛11⋮1⎠⎟⎟⎟⎞(11⋯1)+N21⎝⎜⎜⎜⎛11⋮1⎠⎟⎟⎟⎞(11⋯1)⎝⎜⎜⎜⎛11⋮1⎠⎟⎟⎟⎞(11⋯1)=IN−N2⎣⎢⎢⎢⎡11⋮111⋮1⋯⋯⋱⋯11⋮1⎦⎥⎥⎥⎤N×N+N21⎣⎢⎢⎢⎡11⋮111⋮1⋯⋯⋱⋯11⋮1⎦⎥⎥⎥⎤N×N⎣⎢⎢⎢⎡11⋮111⋮1⋯⋯⋱⋯11⋮1⎦⎥⎥⎥⎤N×N=IN−N2⎣⎢⎢⎢⎡11⋮111⋮1⋯⋯⋱⋯11⋮1⎦⎥⎥⎥⎤N×N+N21⎣⎢⎢⎢⎡NN⋮NNN⋮N⋯⋯⋱⋯NN⋮N⎦⎥⎥⎥⎤N×N=IN−N2⎣⎢⎢⎢⎡11⋮111⋮1⋯⋯⋱⋯11⋮1⎦⎥⎥⎥⎤N×N+N1⎣⎢⎢⎢⎡11⋮111⋮1⋯⋯⋱⋯11⋮1⎦⎥⎥⎥⎤N×N=IN−N11N1NT=H则Hn=H
因此最终可以得到
xˉ=N1XT1NS=N1XTHX
三、主成分分析的思想
总结起来就是:
一个中心:PCA是对原始特征空间的重构,将原来的线性相关的向量转换成线性无关的向量;
两个基本点:最大投影方差和最小重构距离,这是本质相同的两种方法,在接下来的部分将具体介绍。
PCA首先要将数据中心化(即减去均值)然后投影到一个新的方向上,这个新的方向即为重构的特征空间的坐标轴,同时也要保证投影以后得到的数据的方差最大,即最大投影方差,这样也保证了数据的重构距离最小。
四、最大投影方差
假设投影方向为u,由于我们只关注投影的方向,因此将u的模设置为1,即uTu=1,则中心化后的数据在u方向上的投影为(xi−x^)Tu,是一个标量。按照最大投影方差的思想,我们定义损失函数如下:
J(u)=N1i=1∑N((xi−x^)Tu)2=i=1∑NN1uT(xi−x^)(xi−x^)Tu=uTS[i=1∑N(xi−x^)(xi−x^)T]u=uTSu
因此该问题就转换为以下最优化问题:
{u^=uargmaxuTSus.t.uTu=1
然后使用拉格朗日乘子法进行求解:
L(u,λ)=uTSu+λ(1−uTu)∂u∂L=2Su−2λu=0S特征向量u=特征值λu
最后解得符合条件的向量是协方差矩阵S的特征向量。如果想要降到q维(q<p),则只需要将对应特征值最大的前q个特征向量取出来作为投影方向然后获得数据在这些方向上的投影即为重构的坐标,即:
⎝⎜⎜⎜⎛x1Tx2T⋮xNT⎠⎟⎟⎟⎞N×p(u1u2⋯uq)p×q=⎣⎢⎢⎢⎡x1Tu1x2Tu1⋮xNTu1x1Tu2x2Tu2⋮xNTu2⋯⋯⋱⋯x1Tuqx2Tuq⋮xNTuq⎦⎥⎥⎥⎤N×q
特征向量表示投影变换的方向,特征值表示投影变换的强度。通过降维,我们希望减少冗余信息,提高识别的精度,或者希望通过降维算法来寻找数据内部的本质结构特征。找最大的特征值是因为 ,在降维之后要最大化保留数据的内在信息,并期望在所投影的维度上的离散最大。
五、最小重构距离
最小重构距离是另一种求解的方法,其本质上和最大投影方差是相同的。
我们知道有p个投影方向符合条件,因此原来的数据可以表示为以下形式,降维的数据也就是舍弃掉第q+1到第p这几个方向上的信息。
原来的中心化了的数据xi−xˉ=i=1∑p((xi−xˉ)Tuk)uk降维的数据x^i=i=1∑q((xi−xˉ)Tuk)uk(u1到up分别对应从大到小的特征值)
因此重构距离也就是指xi−x^i,本着最小化重构距离的思想我们可以设置新的损失函数如下:
J=N1i=1∑N∥(xi−xˉ)−x^i∥2=N1i=1∑N∥∥∥∥∥∥k=q+1∑p((xi−xˉ)Tuk)uk∥∥∥∥∥∥2=N1i=1∑Nk=q+1∑p((xi−xˉ)Tuk)2=k=q+1∑pukTSukN1i=1∑NN1((xi−xˉ)Tuk)2=k=q+1∑pukTSuks.t.ukTuk=1
然后就可以转化为以下最优化问题:
{u^=argmin∑k=q+1pukTSuks.t.ukTuk=1
显然这里的每个uk是可以单独求解的,最终也可以解得uk是协方差矩阵S的特征向量,只不过这里的uk是对应特征值较小的几个特征向量。
六、SVD角度看PCA和PCoA
协方差矩阵S的特征分解:
S=GKGT,其中GTG=I,K=⎣⎢⎢⎡k1k2⋱kp⎦⎥⎥⎤,k1≥k2≥⋯≥kp.
将X中心化的结果HX做奇异值分解:
HX=UΣVT,其中⎩⎨⎧UN×N是正交矩阵Vp×p是正交矩阵ΣN×p是对角矩阵
接下里可以做以下变换:
Sp×p=XTHX=XTHTHX=VΣTUTUΣVT=VΣTΣVT(VΣTΣVT是S的特征值分解,ΣTΣ即为K。)
接下来我们构造矩阵TN×N:
TN×N=HXXTHT=UΣVTVΣTUT=UΣΣTUT(UΣΣTUT是T的特征值分解,ΣΣT为特征值矩阵。)
对比Sp×p和TN×N,我们可以发现:
①将S进行特征分解然后得到投影的方向,也就是主成分,然后矩阵HXV即为重构坐标系的坐标矩阵;
②将T进行特征分解可以直接获得坐标矩阵$U\Sigma 。(注意应保证S和T$特征分解得到的特征向量是单位向量。)
关于为什么将T进行特征分解可以直接获得坐标矩阵,现做以下解释:
坐标矩阵HXV=UΣVTV=UΣ也就是说UΣ即为坐标矩阵接着TUΣ=UΣΣTUTUΣ=UΣ(ΣTΣ)也就是说UΣ是T的特征向量组成的矩阵
这两种⽅法都可以得到主成分,但是由于⽅差矩阵是p×p的,⽽T是N×N的,所以对样本量较少的时候可以采⽤ PCoA的⽅法。
七、概率PCA(p-PCA)
- 概述
假设有以下数据:
x∈Rp,z∈Rq,q<p
其中x是原始数据,z是降维后的数据,可以将z看做隐变量(latent variable),x看做观测变量(observed variable),则p-PCA就可以看做生成模型。
x和z满足以下关系:
⎩⎨⎧z∼N(0q×1,Iq×q)x=Wz+μ+εε∼N(0p×1,σ2Ip×p)
这是一个线性高斯模型,其中$\varepsilon 是噪声,\varepsilon 与z是独立的。求解这个模型要经过两个阶段:①inference:求P(z|x)$
②learning:使用EM算法求解参数W、μ,σ2。
x的生成过程如下:

上图中数据空间为⼆维,潜在空间为⼀维。⼀个观测数据点x的⽣成⽅式为:⾸先从潜在变量的先验分布p(z)中抽取⼀个潜在变量的值z^,然后从⼀个各向同性的⾼斯分布(⽤红⾊圆圈表示)中抽取⼀个x的值,这个各向同性的⾼斯分布的均值为Wz^+μ,协⽅差为σ2I。绿⾊椭圆画出了边缘概率分布p(x)的密度轮廓线。
- 推断(inference)
求解P(z∣x)的过程如下:
P(z)→P(x∣z)→P(x)→P(z∣x)
E[x∣z]=E[Wz+μ+ε]=Wz+μ+0=Wz+μVar[x∣z]=Var[Wz+μ+ε]=σ2I⇒x∣z∼N(Wz+μ,σ2I)
E[x]=E[Wz+μ+ε]=E[Wz+μ]+E[ε]=μVar[x]=Var[wz+μ+ε]=Var[Wz]+Var[ε]=WWT+σ2I⇒x∼N(μ,WWT+σ2I)
该问题和高斯分布|机器学习推导系列(二)中第六部分的问题是类似的。
(xz)∼N([μ0],[WWT+σ2IΔTΔI])Δ=Cov(x,z)=E[(x−μ)(z−0)T]=E[(Wz+μ+ε−μ)zT]=E[(Wz+ε)zT]=E[WzzT+εzT]=E[WzzT]+E[εzT]=WE[zzT]+E[ε]E[zT]=WE[(z−0)(z−0)T]+0=WVar[z]=W因此(xz)∼N([μ0],[WWT+σ2IWTWI])
利用高斯分布|机器学习推导系列(二)中第五部分的公式可以求解P(z∣x):
P(z∣x)∼N(WT(WWT+σ2I)−1(x−μ),I−WT(WWT+σ2I)−1W)
- 学习(learning)
使用EM算法求解,这里不做展示。
参考资料
ref:降维时为什么找最大的特征值对应的特征向量
ref:《模式识别与机器学习》
公众号同步更新
