手记

【机器学习】降维——MDS算法原理推导

MDS算法

我们日常观测或者收集到的数据来看,很多数据特征都是用不到的,而学习任务可能仅仅局限于某个低维分布(某些低维特征),这就是高维空间中的一个低维“嵌入”。数据降维,是解决数据“维数灾难”的有效手段,即通过某种数学变换将原始高维属性空间转变为一个低维的“子空间”。MDS算法(Multiple Dimensional Scaling,简称MDS)是一种行之有效的低维嵌入算法,即在保障原始空间与低维空间样本之间距离一致的前提下,将高维数据进行降维。

原理推导

假设有mm个样本,其样本空间如下:
T={x1,x2,,xm}xiRdT=\{x_1,x_2,\cdots,x_m\} \qquad x_i \in R^d
DD表示样本间的距离,其中DRm×mD\in R^{m \times m},其中第iijj列的元素distijdist_{ij}为样本xix_i到样本xjx_j之间的距离。很显然,矩阵DD是一个对称矩阵。MDS算法的目的是在不改变样本间距离的前提下,实现数据降维,故我们最终要得到样本在dd'(新样本空间)中的表示ZRd×m,ddZ \in R^{d' \times m},d'\leq d,且任意两个样本在dd'维空间中的欧氏距离等于原始空间中的距离,即zizj=distij||z_i-z_j||=dist_{ij}
B=ZTZRm×mB=Z^TZ \in R^{m \times m},其中BB为降维后样本的内积矩阵,其中bij=ziTzjb_{ij}=z_i^Tz_j,则有
distij2=zi2+zj22ziTzj=bii+bjj2bij(1)\begin{aligned} dist_{ij}^2 &=||z_i||^2+||z_j||^2-2z_i^Tz_j \\&=b_{ii}+b{jj}-2b_{ij} \qquad \qquad \dots(1)\end{aligned}
为了便于讨论,令降维后的样本ZZ被中心化,即i=1mzi=0\sum_{i=1}^mz_i=0,显然,矩阵BB的行与列之和均为0,即i=1mbij=j=1mbij=0\sum_{i=1}^mb_{ij}=\sum_{j=1}^mb_{ij}=0,可得如下一些变换:
i=1mdistij2=tr(B)+mbjj(2)\sum_{i=1}^m dist_{ij}^2=tr(\textbf{B})+mb_{jj} \qquad \qquad \dots(2)
j=1mdistij2=tr(B)+mbii(3)\sum_{j=1}^m dist_{ij}^2=tr(\textbf{B})+mb_{ii} \qquad \qquad \dots(3)
i=1mj=1mdistij2=2m tr(B)(4)\sum_{i=1}^m \sum_{j=1}^m dist_{ij}^2=2m \ tr(\textbf{B}) \qquad \qquad \dots(4)
其中tr()tr(\cdot)表示矩阵的迹(trace),tr(B)=i=1mzi2tr(\textbf{B})=\sum_{i=1}^m||z_i||^2。令
disti2=1mj=1mdistij2(5)dist_{i\cdot}^2=\frac{1}{m}\sum_{j=1}^m dist_{ij}^2 \qquad \qquad \dots(5)
distj2=1mi=1mdistij2(6)dist_{\cdot j}^2=\frac{1}{m}\sum_{i=1}^m dist_{ij}^2 \qquad \qquad \dots(6)
dist2=1m2i=1mj=1mdistij2(7)dist_{\cdot \cdot}^2=\frac{1}{m^2}\sum_{i=1}^m \sum_{j=1}^mdist_{ij}^2 \qquad \qquad \dots(7)
结合以上(1)~(7)可得:
bij=12(distij2disti2distj2+dist2)(8)b_{ij}=-\frac{1}{2}(dist_{ij}^2-dist_{i \cdot}^2-dist_{\cdot j}^2+dist_{\cdot \cdot}^2) \qquad \qquad \dots(8)
由此即可通过降维前后保持不变的距离矩阵DD求取内积矩阵BB,又由于矩阵BB是对阵矩阵,对其进行特征分解,即
B=VΛVTB=V\Lambda V^T
其中,Λ=diag(λ1,λ2,,λd)\Lambda=diag(\lambda_1,\lambda_2,\cdots,\lambda_d)为特征值构成的对角矩阵,λ1λ2λd\lambda_1\geq \lambda_2 \geq \cdots \geq \lambda_d,VV为对应的特征向量矩阵。假定其中有dd^*个非零特征值,它们构成对角矩阵Lambda=diag(λ1,λ2,,λd)Lambda_*=diag(\lambda_1,\lambda_2,\cdots,\lambda_{d^*}),令VV_*表示相应的特征向量矩阵,则ZZ可表达为:
Z=Λ12VTRd×mZ=\Lambda_*^{\frac{1}{2}}V_*^T \in R^{d^* \times m}
在现实应用中为了有效降维,往往仅需降维后的距离与原始空间中的距离尽可能接近,而不必言格相等。此时可取d<<dd'<<d个最大特征值构成对角矩阵Λ^=diag(λ1,λ2,,λd)\hat{\Lambda}=diag(\lambda_1,\lambda_2,\cdots,\lambda_{d'}),令V^\hat{V}表示相应的特征向量矩阵,则ZZ可表达为:
Z=Λ^12V^T Rd×mZ=\hat{\Lambda}^{\frac{1}{2}}\hat{V}^T \ \in R^{d' \times m}
故推导完毕。

参考文献

4人推荐
随时随地看视频
慕课网APP