降维系列之 MDS多维缩放 与 ISOMAP 等度量映射

主要思路

MDS(Multi-dimensional Scaling)是一种经典的降维方法。本文主要参考这个PPT
给定样本集 X = [ x 1 , ⋯   , x n ] ∈ R D × n X=[x_1,\cdots,x_n]\in \mathbb{R}^{D\times n} X=[x1,,xn]RD×n,其中 n n n表示样本数量, D D D表示维度,每一列表示一个样本,以及一种满足如下条件的度量方式 d a b d_{ab} dab

  • d a b ≥ 0 d_{ab}\ge 0 dab0
  • d a b = 0 ,   i f   a = b d_{ab}=0,\ if\ a=b dab=0, if a=b
  • d a b = d ( b , a ) d_{ab}=d(b,a) dab=d(b,a)
  • d a c ≤ d a b + d b c d_{ac}\le d_{ab}+d_{bc} dacdab+dbc

一般假设 d d d取欧氏距离。MDS希望寻找到降完维后的结果 Y = [ y 1 , ⋯   , y n ] ∈ R d × n Y=[y_1,\cdots,y_n]\in \mathbb{R}^{d\times n} Y=[y1,,yn]Rd×n尽可能满足:
d i j = ∥ y i − y j ∥ 2 d_{ij}=\| y_i-y_j \|_2 dij=yiyj2

d i j d_{ij} dij x i , x j x_i,x_j xi,xj的欧氏距离定义。

经典MDS的解

假设现在已经找到了 Y Y Y使得其中恰好能满足:
d i j = ∥ y i − y j ∥ 2 d_{ij}=\|y_i-y_j\|_2 dij=yiyj2

然而对于任意 c ∈ R d × 1 c\in \mathbb{R}^{d\times 1} cRd×1都有:
∥ ( y i + c ) − ( y j + c ) ∥ 2 = d i j = ∥ y i − y j ∥ 2 = d i j \|(y_i+c)-(y_j+c) \|_2=d_{ij}=\|y_i-y_j\|_2=d_{ij} (yi+c)(yj+c)2=dij=yiyj2=dij

也就是说只要有一组解满足条件,通过平移就一定能得到无限多组解满足条件,因此MDS加了一个限制来避免这种情况:
∑ i = 1 n Y i j = 0 , f o r   a l l   j \sum_{i=1}^n Y_{ij}=0,for\ all\ j i=1nYij=0,for all j

即限制 Y Y Y的行之和为0,这就是要让求出的 Y Y Y是经过中心化的。

在求解时,MDS构造矩阵 B = Y T Y B=Y^TY B=YTY,这样优化目标就变成了:
d i j 2 = ∥ y i − y j ∥ 2 2 = y i T y i + y j T y j − 2 y i T y j = b i i + b j j − 2 b i j d_{ij}^2=\|y_i-y_j\|_2^2=y_i^Ty_i+y_j^Ty_j-2y_i^Ty_j=b_{ii}+b_{jj}-2b_{ij} dij2=yiyj22=yiTyi+yjTyj2yiTyj=bii+bjj2bij

其中 b i j b_{ij} bij B B B的第 ( i , j ) (i,j) (i,j)个元素。现在希望把 b i j b_{ij} bij d i j d_{ij} dij表示出来。

有如下的等式关系是成立的:
∑ i = 1 n d i j 2 = ∑ i = 1 n y i T y i + n y j T y j − 2 ( ∑ i = 1 n y i T ) y j = t r ( B ) + n b j j ∑ j = 1 n d i j 2 = ∑ i = 1 n y j T y j + n y i T y i − 2 y i ( ∑ i = 1 n y j ) = t r ( B ) + n b i i ∑ i = 1 n ∑ j = 1 n d i j 2 = ∑ i = 1 n ∑ j = 1 n ( y i T y i + y j T y j − 2 y i T y j ) = 2 n t r ( B ) \sum_{i=1}^n d_{ij}^2=\sum_{i=1}^ny_i^Ty_i+ny_j^Ty_j-2(\sum_{i=1}^ny_i^T)y_j=tr(B)+nb_{jj} \\ \sum_{j=1}^n d_{ij}^2 = \sum_{i=1}^ny_j^Ty_j+ny_i^Ty_i-2y_i(\sum_{i=1}^ny_j)=tr(B)+nb_{ii} \\ \sum_{i=1}^n\sum_{j=1}^nd_{ij}^2=\sum_{i=1}^n\sum_{j=1}^n(y_i^Ty_i+y_j^Ty_j-2y_i^Ty_j)=2ntr(B) i=1ndij2=i=1nyiTyi+nyjTyj2(i=1nyiT)yj=tr(B)+nbjjj=1ndij2=i=1nyjTyj+nyiTyi2yi(i=1nyj)=tr(B)+nbiii=1nj=1ndij2=i=1nj=1n(yiTyi+yjTyj2yiTyj)=2ntr(B)

