机器学习——多维缩放MDS


以下内容均为个人理解,如有错误,欢迎指出


文章目录

  • 什么是多维缩放
  • 推导过程

什么是多维缩放

多维缩放(Mutiple Dimensional Scaling)是一种经典的降维方法,是一种无监督算法,其目的是使降维后的数据之间的距离保持不变


推导过程

符号表

符号名 含义
D D D m个样本在原始空间的距离矩阵
x i x_i xi 第i个样本的坐标,维度为d
d i s t i j dist_{ij} distij 原始空间 x i x_i xi x j x_j xj之间的距离
z i z_i zi 第i个样本降维后的坐标,维度为 d ′ d' d,其中 d ′ < d d'<d d<d
Z Z Z 降维后的样本构成的矩阵,为 ( z 1 , z 2 , . . . . , z m ) (z_1,z_2,....,z_m) (z1,z2,....,zm)
B B B 为降维后样本的内积矩阵,即 B = Z T Z B=Z^TZ B=ZTZ,其中 b i j = z i T z j b_{ij}=z_i^Tz_j bij=ziTzj

使用上述符号,MDS的目标可以表示为 d i s t i j = ∣ ∣ z i − z j ∣ ∣ dist_{ij}=||z_i-z_j|| distij=zizj,则有
d i s t i j 2 = ∣ z i ∣ 2 + ∣ z j ∣ 2 − 2 z i T z j = b i i + b j j − 2 b i j dist_{ij}^2=|z_i|^2+|z_j|^2-2z_i^Tz_j=b_{ii}+b_{jj}-2b_{ij} distij2=zi2+zj22ziTzj=bii+bjj2bij降维前,我们先对所有的样本进行中心化,即所有样本的每一维数值减去该维的均值,则降维后的数据也满足中心化(这点可以自己算下,比较简单,这里省去),即 ∑ i = 1 m z i = 0 \sum_{i=1}^mz_i=0 i=1mzi=0,则有
∑ i = 1 m b i j = 0 ( 式 1.0 ) ∑ j = 1 m b i j = 0 ( 式 1.1 ) \sum_{i=1}^mb_{ij}=0(式1.0)\\ \sum_{j=1}^mb_{ij}=0(式1.1) i=1mbij=01.0j=1mbij=01.1
现在我们有一个想法,如何用 D D D中的元素表示 B B B,如果我们求出 B B B,然后进行矩阵的开平方操作,不就可以得到 Z Z Z了吗?我们首先来看看如何用 D D D中的元素表示 B B B,依据式1.0和式1.1,我们有
∑ i = 1 m d i s t i j 2 = b 11 + b 22 + . . . . + b m m + m b j j − 2 ( b 1 j + b 2 j + . . . + b m j ) = t r ( B ) + m b j j ( 式 1.2 ) ∑ j = 1 m d i s t i j 2 = b 11 + b 22 + . . . . + b m m + m b i i − 2 ( b i 1 + b i 2 + . . . + b i m ) = t r ( B ) + m b i i ( 式 1.3 ) ∑ i = 1 m ∑ j = 1 m d i s t i j 2 = ∑ i = 1 m ( t r ( B ) + m b i i ) = 2 m   t r ( B ) ( 式 1.4 ) \begin{aligned} &\sum_{i=1}^mdist_{ij}^2=b_{11}+b_{22}+....+b_{mm}+mb_{jj}-2(b_{1j}+b_{2j}+...+b_{mj})=tr(B)+mb_{jj}(式1.2)\\ &\sum_{j=1}^mdist_{ij}^2=b_{11}+b_{22}+....+b_{mm}+mb_{ii}-2(b_{i1}+b_{i2}+...+b_{im})=tr(B)+mb_{ii}(式1.3)\\ &\sum_{i=1}^m\sum_{j=1}^mdist_{ij}^2=\sum_{i=1}^m(tr(B)+mb_{ii})=2m\ tr(B)(式1.4) \end{aligned} i=1mdistij2=b11+b22+....+bmm+mbjj2(b1j+b2j+...+bmj)=tr(B)+mbjj1.2j=1mdistij2=b11+b22+....+bmm+mbii2(bi1+bi2+...+bim)=tr(B)+mbii1.3i=1mj=1mdistij2=i=1m(tr(B)+mbii)=2m tr(B)1.4
t r tr tr称为矩阵的迹,即一个n×n矩阵A的主对角线(从左上方至右下方的对角线)上各个元素的总和被称为矩阵A的迹,令
d i s t i . 2 = 1 m ∑ j = 1 m d i s t i j 2 ( 式 1.5 ) d i s t . j 2 = 1 m ∑ i = 1 m d i s t i j 2 ( 式 1.6 ) d i s t . . 2 = 1 m 2 ∑ i = 1 m ∑ j = 1 m d i s t i j 2 ( 式 1.7 ) dist_{i.}^2=\frac{1}{m}\sum_{j=1}^mdist_{ij}^2(式1.5)\\ dist_{.j}^2=\frac{1}{m}\sum_{i=1}^mdist_{ij}^2(式1.6)\\ dist_{..}^2=\frac{1}{m^2}\sum_{i=1}^m\sum_{j=1}^mdist_{ij}^2(式1.7) disti.2=m1j=1mdistij21.5dist.j2=m1i=1mdistij21.6dist..2=m21i=1mj=1mdistij21.7
由式1.2到式1.7可得
b i j = − 1 2 ( d i s t i j 2 − d i s t i . 2 − d i s t . j 2 + d i s t . . 2 ) ( 式 1.8 ) b_{ij}=-\frac{1}{2}(dist_{ij}^2-dist_{i.}^2-dist_{.j}^2+dist_{..}^2)(式1.8) bij=21(distij2disti.2dist.j2+dist..2)1.8
我们来验算一下式1.8,则有
− 1 2 ( d i s t i j 2 − d i s t i . 2 − d i s t . j 2 + d i s t . . 2 ) = − 1 2 ( b i i + b j j − b i j − 1 m ( 2 t r ( B ) + m b i i + m b j j − 2 t r ( B ) ) ) = b i j \begin{aligned} &-\frac{1}{2}(dist_{ij}^2-dist_{i.}^2-dist_{.j}^2+dist_{..}^2)\\ =&-\frac{1}{2}(b_{ii}+b_{jj}-b_{ij}-\frac{1}{m}(2tr(B)+mb_{ii}+mb_{jj}-2tr(B)))\\ =&b_{ij} \end{aligned} ==21(distij2disti.2dist.j2+dist..2)21(bii+bjjbijm1(2tr(B)+mbii+mbjj2tr(B)))bij
至此,我们可以用 D D D中的元素表示 B B B,接下来,由于 B = Z T Z B=Z^TZ B=ZTZ,我们看看怎么求出 Z Z Z,由于 B B B是方阵,对 B B B进行特征分解可得到 B = V D V T B=VDV^T B=VDVT,其中, D = d i a g ( λ 1 , λ 2 , . . . . , λ d ) D=diag(\lambda_1,\lambda_2,....,\lambda_d) D=diag(λ1,λ2,....,λd),满足 λ 1 ≥ λ 2 ≥ . . . ≥ λ d \lambda_1\geq \lambda_2\geq...\geq \lambda_d λ1λ2...λd V V V为特征向量矩阵,特征向量相互正交,则 Z Z Z可表示为 Z = D 1 2 V T Z=D^\frac{1}{2}V^T Z=D21VT(如何求解出来暂时不清楚),其中 D 1 2 = d i a g ( λ 1 , λ 2 , . . . . . , λ d ) D^\frac{1}{2}=diag(\sqrt\lambda_1,\sqrt\lambda_2,.....,\sqrt\lambda_{d}) D21=diag(λ 1,λ 2,.....,λ d),可以验算一下 Z T Z Z^TZ ZTZ,就会发现其等于 B B B

至此,MDS的推导就完成了,需要注意的是,在推导过程中,我们首先对所有数据维度进行了中心化,此时才能使用式1.8计算 B B B

你可能感兴趣的:(机器学习)