机器学习---流形学习

2024-01-10 16:36
文章标签 学习 机器 流形

本文主要是介绍机器学习---流形学习,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1. 流形学习

作为机器学习研究的热点问题之一,流形学习是要从高维数据集中发现内在的低维流形,并基于低

维流形来实现随后的各种机器学习任务,如模式识别,聚类分析。与欧氏空间不同,流形学习主要

处理的是非欧空间里的模式识别和维数约简等问题。从宇宙空间看地球,如果不借助外界力量的

话,我们只能局限于地球的表面活动,而且地球上两点的距离并不单纯是它们对应的直线的跟离,

而是测地线距离。可以证明,我们生活的地球是一个嵌入在3维欧式空间中的维流形,也就是说,

地球表面点的位置可由两个变量来控制。

从定义我们可以看出,流形就是局部欧式的拓扑空间,欧式空间的性质只在邻域内有效。值得指出

的是,当邻域定义为整个欧氏空间时,欧氏空间本身也可以视为流形。所以,流形学习并非是一种

特殊学习方法,而是基于欧氏度量学习的一种推广,具有更强的一般性。

定义:设M是一个Hausdorff拓扑空间,若对∀p∈M,都有p的邻域U和Rm的一个开集同胚,则称M

为m维拓扑流形。

我们假设这些观测数据是由一些隐变量Y通过一个映射fY->X生成的,其中

于是流形学习的任务就是通过观测数据把未知映射f和隐变量Y重建出来。由于m<n,故该问题是一

个病态问题,不存在唯一解,因此研究人员提出了各种各样的流形学习算法,它们试图通过添加某

些特定约束用以恢复流形的内在结构。 

总体来说,流形学习兴起来源于2000年在科学杂志上的两篇关于流形学习的文章,其中一篇

提出了一个叫ISOMAP的方法,该方法把传统的MDS算法扩展到非线性流形上,通过对中心化的测

地线距离矩阵进行特征值分解来保持流形上的整体拓扑结构。而另一篇文章提出厂局部线性嵌入

(Local Linear Embedding (LLE))算法,该算法假设高维数据和低维数据的局部拓扑结构关系保持

不变,即邻域关系不变,然后刊用这种关系从高维数据重构出低维的流形嵌入。

1.1 PCA

该方法认为特征的方差越大提供的信息量越多,特征的方差越小提供的信息量越少。PCA 通过原

分量的线性组合构造方差大、含信息量多的若干主分量,从而降低数据的维数。 

1.2 MDS

其中(a)为真实数据集的流形结构图,(b)为从(a)随机采样 2000 个点后的数据分布图,

c)、(d)和(e)为经三次不同采样后,采样点经 MDS 算法降到二维空间后分布图。可以看

出,(c)图在一定程度上保持了数据的连续性,但并没有发现嵌入在数据的本质,改变了采样点

的拓扑结构;(d)和(e)图的效果更差,不同样本点均发生了不同程度的重叠,严重改变了采样

点的结构。 

1.3 ISOMAP

Laplacian Eigenmap(LE)就是其中的一种,该算法首先构造一个邻域关系图,然后对该图的拉普拉

斯矩阵进行特征值分解来得到流形的低维表示,这样的分解保持了数据的局部关系,注意到在LE

中,我们要估计流形上的Laplacian算子。Hessian Eigenmap(HLLE) 该算法通过估计流形上的

Heosian算子,然后对该算子进行特征值分解来保持流形的局部拓扑性。SDE算法:为了得到一个

等距嵌入,用半正定规划的方法估计流形上的点对间的角度和距离,从而学习图像数据中的流形。

2. 流行学习框架

2.1 线性降维的不足

原始数据无法表示为特征的简单线性组合,比如:PCA无法表达Helix曲线流形。

真实数据中的有用信息不能由线性特征表示,比如:如何获取并表示多姿态人脸的姿态信息

比如:如何获取运动视频序列中某个动作的对应帧

2.2 流形学习框架

流形是线性子空间的一种非线性推广,拓扑学角度:局部区域线性,与低维欧式空间拓扑同胚,微

分几何角度:有重叠chart的光滑过渡,黎曼流形就是以光滑的方式在每一点的切空间上指定了欧

氏内积的微分流形。

流形学习是一种非线性的维数约简方法,高维观察数据的变化模式本质是由少数几个隐含变量所决

定的,如:人脸采样由光线亮度、人与相机的距离、人的头部姿势、人的面部表情等因素决定。从

