流形学习(Manifold Learning)简单介绍

article/2025/10/11 5:19:09

传统的机器学习方法中,数据点和数据点之间的距离和映射函数f都是定义在欧式空间中的,然而在实际情况中,这些数据点可能不是分布在欧式空间中的,因此传统欧式空间的度量难以用于真实世界的非线性数据,从而需要对数据的分布引入新的假设。

流形(Manifold)是局部具有欧式空间性质的空间,包括各种纬度的曲线曲面,例如球体、弯曲的平面等。流形的局部和欧式空间是同构的。

流形是线性子空间的一种非线性推广。

拓扑学角度:局部区域线性,与低维欧式空间拓扑同胚(连续的变换最后都能变成一样的两个物体,称为同胚,Homeomorphism)。

微分几何角度:有重叠chart的光滑过渡(把流体的任何一个微小的局部看作是欧几里德空间,称为一个chart)。

黎曼流形就是以光滑的方式在每一点的切空间上指定了欧式内积的微分流形。

什么是流形学习

流形学习假设所处理的数据点分布在嵌入于外维欧式空间的一个潜在的流形体上,或者说这些数据点可以构成这样一个潜在的流形体。

假设数据是均匀采样于一个高维欧氏空间中的低维流形,流形学习就是从高维采样数据中恢复低维流形结构,即找到高维空间中的低维流形,并求出相应的嵌入映射,以实现维数约简或者数据可视化。它是从观测到的现象中去寻找事物的本质,找到产生数据的内在规律。

image

常用方法介绍

这些流形学习方法具有一些共同的特征:首先构造流形上样本点的局部邻域结构,然后用这 些局部邻域结构来将样本点全局的映射到一个低维空间。它们之间的不同之处主要是在于构 造的局部邻域结构不同以及利用这些局部邻域结构来构造全局的低维嵌入方法的不同。

image

ISOMAP(Isometric feature mapping)

ISOMAP引入测地线距离来表示潜在流形上点与点之间的距离,并在降维过程中保持该距离不变。

保持全局测地距离: 测地距离反映数据在流形上的真实距离差异。

等距映射: 基于线性算法MDS,采用“测地距离”作为数据差异度量。

多维尺度变换(MDS)

MDS是一种非监督的维数约简方法。

MDS的基本思想:约简后低维空间中任意两点间的距离应该与它们在原高维空间中的距离相同。

MDS的求解:通过适当定义准则函数来体现在低位空间中对高维距离的重建误差,对准则函数用梯度下降法求解,对于某些特殊的距离可以推导出解析解法。

MDS的目标是在降维的过程中将数据的dissimilarity(差异性)保持下来,也可以理解降维让高维空间中的距离关系与低维空间中距离关系保持不变。

这里的距离用矩阵表示,N个样本的两两距离用矩阵A的每一项undefined表示,并且假设在低维空间中的距离是欧式距离。而降维后的数据表示为undefined,那么就有undefined,右边的三项统一用内积矩阵E来表示undefined,去中心化之后,E的每一行每一列之和都是0,从而可以推导得出:

undefined

其中undefined单位矩阵I减去全1矩阵的1/N,i⋅与⋅j是指某列或者某列总和,从而建立了距离矩阵A与内积矩阵E之间的关系。因而在知道A情况下就能够求解出E,进而通过对E做特征值分解,令undefined,其中Λ是对角矩阵,每一项都是E的特征值λ1≥…≥λdλ1≥…≥λd,那么在所有特征值下的数据就能表示成undefined,当选取d个最大特征值就能让在d维空间的距离矩阵近似高维空间D的距离矩阵,从而MDS流程如下:

输入: 距离矩阵undefined,上标表示矩阵大小,原始数据是D维,降维到d维。

输出: 降维后的矩阵undefined

目标:降维的同时保证数据之间的相对关系不变。

假设:已知N个样本的距离矩阵

  1. 计算出undefined

  2. 计算内积矩阵E

  3. 对E做特征值分解

  4. 取d个最大特征值构成undefined,对应的特征向量按序排列构成undefined

测地距离

测地线:流形上连接两个点的最短曲线。

图逼近测地距离

image

ISOMAP算法流程

  1. 计算每个点的近邻点。

  2. 在样本集上定义一个赋权无向图,如果 undefinedundefined互为近邻点,则边的权值为undefined

  3. 计算图中两点间的最短距离,记所得的距离矩阵为undefined

  4. 用MDS求低维嵌入坐标,

    undefined

    低维嵌入是undefined的第1大到第d大的特征值所对应的特征向量。

