【MDS算法】—— Multiple Dimensional Scaling降维算法简介

在高维情形下出现的数据样本稀疏、距离计算困难等问题,是所有机器学习方法共同面临的严重障碍,被称为“维数灾难” (curse ofdimensionality)。

缓解维数灾难的一个重要途径是降维 (dimension reduction),亦称“维数约简”,即通过某种数学变换将原始高维属性空间转变为一个低维“子空间”(subspace), 在这个子空间中样本密度大幅提高,距离计算也变得更为容易.为什么能进行降维?这是因为在很多时候,人们观测或收集到的数据样本虽是高维的,但与学习任务密切相关的也许仅是某个低维分布,即高维空间中的一个低维“ 嵌入” (embedding)。下图给出了一个直观的例子。原始高维空间中的样本点,在这个低维嵌入子空间中更容易进行学习。

【MDS算法】—— Multiple Dimensional Scaling降维算法简介

若要求原始空间中样本之间的距离在低维空间中得以保持,如上图所示,即得到“多维缩放” (Multiple Dimensional Scaling,简称 MDSMDS ) 这样一种经典的降维方法。下面做一个简单的介绍。

假定 mm 个样本在原始空间的距离矩阵为 DRm×mD∈\mathbb{R}^{m×m},其第 iijj 列的元素 distijdist_{ij} 为样本 xix_ixjx_j 的距离。我们的目标是获得样本在 dd' 维空间的表示 ZRd×m,ddZ∈\mathbb{R}^{d'×m},d'≤d,且任意两个样本在 dd' 维空间中的欧氏距离等于原始空间中的距离,即 zizj=distij||z_i-z_j||=dist_{ij}

B=ZTZRmxmB=Z^TZ∈\mathbb{R}^{mxm},其中 BB 为降维后样本的内积矩阵,bij=ziTzjb_{ij}=z_i^Tz_j,有
【MDS算法】—— Multiple Dimensional Scaling降维算法简介

0Rd0∈\mathbb{R}^{d'} 为全零向量。

为便于讨论,令降维后的样本 ZZ 被中心化,即 i=1mzi=0\sum^m_{i=1}z_i=0。显然,矩阵 BB 的行与列之和均为零,即 i=1mbij=j=1mbij0\sum^m_{i=1}b_{ij}=\sum^m_{j=1}b_{ij}0。易知
i=1mdistij2=tr(B)+mbjj  ,(4) \sum^m_{i=1}dist^2_{ij}=tr(B)+mb_{jj}\,\,,\tag{4}

j=1mdistij2=tr(B)+mbii  ,(5) \sum^m_{j=1}dist^2_{ij}=tr(B)+mb_{ii}\,\,,\tag{5}

i=1mj=1mdistij2=2mtr(B)  ,(6) \sum^m_{i=1}\sum^m_{j=1}dist^2_{ij}=2m\,tr(B)\,\,,\tag{6}

其中 tr()tr(·) 表示矩阵的迹 (trace),tr(B)=i=1mzi2tr(B)=\sum^m_{i=1}||z_i||^2。令
disti.2=1mj=1mdistij2  ,(7) dist_{i.}^2=\frac{1}{m}\sum^m_{j=1}dist_{ij}^2\,\,,\tag{7}

dist.j2=1mj=1mdistij2  ,(8) dist_{.j}^2=\frac{1}{m}\sum^m_{j=1}dist_{ij}^2\,\,,\tag{8}

dist..2=1m2i=1mj=1mdistij2  ,(9) dist_{..}^2=\frac{1}{m^2}\sum^m_{i=1}\sum^m_{j=1}dist_{ij}^2\,\,,\tag{9}

由式 (3) 和式 (4)~(9) 可得
bij=12(distij2disti.2dist.j2+dist..2)  ,(10) b_{ij}=-\frac{1}{2}(dist_{ij}^2-dist^2_{i.}-dist^2_{.j}+dist^2_{..})\,\,,\tag{10}
由此即可通过降维前后保持不变的距离矩阵 DD 求取内积矩阵 BB

对矩阵 BB 做特征值分解 (eigenvalue decomposition),B=ΛTB=Ⅴ\Lambda Ⅴ^T,其中 Λ=diag(λ1,λ2,...,λd)\Lambda= diag(λ_1,λ_2,...,\lambda_d) 为特征值构成的对角矩阵,λ1λ2...λdλ_1≥\lambda_2≥...≥\lambda_dVV 为特征向量矩阵。假定其中有 dd^* 个非零特征值,它们构成对角矩阵 Λ=diag(λ1,λ2,...,λd)\Lambda_*=diag(\lambda_1,\lambda_2,...,\lambda_{d^*})。令 Ⅴ_* 表示相应的特征向量矩阵,则 ZZ 可表达为
Z=Λ1/2TRd×m  .(11) Z=\Lambda_*^{1/2}Ⅴ^T_*∈\mathbb{R}^{d^*×m}\,\,.\tag{11}

在现实应用中为了有效降维,往往仅需降维后的距离与原始空间中的距离尽可能接近,而不必严格相等。此时可取 ddd'\ll d 个最大特征值构成对角矩阵 Λ~=diag(λ1,λ2,...,λd)\tilde{\Lambda}=diag(\lambda_1,\lambda_2,...,\lambda_{d'}),令 ~\tilde{Ⅴ} 表示相应的特征向量矩阵,则 ZZ 可表达为
Z=Λ~1/2~TRd×m  .(12) Z=\tilde{\Lambda}^{1/2}\tilde{Ⅴ}^T∈\mathbb{R}^{d'×m}\,\,.\tag{12}
下图给出了 MDSMDS 算法的描述:

【MDS算法】—— Multiple Dimensional Scaling降维算法简介

​ 一般来说,欲获得低维子空间,最简单的是对原始高维空间进行线性变换。给定 dd 维空间中的样本 X=(x1,x2,...,xm)Rd×mX=(x_1,x_2,...,x_m)∈\mathbb{R}^{d×m},变换之后得到 ddd'≤d 维空间中的样本
Z=WTX  ,(13) Z=W^TX\,\,,\tag{13}

通常令 ddd'\ll d

其中 WRd×dW∈\mathbb{R}^{d×d'} 变换矩阵,Z∈Rd"xm是样本在新空间中的表达。

变换矩阵 WW 可视为 dd'dd 维基向量,zi=WTxiz_i=W^Tx_i 是第 ii 个样本与这 dd' 个基向量分别做内积而得到的 dd' 维属性向量。换言之,ziz_i 是原属性向量 xix_i 在新坐标系 {w1,w2,...,wd}\{w_1,w_2,...,w_{d'}\} 中的坐标向量。若 wiw_iwj(ij)w_j(i≠j) 正交,则新坐标系是一个正交坐标系,此时 WW 为正交变换。显然,新空间中的属性是原空间中属性的线性组合。

基于线性变换来进行降维的方法称为线性降维方法,它们都符合式 (13) 的基本形式,不同之处是对低维子空间的性质有不同的要求,相当于对 WW 施加了不同的约束。在下一节我们将会看到,若要求低维子空间对样本具有最大可分性,则将得到一种极为常用的线性降维方法。

对降维效果的评估,通常是比较降维前后学习器的性能,若性能有所提高则认为降维起到了作用。若将维数降至二维或三维,则可通过可视化技术来直观地判断降维效果。


Reference:《机器学习》