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