认知心理学的角度,心理学家认为人的认知过程是基于认知流形和拓扑连续性的。

是一个低维流形,是一个光滑嵌入,其中 D>d 。数据集是随机生成的,

且经过 映射为观察空间的数据。流形学习就是在给定观察样本集的条件下重

f

经典流形学习方法一览:

3. 方法

3.1 等距映射(ISOMAP)

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

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

MDS的示意图:                                                                           MDS失效:

ISOMAP算法流程:

计算每个点的近邻点 (用K近邻或ξ邻域)

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

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

用MDS求低维嵌入坐标,令,低维嵌入是  

的第1大到第 d大的特征值所对应的特征向量。

图距离逼近测地距离:

假设采样点是随机均匀抽取的,则渐进收敛定理  给定,则只要样本集充分大且适当选

择K , 不等式至少以概率成立。

前提假设:数据所在的低维流形与欧式空间的一个子集整体等距,该欧式空间的子集是一个凸集。

思想核心:较近点对之间的测地距离用欧式距离代替,较远点对之间的测地距离用最短路径来逼近

算法特点:适用于学习内部平坦的低维流形,不适于学习有较大内在曲率的流形,计算点对间的最

短路径比较耗时。

继承了MDS和PCA的特点:保证渐近收敛于真结构,多项式运行时,发现任意维度流形的能力,

当数据来自单个采样良好的集群时,性能会很好。少数自由参数:为其度量保持特性提供了良好的

理论基础。

嵌入是有偏差的,以保持远点的分离,这可能导致局部几何的扭曲,不能很好地投影分布在多个集

群中的数据,条件良好的算法,但对于大数据集计算成本高,保角等高图——能够学习某些弯曲流

形的结构,Landmark Isomap——通过一个小得多的计算集来近似大的全局计算,使用k/2个最近

的物体和k/2个最远的物体重建距离。

3.2 局部线性嵌入(LLE)

前提假设:采样数据所在的低维流形在局部是线性的,每个采样点均可以利用其近邻样本进行线性

重构表示。学习目标:低维空间中保持每个邻域中的重构权值不变,在嵌入映射为局部线性的条件

下,最小化重构误差,最终形式化为特征值分解问题。

LLE算法流程:

①计算每一个点的近邻点, 一般采用K 近邻或者ξ邻域

②计算权值,使得把用它的K个近邻点线性表示的误差最小,即通过最小化来求

。  

保持权值不变, 求在低维空间的象,使得低维重构误差最小。

LLE算法的求解:

计算每一个点的近邻点

②对于点和它的近邻点的权值

③令,低维嵌入是 M 的最小的第 2到第 d+1 个特征向量。

LLE (Locally linear embedding):优点:算法可以学习任意维的局部线性的低维流形,算法归结为

稀疏矩阵特征值计算,计算复杂度相对较小。

缺点:算法所学习的流形只能是不闭合的,算法要求样本在流形上是稠密采样的,算法对样本中的

噪声和邻域参数比较敏感。用于计算W的协方差矩阵可能是病态的,需要用到正则化。较小的特征

值受到数值精度误差和混合的影响,但是,该算法中使用的稀疏矩阵使其比Isomap更快。

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

设 G 是一个图,v 是它的顶点,是 v 的自由度,w(u,v)是连接顶点u、v的边的权值,令

其中 T 是对角矩阵,对角线的元素为

 ,则称 L 为图 G 上的拉普拉斯算子。     

Laplacian Eigenmap 算法流程:

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

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

计算图拉普拉斯算子的广义特征向量,求得低维嵌入。令D为对角矩阵  

L是近邻图上的拉普拉斯算子,求解广义特征值问题             

LE (Laplacian Eigenmap)优点:算法是局部非线性方法,与图理论有很紧密的联系。算法通过

求解稀疏矩阵的特征值问题解析地求出整体最优解,效率非常高。算法使原空间中离得很近的点在

低维空间也离得很近,可以用于聚类。

缺点:同样对算法参数和数据采样密度较敏感,不能有效保持流形的全局几何结构。

这篇关于机器学习---流形学习的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/591418

相关文章

HarmonyOS学习(七)——UI(五)常用布局总结

自适应布局 1.1、线性布局(LinearLayout) 通过线性容器Row和Column实现线性布局。Column容器内的子组件按照垂直方向排列,Row组件中的子组件按照水平方向排列。 属性说明space通过space参数设置主轴上子组件的间距,达到各子组件在排列上的等间距效果alignItems设置子组件在交叉轴上的对齐方式,且在各类尺寸屏幕上表现一致,其中交叉轴为垂直时,取值为Vert

