机器学习---流形学习

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)优点:算法是局部非线性方法,与图理论有很紧密的联系。算法通过

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

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/309262.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

spark基础--学习笔记

1 spark 介绍 1.1 spark概念 Apache Spark是专为大规模数据处理而设计的快速通用的分布式计算引擎&#xff0c;是开源的类Hadoop MapReduce的通用分布式计算框架。和MapReduce一样&#xff0c;都是完成大规模数据的计算处理。 简而言之&#xff0c;Spark 借鉴了 MapReduce思…

Mysql是怎么运行的(上)

文章目录 Mysql是怎么运行的Mysql处理一条语句的流程连接管理解析与优化存储引擎 基本配置配置文件系统变量状态变量字符集四种重要的字符集MySQL中的utf8和utf8mb4各级别的字符集和比较规则MySQL中字符集的转换排序规则产生的不同的排序结果 InnoDB存储引擎介绍COMPACT行格式介…

06.构建大型语言模型步骤

在本章中,我们为理解LLMs奠定了基础。在本书的其余部分,我们将从头开始编写一个代码。我们将以 GPT 背后的基本思想为蓝图,分三个阶段解决这个问题,如图 1.9 所示。 图 1.9 本书中介绍的构建LLMs阶段包括实现LLM架构和数据准备过程、预训练以创建基础模型,以及微调基础模…

HarmonyOS应用开发学习笔记 UI布局学习 List(){}创建列表 列表形式显示 简单使用

List 创建列表 列表形式显示 官方文档&#xff1a;创建列表&#xff08;List&#xff09; 关键代码 List(){} 列表控件ListItem() {} 子元素 例如 1、简单使用代码 List(){} List() {ListItem() {Row() {Image($r(app.media.iconE)).width(40).height(40).margin(10)Tex…

继承详细说明

概述 Java中提供一个关键字extends&#xff0c;用这个关键字&#xff0c;我们可以让一个类和另一个类建立起父子关系。 例如&#xff1a;public class Student extends People {} Student称为子类&#xff08;派生类&#xff09;&#xff0c;People称为父类(基类 或超类)。 …

分布式系统架构设计之分布式消息队列 VS 分布式事务

1、分布式事务的挑战 在分布式系统中&#xff0c;事务的处理变得尤为复杂&#xff0c;传统的数据库事务&#xff08;ACID&#xff09;在单一数据库中可以确保数据的完整性和一致性&#xff0c;但在多个分布式节点间保证事务的原子性、一致性、隔离性和持久性变得极具挑战性。 …

【Go】excelize库实现excel导入导出封装(三),基于excel模板导出excel

前言 大家好&#xff0c;这里是符华~ 关于excelize库实现excel导入导出封装&#xff0c;我已经写了两篇了&#xff0c;我想要的功能基本已经实现了&#xff0c;现在还差一个模板导出&#xff0c;这篇文章就来讲讲如何实现用模板导出excel。 前两篇&#xff1a; 【Go】excel…

作业:通过两台linux主机配置ssh实现互相免密登陆

做题步骤&#xff1a; 一.开启两个Linux主机&#xff0c;并且用ssh连接&#xff0c;要能够ping通 我这里是server&#xff1a;192.168.81.129 client&#xff1a;192.168.81.130 举例 步骤&#xff1a; 1.安装服务软件 2.运行软件程序 3.根据自定配置提供对应的服务/etc/chr…

02.构建和使用的大型语言模型(LLMs)阶段

我们为什么要建立自己的LLMs?LLM从头开始编码是了解其机制和局限性的绝佳练习。此外,它还为我们提供了必要的知识,可以保留或微调现有的开源LLM架构,以适应我们自己的特定领域的数据集或任务。 研究表明,在建模性能方面,定制(LLMs为特定任务或领域量身定制的)可以胜过…

如何高效阅读Linux的man page

有时候需要在man page中查某个命令的用法&#xff0c;我们一般会使用man command的方式来查询&#xff0c;例如man vmstat.但是对于一些bash内置的命令&#xff0c;如alias,如果使用man alias会打开General Commands Manual ,如下图 可以看到&#xff0c;内置命令很多&#xff…

如何通过 Prompt 优化大模型 Text2SQL 的效果

