基本思想
降维是机器学习中很常见的一种思维方式,一般来说,可以通过线性投影和非线性映射进行。
PCA是一种简单的线性映射,当考虑降维时,我们一般有两种思路:
- 找到d-维仿射变换子空间,在合适的投影下,新的投影点与原先的投影点就接近。也就是说,在新投影下能最大限度的保持原数据的特征。
- 找到d-位投影,尽可能多的保留数据的变动(方差)。
我们将会从这两个思路分别进行求解,可以看到,这两个目标实际上等价。
定义
首先定义一些常用的量
样本均值
μn=n1n=1∑nxi
样本协方差
n∑=n−11i=1∑n(xi−μi)(xi−μi)T
其中xi 为数据样本(列向量),因此可以得到X=(x1,...,xn)为p×n矩阵,因此,写成矩阵的形式为
n∑=n−11(X−μn1)(X−μ1)T
直观理解
首先,让我们用不是很严格的数学公式来直观理解PCA。
我们很常见的思想是使得协方差矩阵的方差尽可能大(保留更多有效信息),而让协方差尽可能的小(防止数据冗余),在协方差矩阵中则表现为对角矩阵D。
我们令经过d-维基V变换后的新坐标为y,因此可得:
D=yyT=Vx(Vx)T=VxxTVT=Vn∑VT
这个式子有着特殊的含义。其中,D是新的协方差矩阵(对角矩阵),而∑n则是原始数据的协方差矩阵,V则是d-维正交基。
因此,这个式子可以理解为:对协方差矩阵∑n,找一个V,使得其转变为对角矩阵。而协方差矩阵是实对称矩阵,一定能够对角化,证明了这一点的完备性。
因此,我们只需要对协方差矩阵进行对角化,然后求出其对应的特征向量,即为新坐标下的正交基V。对y=Vx进行坐标变换则求到了新坐标下的PCA坐标。
PCA是最佳的仿射变换拟合
我们要对每个近似xi近似(由仿射变换的定义):
xi≈μ+j=1∑dβijvj
其中,Vp×d=(v1,..,vd)为d-维子空间中的标准正交基,μ∈Rp是平移量,βj为在基vj下的系数,βji为βj的第i个分量那么上式可以写成:
xi=μ+Vβi
由于其中的V由标准正交基组成,因此VTV=1.
用平方误差来衡量拟合效果,即要求出:
μ,V,βi.VTV=1mini=1∑n∣∣xi−(μ+Vβi)∣∣2
求μ的最优值
首先对μ求偏导,可以得到:
i=1∑n(xi−(μ+Vβi))=0⇒(i=1∑nxi)−nμ−V(i=1∑nβi)=0
由于μ和β之间没有关系,不失一般性我们可以假设∑βi=0,因此可以解出:
μ∗=n1i=1∑nxi=μn
因此,μ的最优值就是样本均值μ∗。
这样,我们可以将原始式子化简为:
μ,V,βi.VTV=1mini=1∑n∣∣xi−(μn+Vβi)∣∣2
求βi的最优值
注意到,βi之间是无耦合的影响的最小值,因此,对于原始式子,可以分别解出βi:
βimin∣∣xi−μn−Vβi∣∣2=βimin∣∣xi−μn−j=1∑dβijvj∣∣2
由于V是标准正交基,对βi求偏导:
βij=vjT(xi−μn)⇒βi=VT(xi−μn)
因此式子可以化简为:
VTV=1mini=1∑n∣∣(xi−μn)−VVT(xi−μn)∣∣2
求V的最优值
由∣∣x∣∣2=<x,x>和VTV=1,可以得到:
∥∥(xi−μn)−VVT(xi−μn)∥∥2=[(xi−μn)−VVT(xi−μn)]T[(xi−μn)−VVT(xi−μn)]=(xi−μn)T(xi−μn)−(xi−μn)TVVT(xi−μn)−(xi−μn)TVVT(xi−μn)+(xi−μn)TVV=2(xi−μn)T(xi−μn)−2(xi−μn)TVVT(xi−μn)
由于(xi−μn)T(xi−μn)与V无关,因此等价于求:
VTV=1maxi=1∑n(xi−μn)TVVT(xi−μn)
化简原式可得:
i=1∑n(xi−μn)TVVT(xi−μn)=i=1∑n[VT(xi−μn)]T[VT(xi−μn)]
由矩阵的迹的性质可得:
yTy=Tr(yyT)
因此,将原始化简的式子等价于求:
VTV=1maxi=1∑n(xi−μn)TVVT(xi−μn)=VTV=1max(n−1)Tr(VTn∑V)
即:
VTV=1maxTr(VTn∑V)
即,我们最后要求的标准正交基为使得协方差矩阵的迹最大;这等价于求协方差矩阵的特征值,并按照从大到小排列。
PCA保留最大方差
我们的第二个目标是要保留数据最大变化的d-维投影。可以写出全方差为:
Total Variance(Xn)=n1∑∣∣xi−μn∣∣2=n1i=1∑n∣∣xi−n1i=1∑nxi∣∣2
因此,我们要向最大化投影以后的方差,即VTxi的方差:
VTV=1maxi=1∑n∣∣VTxi−n1i=1∑nVTxi∣∣2
根据之前的结论:
i=1∑n∣∣VTxi−n1i=1∑nVTxi∣∣2=i=1∑n∣∣VT(xi−μn)∣∣2=(n−1)Tr(VTn∑V)
表明主成分V可以通过下式解决:
VTV=1maxTr(VTn∑V)
这样,两种不同的度量方法就等价求协方差矩阵的前d个特征值。
参考资料