这主要是因为 Y Y Y是中心化的,因此各向量之和 ∑ i = 1 n y i T , ∑ j = 1 n y j T \sum_{i=1}^n y_i^T,\sum_{j=1}^n y_j^T i=1nyiT,j=1nyjT为全0向量。进一步有:
t r ( B ) = 1 2 n ∑ i = 1 n ∑ j = 1 n d i j 2 b i i = 1 n ∑ j = 1 n d i j 2 − 1 2 n 2 ∑ i = 1 n ∑ j = 1 n d i j 2 b j j = 1 n ∑ i = 1 n d i j 2 − 1 2 n 2 ∑ i = 1 n ∑ j = 1 n d i j 2 tr(B)=\frac{1}{2n}\sum_{i=1}^n\sum_{j=1}^nd_{ij}^2 \\ b_{ii} =\frac{1}{n} \sum_{j=1}^n d_{ij}^2 - \frac{1}{2n^2}\sum_{i=1}^n\sum_{j=1}^nd_{ij}^2 \\ b_{jj} = \frac{1}{n} \sum_{i=1}^n d_{ij}^2-\frac{1}{2n^2}\sum_{i=1}^n\sum_{j=1}^nd_{ij}^2 tr(B)=2n1i=1nj=1ndij2bii=n1j=1ndij22n21i=1nj=1ndij2bjj=n1i=1ndij22n21i=1nj=1ndij2

因此:
b i j = − 1 2 ( d i j 2 − b i i − b j j ) = − 1 2 ( d i j 2 − 1 n ∑ j = 1 n d i j 2 − 1 n ∑ i = 1 n d i j 2 + 1 n 2 ∑ i = 1 n ∑ j = 1 n d i j 2 ) b_{ij}=-\frac{1}{2}(d_{ij}^2-b_{ii}-b_{jj})=-\frac{1}{2}(d_{ij}^2-\frac{1}{n} \sum_{j=1}^n d_{ij}^2 -\frac{1}{n} \sum_{i=1}^n d_{ij}^2+\frac{1}{n^2}\sum_{i=1}^n\sum_{j=1}^nd_{ij}^2) bij=21(dij2biibjj)=21(dij2n1j=1ndij2n1i=1ndij2+n21i=1nj=1ndij2)

这样就能求出 B B B矩阵了。而 B = Y T Y B=Y^TY B=YTY,对 B B B做特征值分解得:
B = V Λ V T = V Λ 1 / 2 Λ 1 / 2 V T = Y T Y B=VΛV^T=VΛ^{1/2}Λ^{1/2}V^T=Y^TY B=VΛVT=VΛ1/2Λ1/2VT=YTY

其中 Λ = d i a g ( λ 1 , ⋯   , λ n ) Λ=diag(\lambda_1,\cdots,\lambda_n) Λ=diag(λ1,,λn)为特征值从大到小排列构成的对角矩阵, V V V是特征向量矩阵。因此可知:
Y = Λ 1 / 2 V T Y=Λ^{1/2}V^T Y=Λ1/2VT

降维的时候,就选择前 d d d大的特征值及其对应的特征向量构成 Λ Λ Λ V V V即可。

MDS总结

B B B n × n n\times n n×n的矩阵,特征分解 B = V Λ V T B=VΛV^T B=VΛVT,最多也就 n n n个特征值,因此 V × R n × n V\times \mathbb{R}^{n\times n} V×Rn×n,也就是说做到这里的时候 V V V就是 n n n维的,是满足 b i j = d i j b_{ij}=d_{ij} bij=dij的,是把 D D D维的 X X X变成了 n n n维的 B B B
如果要寻求维度低于 n n n d d d维的 Y Y Y的话,“取前 d d d大的特征值及其对应的特征向量”这种选法相当于在对 B B B做PCA,因为对称矩阵 B B B的特征分解和SVD分解是等价的,其奇异值是特征值的平方。
所以MDS真的有点奇怪,为什么要先求 B B B再做PCA呢,难道原矩阵 X X X不就是维持样本间距离的最好最原始的表达么,为什么不直接做PCA。

MDS的推导与其他降维方法不同,是直接推出来的,没有迭代或乘子法。

ISOMAP等度量映射

ISOMAP构建 D D D的方法与MDS不同,后面的步骤都一样。它会先寻找每个样本的 k k k近邻,样本与其近邻之间的距离用欧氏距离度量,与非近邻之间的距离为无穷大,然后用最短路径算法(Dijkstra或者Floyd)来构建 D D D矩阵。然后再做MDS。这种度量方法叫做“测地线距离”,相比于MDS,可以更好的控制数据信息的流失,能够在低维空间中更加全面的将高维空间的数据表现出来。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值