ISOMAP MATLAB实例

源代码及数据集下载地址

调用ISOMAP作用在swiss_roll_data数据集上:

>> load swiss_roll_data>> D = L2_distance(X_data(:,1:1000), X_data(:,1:1000), 1); >> options.dims = 1:10;>> options.landmarks = 1:50; >> [Y, R, E] = IsomapII(D, 'k', 7, options);

结果:

image

image

summary

前提假设

  1. 数据所在的低维流形与欧式空间的一个子集整体等距。

  2. 该欧式空间的子集是一个凸集。

思想核心

  1. 较近点对之间的测地距离用欧式距离代替。

  2. 较远点对之间的测地距离用最短路径来逼近。

算法特点

  1. 适用于学习内部平坦的低维流形。

  2. 不适用于学习有较大内在曲率的流形。

  3. 计算点对间的最短路径比较耗时。

LLE(Locally linear embedding)

  1. 显式利用“局部线性”的假设,流形学习的局部区域具有欧式空间的性质,那么在LLE中就假设某个点xi坐标可以由它周围的一些点的坐标线性组合求出。

  2. 保持局部邻域几何结构-重构权重。

  3. 权重对样本集的几何变幻具有不变性。

前提假设

  1. 采样数据所在的低维流形在局部是线性的。

  2. 每个采样点均可以利用其近邻样本进行线性重构表示。

学习目标

  1. 低维空间中保持每个邻域中的重构权值不变。

  2. 在嵌入映射为局部线性的条件下,最小化重构误差。

  3. 最终形式化为特征值分解问题。

优点

  1. 算法可以学习任意维的局部线性的低维流形

  2. 算法归结为稀疏矩阵特征值计算,计算复杂度相对较小。

  3. 降维过程中保持了数据的局部拓扑结构。

缺点

  1. 算法所学习的流形只能是不闭合的。

  2. 算法要求样本在流形上是稠密采样的。

  3. 算法对样本中的噪声和邻域参数比较敏感。

LLE算法流程

算法的主要步骤分为三步:

(1)寻找每个样本点的k个近邻点;

(2)由每个样本点的近邻点计算出该样本点的局部重建权值矩阵;

(3)由该样本点的局部重建权值矩阵和其近邻点计算出该样本点的输出值。

Input X: D by N matrix consisting of N data items in D dimensions.Output Y: d by N matrix consisting of d < D dimensional embedding coordinates for the input points.1. Find neighbours in X space [b,c].
for i=1:Ncompute the distance from Xi to every other point Xjfind the K smallest distances assign the corresponding points to be neighbours of Xi
end2. Solve for reconstruction weights W.
for i=1:Ncreate matrix Z consisting of all neighbours of Xi [d]subtract Xi from every column of Zcompute the local covariance C=Z'*Z [e]solve linear system C*w = 1 for w [f]set Wij=0 if j is not a neighbor of iset the remaining elements in the ith row of W equal to w/sum(w);
end3. Compute embedding coordinates Y using weights W.
create sparse matrix M = (I-W)'*(I-W)
find bottom d+1 eigenvectors of M(corresponding to the d+1 smallest eigenvalues) 
set the qth ROW of Y to be the q+1 smallest eigenvector(discard the bottom eigenvector [1,1,1,1...] with eigenvalue zero)

image

LLE matlab代码

