机器学习:降维算法-多维缩放MDS算法(多维尺度变换)推导

直奔主题:

设原样本集中m个样本之间的距离矩阵为D\in R^{m*m},第i行第j列的元素dist_{ij}为样本x_{i}x_{j}的距离。我们的目标是获得样本在d' 维空间的表示,记:Z\in R^{d'*m},d'\leqslant d,且任意两个样本在d'维空间的欧式距离等于原始空间中的距离,即\left \| z_{i}-z_{j} \right \| = dist_{ij}

设B为降维后样本的内积矩阵,记为:B = Z^{T}Z\in R^{m*m},b_{ij} = z_{i}^{T}z_{j}.有:

dist_{ij}^{2} = \left \| z_{i}-z_{j} \right \|^2 = \left \| z_{i} \right \|^{2} + \left \| z_{j} \right \|^{2} - 2z_{i}^{T}z_{j} = b_{ii} + b_{jj} - 2b_{ij}.

如果能通过已知的原始空间的距离矩阵D求到b_{ij},即得到降维后的样本内积矩阵B,则可通过正交对角化求得样本在低维空间的表示Z。所以,下面的工作就是进行一些列神奇的操作来求b_{ij}

为方便讨论,令降维后的样本Z被中心化,即 ,容易得到矩阵B的行和列元素之和均为0,即 \sum _{i=1}^{m}b_{ij} = \sum _{j=1}^{m}b_{ij} = 0,结合之前的 dist_{ij}^{2} = b_{ii} + b_{jj} - 2b_{ij} ,可以得到下面几个等式:

\sum _{i=1}^{m}dist_{ij}^{2} = tr(B) + mb_{jj}

\sum _{j=1}^{m}dist_{ij}^{2} = tr(B) + mb_{ii}

\sum _{i=1}^{m}\sum _{j=1}^{m}dist_{ij}^{2} = 2m\ tr(B)

其中tr(·)表示矩阵的迹,tr(B) = \sum _{i=1}^{m}b_{ii}.令:

dist_{i*}^{2} = \frac{1}{m}\sum _{j=1}^{m}dist_{ij}^{2}

dist_{*j}^{2} = \frac{1}{m}\sum _{i=1}^{m}dist_{ij}^{2}

dist_{**}^{2} = \frac{1}{m^{2}}\sum _{i=1}^{m}\sum _{j=1}^{m}dist_{ij}^{2}

根据上面六个式子和dist_{ij}^{2} = b_{ii} + b_{jj} - 2b_{ij}可得:

b_{ij} = -\frac{1}{2}(dist_{ij}^{2}-dist_{i*}^{2}-dist_{*j}^{2}+dist_{**}^{2}).

于是,我们可以通过降维前后保持不变的距离矩阵D求得降维后的内积矩阵B(B = Z^{T}Z\in R^{m*m}).

因为B是对称矩阵,所以必可正交对角化,即可化为:B = \vee \wedge \vee ^{T},其中\wedge = diag(\lambda_{1},\lambda_{2},...,\lambda_{m})为特征值构成的对角矩阵,\lambda_{1}\geqslant \lambda_{2}\geqslant ...\geqslant \lambda_{m},V是由特征向量单位正交化得到的正交矩阵。假设其中有d*个非零特征值,他们构成对角矩阵\wedge _{*} = diag(\lambda_{1},\lambda_{2},...,\lambda_{d^{*}}),对应的正交矩阵记为V_{*},则降维后的样本可表示为:

Z = \wedge _{*}^{1/2}\vee _{*}^{T}\in R^{d^{*}*m}

之所以可以舍弃0特征值,因为0特征值以及对应的向量对B没有影响,可以把B = \vee \wedge \vee ^{T}展开来看更明显,假设矩阵V为\vee = [\alpha _{1},\alpha _{2},...,\alpha _{m}],则:

B = \vee \wedge \vee ^{T} = [\alpha _{1},\alpha _{2},...,\alpha _{m}]\begin{bmatrix} \lambda_{1} & & & \\ & . & & \\ & & . & \\ & & & \lambda_{m} \end{bmatrix}\begin{bmatrix} \alpha _{1}^{T}\\ .\\ .\\ \alpha _{m}^{T} \end{bmatrix} = \lambda_{1}\alpha _{1}\alpha _{1}^{T}+\lambda_{2}\alpha _{2}\alpha _{2}^{T}+...+\lambda_{m}\alpha _{m}\alpha _{m}^{T}

可以看出,若特征值为0,对B没有任何影响,也就对Z没有影响,可以舍弃。并且,特征值越小,对B的影响越小,所以可以根据降维要求取前d''大的特征值。

若特征值全大于等于0,则降维前后的样本间的距离完全相等;但若特征值存在负值,会带来一些麻烦,因为\wedge _{*}不能开方(Z = \wedge _{*}^{1/2}\vee _{*}^{T}),意味着降维前后的样本间的距离不能完全相等。此时,若正值的特征值远大于负值的特征值的绝对值,那么可以舍弃负特征值,这样也能做到降维前后样本间的距离尽量接近。

事实上,现实应用中为了有效降维,降维前后的距离尽量接近就好,不必完全相等。此时可取d''\ll d个最大特征值构成的对角矩阵。

MDS算法描述如下:

参考资料:周志华《机器学习》

相关博文:实对称矩阵必可正交对角化证明

猜你喜欢

转载自blog.csdn.net/weixin_35732969/article/details/81436083