子空间算法
问题描述:设X1,X2,...,Xp为训练样本,每个Xi为M维矢量,要求一个N×M的矩阵A,使得:
YN×1=AN×MXM×1
AN×M=⎡⎣⎢⎢⎢⎢a1a2...aN⎤⎦⎥⎥⎥⎥
当
N≪M时,这是一种降维算法。这里主要介绍两种降维算法: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(yi−y¯)2
因为
y¯=1p∑i=1pyi=1p∑i=1pa1Xi=a1X¯
所以
E(a1)=∑i=1p(a1Xi−a1X¯)2=∑i=1p(a1(Xi−X¯))2=∑i=1p[a1(Xi−X¯)][a1(Xi−X¯)]T=a1∑i=1p(Xi−X¯)(Xi−X¯)TaT1=a1ΣaT1
其中,
Σ=∑pi=1(Xi−X¯)(Xi−X¯)T为协方差矩阵。优化问题化为:
Maximize:E(a1)=a1ΣaT1
Subject to:a1aT1=1
这个约束条件是因为方向的模可以认为是1。
用拉格朗日乘子法求解:
M(a1)=E(a1)+λ(a1aT1−1)
∂M∂a1=ΣaT1−λaT1=0
ΣaT1=λaT1
所以,
aT1是
Σ的特征向量,
λ是
Σ的特征值。
E(a1)=a1(ΣaT1)=a1(λaT1)=λa1aT1=λ
所以,要最大化
E(a1),就是要最大化
λ,
aT1为
Σ最大的特征值所对应的特征向量。
求第二个方向a2
求解a2时,要保证a2与a1正交,优化问题是:
Maximize:E(a2)=a2ΣaT2
Subject to:a2aT2=1
a1aT2=a2aT1=1
同样用拉格朗日乘子法可以求得
a2是
Σ第二大的特征值所对应的特征向量。
…
算法总结
1输入X1,X2,...,Xm
2Σ=∑pi=1(Xi−X¯)(Xi−X¯)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是训练样本的个数。这是因为:(Xi−X¯)(Xi−X¯)T的秩为1,而X1−X¯,X2−X¯,...,Xm−X¯最多有m-1个是互相独立的。
综上,Σ的特征值中不为0的数目≤min(N,m−1)
线性判别分析(Linear Discriminant Analysis)
线性判别分析是一种有监督的降维算法。它的最优准则是:类间距离大,类内距离小。
以二分类问题为例,LDA问题可以描述成:
对m个M维的输入向量X1,X2,...,Xm,找到一个矩阵W,使得X̃ =WX
首先,计算
X̃ 的数学期望:
μ1~=1N1=∑X̃ ϵC1X̃ ,μ2~=1N2=∑X̃ ϵC2X̃
方差:
稀疏表达(Sparse Representation)
稀疏表达问题可以描述为:对Y=AX,已知Y和A,求X。