子空间算法

子空间算法

问题描述:X1,X2,...,Xp为训练样本,每个Xi为M维矢量,要求一个N×M的矩阵A,使得:

YN×1=AN×MXM×1

AN×M=a1a2...aN

NM时,这是一种降维算法。这里主要介绍两种降维算法:PCA与LDA。PCA是无监督的降维算法,计算出X变化最大的前N个方向并将X向这些方向投影,得到一个N维的向量Y。LDA是有监督的算法,根据类别标记找到最大化类间差异,最小化类内差异的方向。

主成分分析法(Principle Component Analysis)

将不同的样本投影到某一个方向上,若这些样本投影后具有较大的差异,则比较易于分类。所以我们要找这样一个方向a,使得X向a投影之后得到的Y的方差最大。

求第一个方向a1

假设我们找到了前N个满足上述要求的方向:a1,a2,...,aN,每个ai都是一个1×M维的矢量。
设训练样本有P个,对方向a1,有:
y1=a1X1,y2=a2X2,...,yp=a1Xp
上述问题要求:

Maximize:E(a1)=i=1p(yiy¯)2

因为
y¯=1pi=1pyi=1pi=1pa1Xi=a1X¯

所以
E(a1)=i=1p(a1Xia1X¯)2=i=1p(a1(XiX¯))2=i=1p[a1(XiX¯)][a1(XiX¯)]T=a1i=1p(XiX¯)(XiX¯)TaT1=a1ΣaT1

其中,Σ=pi=1(XiX¯)(XiX¯)T为协方差矩阵。优化问题化为:
Maximize:E(a1)=a1ΣaT1

Subject to:a1aT1=1

这个约束条件是因为方向的模可以认为是1。
用拉格朗日乘子法求解:
M(a1)=E(a1)+λ(a1aT11)

Ma1=ΣaT1λaT1=0

ΣaT1=λaT1

所以,aT1Σ的特征向量,λΣ的特征值。
E(a1)=a1(ΣaT1)=a1(λaT1)=λa1aT1=λ

所以,要最大化E(a1),就是要最大化λaT1Σ最大的特征值所对应的特征向量。

求第二个方向a2

求解a2时,要保证a2a1正交,优化问题是:

Maximize:E(a2)=a2ΣaT2

Subject to:a2aT2=1

a1aT2=a2aT1=1

同样用拉格朗日乘子法可以求得a2Σ第二大的特征值所对应的特征向量。

算法总结

1输入X1,X2,...,Xm
2Σ=pi=1(XiX¯)(XiX¯)T
3求Σ的特征值和特征向量:
λ1,λ2,...,λN,对应的特征向量,a1,a2,...,aN
4变换矩阵:

AN×M=a1a2...aN

计算Y:
YN×1=AN×MXM×1

思考

问题:Σ的特征值中不为0的有多少?
- 若对称阵Σ的秩为r,则不为0的特征值有r个
- 一个N×1的向量与一个N×1的向量相乘,所得N×N的矩阵,秩最多是多少?答案是1。
- 一个秩为r1的矩阵加上一个秩为r2的矩阵,秩最多为r1+r2.
可知Σ的秩最多为m-1个,其中m是训练样本的个数。这是因为:(XiX¯)(XiX¯)T的秩为1,而X1X¯,X2X¯,...,XmX¯最多有m-1个是互相独立的。
综上,Σ的特征值中不为0的数目min(N,m1)

线性判别分析(Linear Discriminant Analysis)

线性判别分析是一种有监督的降维算法。它的最优准则是:类间距离大,类内距离小。
以二分类问题为例,LDA问题可以描述成:

mMX1,X2,...,Xm,W使X̃ =WX

首先,计算X̃ 的数学期望:
μ1~=1N1=X̃ ϵC1X̃ μ2~=1N2=X̃ ϵC2X̃ 

方差:

稀疏表达(Sparse Representation)

稀疏表达问题可以描述为:对Y=AX,已知Y和A,求X。

原文地址:https://www.cnblogs.com/goodluckcwl/p/5686101.html