前言 在上篇文章中「大模型LLM在Text2SQL上的应用实践」介绍了基于SQLDatabaseChain的Text2SQL实践&#xff0c;但对于逻辑复杂的查询在稳定性、可靠性、安全性方面可能无法达到预期&#xff0c;比如输出幻觉、数据安全、用户输入错误等问题。 本文将从以下4个方面探讨通过Pr…

用于生成信息提取的大型语言模型综述

论文地址&#xff1a;https://arxiv.org/pdf/2312.17617.pdf 代码仓库&#xff1a;https://github.com/quqxui/Awesome-LLM4IE-Papers 信息抽取&#xff08;IE&#xff09;旨在从纯自然语言文本中提取结构化知识&#xff08;如实体、关系和事件&#xff09;。最近&#xff0c…

初识 Elasticsearch 应用知识,一文读懂 Elasticsearch 知识文集(2)

&#x1f3c6;作者简介&#xff0c;普修罗双战士&#xff0c;一直追求不断学习和成长&#xff0c;在技术的道路上持续探索和实践。 &#x1f3c6;多年互联网行业从业经验&#xff0c;历任核心研发工程师&#xff0c;项目技术负责人。 &#x1f389;欢迎 &#x1f44d;点赞✍评论…

手拉手springboot3整合mybatis-plus多数据源

环境介绍 技术栈 springbootmybatis-plusmysql 软件 版本 mysql 8 IDEA IntelliJ IDEA 2022.2.1 JDK 17 Spring Boot 3.1.7 dynamic-datasource 3.6.1 mybatis-plus 3.5.3.2 加入依赖 <dependency><groupId>com.baomidou</groupId><arti…

WAVENET: A GENERATIVE MODEL FOR RAW AUDIO

ABSTRACT 这篇论文提出了WaveNet&#xff0c;一个生成原始音频波形的深度神经网络。这是一个完全的概率自回归模型&#xff0c;它基于之前已经生成的所有样本&#xff0c;来预测当前音频样本的概率分布&#xff1b;不过&#xff0c;我们将会展示它可以在每秒数万采样率的音频数…

精华整理几十个Python数据科学、机器学习、深度学习、神经网络、人工智能方面的核心库以及详细使用实战案例,轻松几行代码训练自己的专有人工智能模型

精华整理几十个Python数据科学、机器学习、深度学习、神经网络、人工智能方面的核心库以及详细使用实战案例,轻松几行代码训练自己的专有人工智能模型。 机器学习 人工智能的核心,是使计算机具有智能的根本途径。机器学习专注于算法,允许机器学习而不需要编程,并在暴露于新…

【VTKExample::Visualization】第四期 BLOW

很高兴在雪易的CSDN遇见你 VTK技术爱好者 QQ:870202403 前言 本文分享Blow样例,用于挤出吹塑工艺的有限元分析,希望对各位小伙伴有所帮助! 感谢各位小伙伴的点赞+关注,小易会继续努力分享,一起进步! 你的点赞就是我的动力(^U^)ノ~YO 目录 前言 1. Blow样例

求幸存数之和 - 华为OD统一考试

OD统一考试&#xff08;C卷&#xff09; 分值&#xff1a; 100分 题解&#xff1a; Java / Python / C 题目描述 给一个正整数列nums&#xff0c;一个跳数jump&#xff0c;及幸存数量left。运算过程为:从索引为0的位置开始向后跳&#xff0c;中间跳过 J 个数字&#xff0c;命中…

netdisk-fast-download强大的网盘直链解析工具源码

源码介绍 开源的网盘直链解析工具 netdisk-fast-download&#xff0c;这款强大的工具能够解析各类网盘直链&#xff0c;实现文件的快速上传与下载。目前已完美支持蓝奏云、奶牛快传、移动云空间、UC网盘、夸克网盘、小飞机盘、亿方云以及123云盘等众多知名网盘平台。 直链&am…

Spark---行动算子RDD

文章目录 1.行动算子1.1 reduce1.2 collect1.3 first1.4 count1.5 take1.6 takeOrdered1.7 aggregate1.8 fold1.9 countByKey1.10 countByValue1.11 save 相关算子1.12 foreach 1.行动算子 Spark的行动算子是触发作业执行的方法&#xff0c;它们会直接触发计算并返回结果。 行…