-
低维嵌入
在高维情形下数据样本会出现稀疏、距离计算困难等问题,称为“维数灾难”,缓解维数灾难的一个重要途径是降维,即通过数学变换将原始高维属性空间转变为一个低维子空间,在这个子空间中样本密度大幅提高,距离计算也变得更为容易。若要求原始空间中样本之间的距离在低维空间中得以保持,即得到“多维缩放”(MDS)这一经典的降维方法。
MDS算法
假定m个样本在原始空间的距离矩阵为
D∈Rm×m,其第i行第j列的元素
distij为样本
xi到
xj的距离。我们的目标是获得样本在
d′维空间的表示
Z∈Rd′×m,
d′≤d,且任意两个样本在
d′维空间中的欧式距离等于原始空间中的距离,即
∥zi−zj∥=distij。令
B=ZTZ∈Rm×m,其中
B为降维后样本的内积矩阵,
bij=ziTzj,有
distij2=∥zi∥2+∥zj∥2−2ziTzj=bii+bjj−2bij令降维后的样本
Z被中心化,即
i=1∑mzi=0,可得
bij=−21(distij2−disti⋅2−dist⋅j2+dist⋅⋅2)其中,
disti⋅2=m1j=1∑mdistij2,
dist⋅j2=m1i=1∑mdistij2,
dist⋅⋅2=m21i=1∑mj=1∑mdistij2。由此即可通过降维前后保持不变的距离矩阵
D求取内积矩阵
B。对矩阵
B做特征值分解,
B=VΛVT,其中
Λ=diag(λ1,λ2,...,λd)为特征值构成的对角矩阵,
λ1≥λ2≥...≥λd,
V为特征向量矩阵。假定有
d∗个非零特征值,他们构成对角矩阵
Λ∗=diag(λ1,λ2,...,λd∗),令
V∗表示相应的特征向量矩阵,则
Z可表示为:
Z=Λ∗1/2V∗T∈Rd∗×m在现实应用中,为了有效降维,往往仅需降维后的距离与原始空间中的距离尽可能接近,而不必严格相等。此时可取
d′≤d个最大特征值构成对角矩阵。
—
一般来说,获得低维子空间最简单的方法时对高维空间进行线性变换。d维空间中的样本
X=(x1,x2,...,xm)∈Rd×m,变换到
d′≤d维中,
Z=WTX其中
W∈Rd×d′是变换矩阵,
Z∈Rd′×m是样本在新空间中的表达。基于这种线性变换来进行降维的方法称为线性降维方法。
-
主成分分析(PCA)
PCA是最常用的一种降维方法。对于正交属性空间中样本点,若想要用一个超平面对所有样本进行恰当表达,这种超平面需满足两点:(1)最近重构性:样本点到这个超平面的距离都足够近;(2)最大可分性:样本点在这个超平面上的投影能尽可能分开。而这两个条件会得到等价的优化目标:
Wmaxtr(WTXXTW)
WTW=I对上式使用拉格朗日乘子法可得:
XXTwi=λiwi于是只需对协方差矩阵
XXT进行特征值分解,将求得的特征值排序:
λ1≥λ2≥,...,≥λd,再取前
d′个特征值对应的特征向量构成
W∗=(w1,w2,...,wd′)。这就是主成分分析的解。其具体过程如下:
(1)对所有样本进行中心化:
xi←xi−m1i=1∑mxi
(2)计算样本的协方差矩阵
XXT
(3)对协方差矩阵
XXT做特征值分解
(4)取最大的
d′个特征值所对应的特征向量
(w1,w2,...,wd′)
(5)输出投影矩阵
W∗=(w1,w2,...,wd′)
降维后低维空间的维数
d′通常是由用户事先指定,或通过交叉验证来选取最佳
d′值。对PCA,还可以从重构的角度设置一个重构阈值,例如
t=95%,使下式成立:
i=1∑dλii=1∑d′λi≥tPCA仅需保留
W∗与样本均值向量即可通过简单的向量减法和矩阵-向量乘法将新样本投影到低维空间中。运算过程中,
d′−d个特征值向量会被舍弃。这样做一方面可以使样本的采样密度增大,这正是降维的重要动机;另一方面,当数据受到噪声影响时,最小的特征值所对应的特征向量往往与噪声有关,舍弃这些可达到去噪的目的。
-
核化线性降维
在不少任务中,需要非线性映射才能找到恰当的低维嵌入。非线性降维的一种常用方法,是基于核技巧对线性降维方法进行核化。以下介绍核主成分分析(KPCA)。
假定将数据投影到
W=(w1,w2,...,wd)确定的超平面上,对于
wj有
(i=1∑mzizT)wj=λjwj其中
zi是样本点
xi在高维空间中的像。易知
wj=λj1(i=1∑mziziT)wj=i=1∑mziλjziTwj=i=1∑mziαij其中
αij=λjziTwj是
αi的第j个分量。假定
zi是由原始属性空间中的样本点
xi通过映射
ϕ产生,即
zi=ϕ(xi)。若
ϕ能够被显示地表达出来,则通过它将样本映射至高维空间,再在高维空间中实施PCA即可。有:
(i=1∑mϕ(xi)ϕ(xi)T)wj=λjwj于是
wj可写为
wj=i=1∑mϕ(xi)αij。一般情形下,并不清楚
ϕ的具体形式,于是引入核函数
κ(xi,xj)=ϕ(xi)Tϕ(xj)于是有
Kαj=λjαjK是
κ对应的核矩阵,
Kij=κ(xi,xj),
αj=(α1j;α2j;...;αmj)。显然上式是特征值分解问题,取K最大的
d′个特征值对应的特征向量即可。对新样本
x,其投影后的第j维坐标为
zj=wjTϕ(x)=i=1∑mαijϕ(xi)Tϕ(x)=i=1∑mαijκ(xi,x)因此为了获得投影后的坐标,KCPA需对所有样本求和,因此它的计算开销很大。