% LLE ALGORITHM (using K nearest neighbors)
%
% [Y] = lle(X,K,dmax)
%
% X = data as D x N matrix (D = dimensionality, N = #points)
% K = number of neighbors
% dmax = max embedding dimensionality
% Y = embedding as dmax x N matrix%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%function [Y] = lle(X,K,d)[D,N] = size(X);
fprintf(1,'LLE running on %d points in %d dimensions\n',N,D);% STEP1: COMPUTE PAIRWISE DISTANCES & FIND NEIGHBORS 
fprintf(1,'-->Finding %d nearest neighbours.\n',K);X2 = sum(X.^2,1);
distance = repmat(X2,N,1)+repmat(X2',1,N)-2*X'*X;[sorted,index] = sort(distance);
neighborhood = index(2:(1+K),:);% STEP2: SOLVE FOR RECONSTRUCTION WEIGHTS
fprintf(1,'-->Solving for reconstruction weights.\n');if(K>D) fprintf(1,'   [note: K>D; regularization will be used]\n'); tol=1e-3; % regularlizer in case constrained fits are ill conditioned
elsetol=0;
endW = zeros(K,N);
for ii=1:Nz = X(:,neighborhood(:,ii))-repmat(X(:,ii),1,K); % shift ith pt to originC = z'*z;                                        % local covarianceC = C + eye(K,K)*tol*trace(C);                   % regularlization (K>D)W(:,ii) = C\ones(K,1);                           % solve Cw=1W(:,ii) = W(:,ii)/sum(W(:,ii));                  % enforce sum(w)=1
end;% STEP 3: COMPUTE EMBEDDING FROM EIGENVECTS OF COST MATRIX M=(I-W)'(I-W)
fprintf(1,'-->Computing embedding.\n');% M=eye(N,N); % use a sparse matrix with storage for 4KN nonzero elements
M = sparse(1:N,1:N,ones(1,N),N,N,4*K*N); 
for ii=1:Nw = W(:,ii);jj = neighborhood(:,ii);M(ii,jj) = M(ii,jj) - w';M(jj,ii) = M(jj,ii) - w;M(jj,jj) = M(jj,jj) + w*w';
end;% CALCULATION OF EMBEDDING
options.disp = 0; options.isreal = 1; options.issym = 1; 
[Y,eigenvals] = eigs(M,d+1,0,options);
Y = Y(:,2:d+1)'*sqrt(N); % bottom evect is [1,1,1,1...] with eval 0fprintf(1,'Done.\n');%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% other possible regularizers for K>D
%   C = C + tol*diag(diag(C));                       % regularlization
%   C = C + eye(K,K)*tol*trace(C)*K;                 % regularlization

LLE学习实例

调用上述LLE代码,作用在swiss_roll_data数据集中。

image

image

拉普拉斯特征映射(Laplacian Eigenmap)

基本思想

在高维空间中离的很近的点投影到低维空间中也应该离得很紧。

LE方法在黎曼几何的框架内,用邻接图来描述一个流形,并在映射到低维空间的过程中,保持了图的局部邻接关系。

LE的基本思想就是用一个无向有权图来描述一个流形,然后通过用图的嵌入(graph embedding)来找低维表示。简单来说,就是保持图的局部邻接关系的情况把这个图从高维空间中重新画在一个低维空间中(graph drawing)。

求解方法

求解图拉普拉斯算子的广义特征值问题。

优点

算法是局部非线性方法,与谱图理论有很紧密的联系。

算法通过求解稀疏矩阵的特征值问题解析的求出整体最优解,效率非常高。

算法使原空间中离得很近的点在低维空间中也离得很近,可以用于聚类。

缺点

对算法参数和数据采样密度比较敏感。

不能有效保持流形的全局几何结构。

拉普拉斯算子

image

图上的拉普拉斯算子

image

Laplacian Eigenmap算法流程

  1. 从样本点构建一个近邻图,图的顶点为样本点,离得很近的两点用边相连。(K近邻或undefined邻域)。

  2. 给每条边赋予权值,如果第i个点和第j个点不相连,权值为0,否则权值为1.

  3. 计算图拉普拉斯算子的广义特征向量,求得低维嵌入。

    令D为对角矩阵,undefined,L是近邻图上的拉普拉斯算子,求解广义特征值问题undefined

LTSA 算法

LTSA 采取先局部拟合再全局排列的思想,首先利用PCA求得各个样本邻域的近似切空间
,然后利用排列技术将各个切空间上的投影坐标进行全局排列来求得低维嵌入表示。给定采样于d维流形M的D维样本集 X = {x1,x2 ……,xn), d < D,N维样本个数,LTSA算法按照如下步骤求解低维嵌入:

(1) 邻域选择。 对每个样本xi,选择与其最近的k个样本(包括xi在内)构成局部邻域Xi。

(2) 基于PCA计算局部坐标。对局部邻域Xi,求投影矩阵V使得各样本到其投影的距离之和最小:

image

image

对Swiss Roll数据进行稠密采样(2000个样本点)和稀疏采样(400)个样本点后运行LTSA算法的二维嵌入结果。

image

稠密采样下能够较好的保持原始数据的拓扑几何结果。

而稀疏采样下的地位嵌入结果则较为杂乱,无法反映数据的几何结构。

参考资料

[1]中科院计算所,《流形学习专题》。

[2]浙江大学,何晓飞,《机器学习的几何观点》。

[3]简述多种降维方法

[4]Sam T. Roweis & Lawrence K. Saul,Locally Linear Embedding,

[5]J. B. Tenenbaum, V. de Silva and J. C. Langford, A Global Geometric Framework for Nonlinear
Dimensionality Reduction


http://chatgpt.dhexx.cn/article/HnWu9NiX.shtml

相关文章

谈谈黎曼流形与视觉距离错觉问题

转自&#xff1a;https://baijiahao.baidu.com/s?id1612647738961091671&wfrspider&forpc 作者&#xff1a;看海 链接&#xff1a;https://www.zhihu.com/question/30553302/answer/311788410 来源&#xff1a;知乎 data&#xff1a;20190509 一、流形科普知识 1、…

流形学习详解

流形学习 流形学习&#xff08;manifold learning&#xff09;是一类借鉴了拓扑流形概念的降维方法。 介绍流行学习首先要说明一下什么是流形&#xff1a;即指具有不同维数的任意光滑的曲线或曲面。 流形学习是基于这样一种假设&#xff1a;若低维流形嵌入到高维空间中&#x…

黎曼流形学习的学习笔记(2):Neural Ordinary Differential Equations(来源:NIPS 2018 oral) (未完待续)

作者想解决的问题&#xff1a;这是一篇提出新模型的论文&#xff0c;把输入和输出当作微分方程在不同时刻的解&#xff0c;这样做可以节省很多空间&#xff0c;因为不需要计算每一步的具体结果&#xff0c;只需要保存得到的函数。 思路&#xff1a;由于残差网络 (空间上) 和RNN…

流形学习(Mainfold Learning)

最近在看生成对抗网络&#xff08;Generative Adversarial Networks&#xff0c;GAN&#xff09;的时候&#xff0c;几乎在每一篇文章中都会看到mainfold这个词&#xff0c;哪么它在GAN中想要表达什么呢&#xff1f;或者说GAN和流形学习&#xff08;Mainfold Learning&#xff…

什么是流形?

什么是流形&#xff1f; 写的很好。 感觉就是一个多维空间的抽象&#xff0c;在这个空间中&#xff0c;距离的定义稍微有些特殊&#xff1b; 1、流形就是弯曲的 N实数描述的 点集合&#xff1b; 2、两点间的距离有定义&#xff1a;邻近的两点&#xff0c;其距离是 座标差的平方…

黎曼流形学习的学习笔记(1):Moser Flow: Divergence-based Generative Modeling on Manifolds(来源:NIPS 2021 oral)

亮点&#xff1a; 1. 使用Moser Flow (MF) 相比于其他连续标准化流 (CNF)不需要在训练过程解常微分方程 (ODE)&#xff0c;因此训练速度相对较快&#xff1b; 2. 在1的基础上&#xff0c;证明了在一定的前提下&#xff0c;MF可以泛化任意的流形&#xff0c;并且这是流模型 (…

论文阅读:在Stiefel流形上的黎曼优化

原文&#xff1a;EFFICIENT RIEMANNIAN OPTIMIZATION ON THE STIEFEL MANIFOLD VIA THE CAYLEY TRANSFORM Citing: https://arxiv.org/pdf/2002.01113.pdf 目录 摘要 1 简介 2 相关工作 3 基础知识 3.1 黎曼流形 定义1&#xff1a;黎曼流形 定义2&#xff1a;测地、幂映…

黎曼几何与黎曼流形

目录 0.黎曼几何 1. 欧几里得几何与黎曼几何的区别 2.黎曼流形 3.黎曼距离 4.切空间 5.黎曼均值 6. SPD矩阵如何形成黎曼流型 7.切线空间映射 8.同余变换和同余不变 9.黎曼对齐 科普性笔记&#xff0c;做了解&#xff0c;不深入。 0.黎曼几何 黎曼几何是一种基于欧几…

机器学习知识点(二十三)黎曼流形认知

对于流形&#xff0c;我在机器学习中的认识就是局部欧式距离的应用&#xff0c;当然其背后强大的数学逻辑也不是一时可以窥全貌&#xff0c;只好先看看一些基础概念。 1、基本概念 流形&#xff0c;是局部具有欧几里得空间性质的空间&#xff0c;是欧几里得空间中的曲线、曲面…

数学建模-神经网络模型

神经网络简介 人工神经网络是在现代神经科学的基础上提出和发展起来的&#xff0c;旨在反映人脑结构及功能的一种抽象数学模型。自1943 年美国心理学家W. McCulloch 和数学家W. Pitts 提出形式神经元的抽象数学模型—MP 模型以来&#xff0c;人工神经网络理论技术经过了50 多年…

数学建模--预测类模型

目录 一、中短期预测 1、灰色预测法 ①适用范围 ②模型实现 2、回归分析 ①适用范围 ②模型实现 3、时间序列分析 ①自适应滤波法 ②指数平滑法 ③移动平均法 4、微分方程 二、长期预测 1、神经网络预测 2、logistic模型 ①模型介绍 ②模型分析及代码 一、中短…

数学建模 -- 预测模型

参考清风老师的数学建模&#xff0c;用于复习&#xff01;&#xff01;&#xff01; NO1.灰色预测 一.灰色系统 灰色预测是对既含有已知信息又含有不确定信息的系统进行预测&#xff0c;就是对在一定范围内变化的、与时间有关的灰色过程进行预测。 灰色预测对原始数据进行生成…

数学建模——评价模型

文章目录 一.模糊综合评价模型1.基础知识2.一级模糊综合评价3.二级模糊综合评价 二.灰色关联分析模型1.灰色关联分析原理2.灰色关联分析步骤 三. Topsis&#xff08;理想解法&#xff09;1.理想解法原理2.Topsis法步骤 四.线性加权综合评价模型&#xff08;不是很推荐用&#x…

数学建模(一)

个人不仅仅是一个ctfer&#xff0c;数学也是很强的呀。hhhh下面记录一些简单的 数学建模用到的python基础 知识点一&#xff1a;复合数据类型相关 append&#xff1a;每次往列表尾部增加一个元素。 extend:列表尾部添加多个数据 insert(索引位置&#xff0c;插入值) #这里是…

数学建模-数学规划模型

数学规划模型 一、概述 1.什么是数学规划&#xff1f; 运筹学的一个分支&#xff0c;用来研究在给定条件下(即约束条件)&#xff0c;如何按照某一衡量指标&#xff08;目标函数&#xff09;来寻求计划、管理工作中的最优方案。 即求目标函数在一定约束条件下的极值问题 2.数学…

【数学建模】模型的评价、模型的推广与改进

6.1模型的评价 6.1.1模型的稳定性分析&#xff08;灵敏度分析&#xff09; https://mp.weixin.qq.com/s/EZr2HeqzDLHQygk4nO0iiA 讲的比较好&#xff0c;分为决策模型、动态模型、概率模型、线性回归、时间预测 建模过程会对问题做一些假设&#xff0c;需要考虑所得结果对每一条…

数学建模 —— 评价模型

文章目录 前言一、层次分析法&#xff08;AHP&#xff09;1.介绍2.算法流程3.局限性 二、优劣解距离法&#xff08;Topsis法&#xff09;1.介绍2.算法流程3.模型拓展 —— 带权重的Topsis1.使用层次分析法来确定权重取值2.基于熵权法对Topsis模型的修正熵权法的计算步骤 三、灰…

数学建模之优化模型详解

全文共8090个字&#xff0c;码字总结不易&#xff0c;老铁们来个三连&#xff1a;点赞、关注、评论作者&#xff1a;[左手の明天] 原创不易&#xff0c;转载请联系作者并注明出处 版权声明&#xff1a;本文为博主原创文章&#xff0c;遵循 CC 4.0 BY-SA 版权协议&#xff0c;转…

数学建模--评价类模型

目录 一、主观评价 1、层次分析法&#xff08;AHP&#xff09; ①应用场景 ②步骤 ③模型实现 ④代码实现 ⑤优缺点评价 2、模糊综合评价法&#xff08;FCE&#xff09; ①应用场景 ②步骤 ③模型实现 3、灰色关联分析法&#xff08;GRA&#xff09; ①应用场景 …

数学建模常用模型

第一讲&#xff1a;层次分析法 建模比赛中最基础的模型&#xff0c;主要用于解决评价类问题&#xff08;例如&#xff1a;选择哪种方案最好&#xff0c;哪位运用动员或者员工的表现更优秀&#xff09;。 评价类问题主要依据权重&#xff08;重要性权重&#xff09;来解决&…