Ilya-AI分享的他在OpenAI学习到的15个提示工程技巧

Ilya(不是本人,claude AI)在社交媒体上分享了他在OpenAI学习到的15个Prompt撰写技巧。 以下是详细的内容: 提示精确化:在编写提示时,力求表达清晰准确。清楚地阐述任务需求和概念定义至关重要。例:不用"分析文本",而用"判断这段话的情感倾向:积极、消极还是中性"。 快速迭代:善于快速连续调整提示。熟练的提示工程师能够灵活地进行多轮优化。例:从"总结文章"到"用

【前端学习】AntV G6-08 深入图形与图形分组、自定义节点、节点动画(下)

【课程链接】 AntV G6:深入图形与图形分组、自定义节点、节点动画(下)_哔哩哔哩_bilibili 本章十吾老师讲解了一个复杂的自定义节点中,应该怎样去计算和绘制图形,如何给一个图形制作不间断的动画,以及在鼠标事件之后产生动画。(有点难,需要好好理解) <!DOCTYPE html><html><head><meta charset="UTF-8"><title>06

学习hash总结

2014/1/29/   最近刚开始学hash,名字很陌生,但是hash的思想却很熟悉,以前早就做过此类的题,但是不知道这就是hash思想而已,说白了hash就是一个映射,往往灵活利用数组的下标来实现算法,hash的作用:1、判重;2、统计次数;

零基础学习Redis(10) -- zset类型命令使用

zset是有序集合,内部除了存储元素外,还会存储一个score,存储在zset中的元素会按照score的大小升序排列,不同元素的score可以重复,score相同的元素会按照元素的字典序排列。 1. zset常用命令 1.1 zadd  zadd key [NX | XX] [GT | LT]   [CH] [INCR] score member [score member ...]

【机器学习】高斯过程的基本概念和应用领域以及在python中的实例

引言 高斯过程(Gaussian Process,简称GP)是一种概率模型,用于描述一组随机变量的联合概率分布,其中任何一个有限维度的子集都具有高斯分布 文章目录 引言一、高斯过程1.1 基本定义1.1.1 随机过程1.1.2 高斯分布 1.2 高斯过程的特性1.2.1 联合高斯性1.2.2 均值函数1.2.3 协方差函数(或核函数) 1.3 核函数1.4 高斯过程回归(Gauss

【学习笔记】 陈强-机器学习-Python-Ch15 人工神经网络(1)sklearn

系列文章目录 监督学习:参数方法 【学习笔记】 陈强-机器学习-Python-Ch4 线性回归 【学习笔记】 陈强-机器学习-Python-Ch5 逻辑回归 【课后题练习】 陈强-机器学习-Python-Ch5 逻辑回归(SAheart.csv) 【学习笔记】 陈强-机器学习-Python-Ch6 多项逻辑回归 【学习笔记 及 课后题练习】 陈强-机器学习-Python-Ch7 判别分析 【学

系统架构师考试学习笔记第三篇——架构设计高级知识(20)通信系统架构设计理论与实践

本章知识考点:         第20课时主要学习通信系统架构设计的理论和工作中的实践。根据新版考试大纲,本课时知识点会涉及案例分析题(25分),而在历年考试中,案例题对该部分内容的考查并不多,虽在综合知识选择题目中经常考查,但分值也不高。本课时内容侧重于对知识点的记忆和理解,按照以往的出题规律,通信系统架构设计基础知识点多来源于教材内的基础网络设备、网络架构和教材外最新时事热点技术。本课时知识

线性代数|机器学习-P36在图中找聚类

文章目录 1. 常见图结构2. 谱聚类 感觉后面几节课的内容跨越太大,需要补充太多的知识点,教授讲得内容跨越较大,一般一节课的内容是书本上的一章节内容,所以看视频比较吃力,需要先预习课本内容后才能够很好的理解教授讲解的知识点。 1. 常见图结构 假设我们有如下图结构: Adjacency Matrix:行和列表示的是节点的位置,A[i,j]表示的第 i 个节点和第 j 个

Node.js学习记录(二)

目录 一、express 1、初识express 2、安装express 3、创建并启动web服务器 4、监听 GET&POST 请求、响应内容给客户端 5、获取URL中携带的查询参数 6、获取URL中动态参数 7、静态资源托管 二、工具nodemon 三、express路由 1、express中路由 2、路由的匹配 3、路由模块化 4、路由模块添加前缀 四、中间件