论文阅读:DLME = Deep Local-flatness Manifold Embedding

news/2024/4/25 9:33:30/文章来源:https://blog.csdn.net/weixin_44876302/article/details/130344359

Author: Zelin Zang, Siyuan Li, Di Wu and Stan Z Li.
1-4: Westlake University

摘要

流形学习(ML, Manifold learning)旨在从高维数据中识别低维结构和嵌入,然而我们发现现有工作在采样不足的现实数据集上效果不佳。一般的ML方法对数据结构进行建模然后构造一个低维embedding,但是采样不足的现实数据会导致局部关联性/连续性较差,或由于优化目标不合适导致结构失真、embedding存在缺陷。为解决该问题我们提出了深度的、局部平坦的、流形embedding(DLME):通过减少失真来获得可靠的embedding。该方法通过数据增强构建语义流形、借助局部平坦假设克服结构失真问题,并设计了一个新的损失,在数学上证明了局部平坦假设能够得到理想的embedding。实验表明我们的方法在下游分类聚类任务中优于SOTA方法,也优于对比学习方法。

1. Introduction

在这里插入图片描述
图1:我们的DLME包括了结构建模网络 f θ f_\theta fθ和低维嵌入网络 g ϕ g_\phi gϕ。前者将输入数据映射到可以描述数据连接的结构空间中,后者再利用局部平坦特性将卷曲的流形映射到平面嵌入空间中,以对下游任务友好并提升可辨别能力。

我们将目前的流形学习方法的问题总结为:

  • D1: 对流形嵌入的约束不足
    专注于局部结构的关系容易产生扭曲失真的嵌入,从而影响下游任务的执行,如图2(D2)和图6所示。由于对潜在特征空间的约束不足,即使是最先进的ML方法在下游任务上也会失去性能,如对比学习。

  • D2: 流形结构失真
    我们将现有方法在现实数据集上的问题归因于结构失真:现有ML方法使用输入空间中的距离来构建局部近邻图,据此来定义可以保留局部结构的无监督损失。然而,该方法引入了一个严格的假设,即局部一定存在短程连接,使得距离度量可以描述数据的近邻关系。这通常只有数据密集时才有可能满足,而在真实数据集中并不一定能得到保证。

  • D3: 局部嵌入崩溃
    最近,对比学习利用数据增广之间的相似性取得了好的性能并得到广泛关注,然而它在流形学习中遇到的了更严重的困难,因为该方法需要大量的数据进行预训练,对比学习无平滑损失导致模型学习到的特征容易局部崩溃,需要大量的数据来学习有效的知识,如图2(D3)所示。

图2
图2:传统ML和CL方法的问题。(D1):局部视角和一阶相似性约束 → \rightarrow 导致约束不足的流形嵌入;(D2):现实数据的超高维度导致数据分布稀疏/采样不良 → \rightarrow 打破流形的局部连通性 → \rightarrow 导致结构失真;(D3):对比学习非平滑的损失函数 → \rightarrow 导致局部崩溃的嵌入 → \rightarrow 对下游任务不友好。

在图1中,我们希望更好的限制潜在特征空间以防止出现结构失真问题,同时希望出现类似对比学习方法的崩溃嵌入问题,于是提出了一个两步走的模型结构:1)通过测量每个样本对的关系来获得流形的图结构,2)将得到的结构映射到低维平面特征空间中。具体来说,我们首先提出一种新的局部平坦假设,添加了二阶流形曲率约束来获得更合理的潜在空间(解决D1);然后我们设计了一个与数据增广兼容的深度学习框架使得方法可以更好的训练并scale到更大数据集上(解决D2);最后,我们根据局部平坦假设设计了一个与数据增广兼容的平滑损失函数,该函数基于长尾 t-分布来指导网络学习。我们进一步在数学上说明了为什么DLME不同与传统对比损失以及DLME为什么可以获得平面的局部嵌入。

2 Related work

3 Method

3.1 问题描述和局部平坦假设

定义1:流形学习
M \mathcal M M为欧式空间 R d \R^d Rd中的d维嵌入, f : M → R D f:\mathcal M\rightarrow \R^D f:MRD为可微的嵌入映射,流形学习的目的是从足够的采样观测数据 X = { x i } i = 1 N X=\{x_i\}_{i=1}^N X={xi}i=1N中找到 Z = { z i } i = 1 N , z i ∈ M Z=\{z_i\}_{i=1}^N, z_i\in\mathcal M Z={zi}i=1N,ziM。在我们的方法中,利用神经网络 f θ f_\theta fθ学习该映射 R D → R d \R^D\rightarrow \R^d RDRd

每个ML方法都是根据特定的流形假设设计一个损失函数,将观察到的数据 x i x_i xi映射到内在流形 z i z_i zi,例如,LLE假设局部流形是线性的,而UMAP假设局部流形是均匀的。对比之下,我们提出了潜在空间中的局部平坦假设。

假设1: 局部平坦假设(LFA)
我们希望每个数据点与其邻居位于局部的平坦平面上,我们引入了Gauss-Bonnet定理,使用平均曲率 K ‾ M \overline{K}_{\mathcal M} KM来量化高维流形的平坦程度:
在这里插入图片描述
其中, X ( M ) \mathcal X(\mathcal M) X(M)为欧拉特征(Euler Characteristic), H 1 \mathrm H_1 H1为当前数据点的1-近邻, θ ( x j , x i , x j + 1 ) \theta(x_j,x_i,x_{j+1}) θ(xj,xi,xj+1)为这三个点的角度。

从一阶约束到二阶(曲率)约束
传统方法设计保持距离(如LLE)或保持相似性(如UMAP)的目标函数,希望在映射过程中保证数据的一阶结构关系。我们引入了二阶曲率约束来解决结构失真问题。但是二阶损失的计算复杂度十分昂贵,我们因此需要利用局部平坦假设来最小化流形embedding的曲率。这种想法类似于压缩感知中的先验稀疏性——局部平坦假设期望不受约束的局部曲率信息是稀疏的

局部平坦假设的作用
对于单个流形:局部平坦假设减少了不合适的嵌入空间中的卷曲(如图6)从而避免了嵌入过程的失真。
对于多个流形:局部平坦假设可以简化多个流形之间的判别关系,在避免崩溃嵌入的同时减少了不同流形之间重叠的可能性,使下游任务可以通过简单的线性模型完成。

3.2 DLME框架

DLME的损失是根据 A i j A_{ij} Aij和从头训练的神经网络空间中的点对相似性计算的,如果来自相同数据的增广,则 A i j = 1 A_{ij}=1 Aij=1,否则 A i j = 0 A_{ij}=0 Aij=0

利用数据增广解决结构失真。利用对比学习的思想,DLME通过数据增强提供的先验知识解决由于采样点稀疏导致的结构失真问题:由于数据增强尽可能少地改变原始数据的语义,因此当原始数据的局部连接中断时,通过数据增强可以生成孤立数据点的近邻数据,从而保证了局部连接

DLME的前向过程
在这里插入图片描述
其中 x i x_i xi x j x_j xj采样自不同的随机图像增广, d y d_y dy d z d_z dz分别为嵌入维度。

DLME的损失函数
在这里插入图片描述
其中 d i j y , d i j z d_{ij}^y, d_{ij}^z dijy,dijz 为处于嵌入空间y和z中点对 ( i , j ) (i,j) (i,j)的距离度量,双路差异度量 D ( p , q ) \mathcal D(p,q) D(p,q)定义了两个潜在空间的不相似性
D ( p , q ) = p log ⁡ q + ( 1 − p ) log ⁡ ( 1 − q ) \mathcal D(p,q)=p \log q + (1-p)\log (1-q) D(p,q)=plogq+(1p)log(1q)
这是连续版本的交叉熵,用于引导两个潜在空间的点对相似性以互相匹配。

由于潜在空间的维度不同,直接计算两个空间的距离存在维度不匹配的障碍。我们因此采用t-分布作为核函数来计算点对之间的相似性,从而描述数据的分布。t-分布中的自由度 v y , v z \mathcal v_y,\mathcal v_z vy,vz是一种用于增强嵌入空间平坦度的必要设置:
在这里插入图片描述
其中Gam表示Gamma函数,自由度 v \mathcal v v控制核函数的形状。

最后, R ( A i j ) R(A_{ij}) R(Aij)将近邻信息整合到 A i j A_{ij} Aij中:
R ( A i j ) = 1 + ( α − 1 ) A i j R(A_{ij})=1+(\alpha -1)A_{ij} R(Aij)=1+(α1)Aij
即,当点j是点i的近邻时,在结构空间中的距离将被减少到 α ∈ [ 0 , 1 ] \alpha \in [0,1] α[0,1],否则设置为1,这两个点的相似度将会增加。

3.3 通过更平滑的对比学习框架来对抗局部崩溃

传统自监督对比学习框架可以写为:
L C = − E x i , x j [ A i j log ⁡ κ ( d i j z ) + ( 1 − A i j ) log ⁡ ( 1 − κ ( d i j z ) ) ] L_C=-\mathbb E_{x_i,x_j}[A_{ij}\log \kappa (d_{ij}^z)+(1-A_{ij})\log \left(1-\kappa (d_{ij}^z)\right )] LC=Exi,xj[Aijlogκ(dijz)+(1Aij)log(1κ(dijz))]
该对比学习目标是不平滑的,因为点对的学习目标随着 A i j A_{ij} Aij的变换在 log ⁡ κ \log \kappa logκ log ⁡ ( 1 − κ ) \log (1-\kappa) log(1κ)之间切换。DLME降低折衷了学习过程,避免了梯度中的尖锐冲突。为了比较DLME损失和CL损失之间的差异,我们假设 g φ g_φ gφ满足K-Lipschitz连续性,然后:
d i j z = k ∗ d i j y , k ∗ ∈ [ 1 / K , K ] d_{ij}^z=k^*d_{ij}^y, k^*\in [1/K,K] dijz=kdijy,k[1/K,K] 其中 k ∗ k^* k为Lipschitz常量。那么CL损失和DLME损失的差异为:
∣ L D − L c ∣ = E x i , x j [ A i j − κ ( ( 1 + ( α − 1 ) A i j k ∗ d i j z ) log ⁡ ( 1 κ ( d i j z ) − 1 ) ] |L_D-L_c|=\mathbb E_{x_i,x_j}\left[A_{ij}-\kappa\left ((1+(\alpha-1)A_{ij}k^*d_{ij}^z\right )\log(\frac{1}{\kappa(d_{ij}^z)}-1) \right] LDLc=Exi,xj[Aijκ((1+(α1)Aijkdijz)log(κ(dijz)11)]

分析上式,当 i i i j j j为近邻, A i j = 1 A_{ij}=1 Aij=1,再当 α → 0 \alpha\rightarrow0 α0时, α k ∗ d i j z → 0 , 1 − κ ( α k ∗ d i j z ) → 0 \alpha k^*d_{ij}^z\rightarrow 0, \ 1-\kappa(\alpha k^*d_{ij}^z)\rightarrow 0 αkdijz0, 1κ(αkdijz)0,于是 ∣ L D − L c ∣ → 0 |L_D-L_c|\rightarrow 0 LDLc0,而当 α > 0 \alpha > 0 α>0时,DLME的最优解保留了关于embedding结构 d i j d_{ij} dij的余数,表明我们的损失不会最大化当前点和近邻点的相似性,我们的损失相比对比损失更平滑,可以保留embedding空间中的结构(只会有轻微崩溃),而不会把近邻点都压缩到一起变成崩溃embedding空间

3.4 为何DLME导致局部平坦面

本节讨论DLME如何优化局部曲率以变得更平坦。我们已经讨论了如何对结构建模并在利用对比学习防止局部连接不良的同时利用平滑损失防止崩溃解,但是流形依然是卷曲的,可能导致不同流形之间的重叠和变形,使得下游的线性模型性能下降。我们因此需要获得尽可能平坦的embedding空间,我们的损失可以控制embedding空间的平坦程度。这是因为损失函数中的基于长尾t-分布的核函数,我们在两个潜在空间中应用不同的自由度参数,自由度 v y \mathcal v_y vy v z \mathcal v_z vz的差异形成了不同的核函数 κ ( d , v y ) \kappa(d,\mathcal v_y) κ(d,vy) κ ( d , v z ) \kappa(d,\mathcal v_z) κ(d,vz)

在这里插入图片描述
图4:推拉性质。如果 d y < d p d^y<d_p dy<dp,那么 d z + < d y d^{z+}<d^y dz+<dy(黄色线拉近d),如果 d y > d p d^y>d_p dy>dp,那么 d z + > d y d^{z+}>d^y dz+>dy(粉色线拉远d)

引理1:推拉性质
v y , v z v^y,v^z vy,vz时,令 d z + = κ − 1 ( κ ( d , v y ) , v z ) d^{z+}=\kappa^{-1}(\kappa(d,\mathcal v^y),v^z) dz+=κ1(κ(d,vy),vz)为最优化损失函数的解,那么存在 d p d_p dp使得 ( d y − d p ) ( d z + − d y ) > 0 (d^y-d_p)(d^{z+}-d^y)>0 (dydp)(dz+dy)>0

DLME的伪代码:
**
先将原始和增广数据集随机采样,点对经过两个网络,计算在第一个网络下和第二个网络下embedding后的距离,再根据距离计算计算相似度,得到的结果用于损失函数的优化。

4. 实验

在这里插入图片描述
图5:(左)标签识别概率与排序距离的条形图。条形图的左端越高,表示最近邻样本的相同标签的概率越高,这意味着局部连通性得到了保证。(右)ML方法(UMAP)在四个图像数据集上的结果。复杂数据无法保证局部近邻连接导致失败。所提出的DLME方法在更复杂的CIFAR数据集上具有更好的嵌入结果。
在这里插入图片描述
图6:SwissRoll和StarFruit数据集上不同方法得到的平均局部曲率和散点图。这两个例子表明,DLME可以通过优化局部曲率来尽可能地得到合理的平坦embedding。

在这里插入图片描述
表1:在12个数据集上的效果,我们汇报了在下游线性分类和k-means聚类上的效果,下划线表示准确率高出最好的方法超过5%。

在这里插入图片描述
表2:我们也汇报了和对比学习方法的比较,许多对比学习方法得到的embedding产生了崩溃解以至于无法应用于下游的聚类任务。

在这里插入图片描述
图7:生物数据集、简单图像数据集和复杂图像数据集的可视化结果。画圈的部分标出了baseline方法的聚类互相重叠

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

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

相关文章

LNMP网站框架搭建

1. Nginx的工作原理 php-fpm.conf 是控制php-fpm守护进程的 php.ini是php解析器 工作进程&#xff1a; 1.客户端通过域名进行请求访问时&#xff0c;会找Nginx对应的虚拟主机 2. Nginx对该请求进行判断&#xff0c;如果是静态请求,Nginx会自行处理&#xff0c;并将处理结果返…

【C++】了解设计模式、 stackqueue的使用与模拟实现

文章目录 1.设计模式2.stack1.stack的使用1.stack的结构2.stack的接口 2.stack的模拟实现1.stack的结构2.接口实现 3.queue1.queue的使用1.queue的结构3.queue的接口 2.queue的模拟实现1.queue的结构2.接口实现 4.了解deque1.deque的原理介绍2.deque的底层结构3.deque的迭代器设…

【Android入门到项目实战-- 7.1】—— 如何使用通知?

目录 一、创建通知的步骤 1、创建一个NotificationManager实例 2、使用一个Builder构造器来创建Notification对象 3、设置标题、文字、时间和图标等信息 4、显示通知 二、通知实例演示 三、实现通知的点击效果 1、PendingIntent 什么是PendingIntent&#xff1f; 如何使…

Linux下实现C语言程序

一.情况说明 写这篇博客的情况比较复杂&#xff0c;首先我本来是参加新星计划按照规划现在去学习shell脚本语言的&#xff0c;但是博主现在由于其他原因需要了解makefile&#xff0c;makefile是Linux系统下的一种工具&#xff0c;makefile的一些背景要涉及链接库的知识&#xf…

HTB-DevOops

HTB-DevOops 信息收集5000端口 立足python反序列化攻击XEE读取SSH root 信息收集 5000端口 根据文字所述&#xff0c;下面的图片是feed.py。 目录扫描 /upload如下&#xff1a; 上传测试xml文件。 得到反馈 怀疑是标签不匹配&#xff0c;尝试寻找匹配的标签。前面首页有提…

【算法】【算法杂谈】判断点是否在三角形内部(面积法和向量法)

目录 前言问题介绍解决方案代码编写java语言版本c语言版本c语言版本 思考感悟写在最后 前言 当前所有算法都使用测试用例运行过&#xff0c;但是不保证100%的测试用例&#xff0c;如果存在问题务必联系批评指正~ 在此感谢左大神让我对算法有了新的感悟认识&#xff01; 问题介…

Java企业电子招标采购系统源码Spring Boot + Mybatis + 前后端分离 构建企业电子招采平台之立项流程图

项目说明 随着公司的快速发展&#xff0c;企业人员和经营规模不断壮大&#xff0c;公司对内部招采管理的提升提出了更高的要求。在企业里建立一个公平、公开、公正的采购环境&#xff0c;最大限度控制采购成本至关重要。符合国家电子招投标法律法规及相关规范&#xff0c;以及…

HTB靶机-Lame-WP

Lame 简介&#xff1a; Lame is a beginner level machine, requiring only one exploit to obtain root access. It was the first machine published on Hack The Box and was often the first machine for new users prior to its retirement Tags&#xff1a; Injection, C…

OSCP-XPosedAPI(本地文件包含、查看源码、os.system、命令盲注)

目录 扫描 Web API枚举 命令盲注 提权 扫描 发现了两个开放的端口:端口22上的SSH和端口13337上的未知服务。 用netcat手动探测端口13337,但是运行几个常见的TCP/UDP服务初始化命令没有输出。 尝试了一个完整的脚本和版本nmap扫描的开放端口࿰

Vue+Echarts 项目演练(下)收尾工作图表绘制

设置销售总量图表 中心容器地图设置 产品库存统计图 产品类别图表 项目可视化完结-整体展示 设置销售总量图表 在第一个容器中进行图表设置 <template><div><h2>A</h2><div class"chart" id"oneChart">容纳后期的图表…

ChatGPT进化的过程简介

Chat GPT可以做什么&#xff1f; 分点列条的回答问题 写代码或SQL 翻译 语法检查 ChatGPT官方还未公开论文&#xff0c;ChatGPT有一个“孪生兄弟”InstructGPT&#xff0c;InstructGPT有论文&#xff0c;可以根据InstructGPT论文推导ChatGPT的训练过程&#xff1a; ChatGPT的…

MySQ基础知识整合

目录 模糊查询 排序 单行函数 多行函数 分组函数 having 单表查询执行顺序总结 distinct 连接查询 子查询 union limit DQL语句执行顺序 DDL语句 日期化 date和date_format区别 update table 的快速创建以及删除&#xff08;及回滚&#xff09; 约束 事务 …

Vector-常用CAN工具 - 入门到精通 - 专栏链接

一、CANoe篇 1、CANoe入门到精通_软件安装 2、CANoe入门到精通_硬件及环境搭建 3、CANoe入门到精通_软件环境配置 4、CANoe入门到精通_Network Node CAPL开发 5、CANoe入门到精通_Node节点开发基本数据类型 6、CANoe入门到精通_Test Node节点开发设置 7、CANoe入门到精通…

缩小数据文件

今天又出现12.2c 环境的问题&#xff0c;1T的数据空间还剩下2G&#xff0c;吓了一身冷汗&#xff0c;赶紧查看原因&#xff0c;不知道哪路业务大神作妖了。 发现sysaux和system增加N多数据文件&#xff0c;而且目前使用不多&#xff0c; 缩小表空间的数据文件 可以使用下面的语…

【python中的魔法方法有哪些?】

__init__(self, ...): 类的构造函数&#xff0c;用于创建一个类的实例并初始化它的属性。__str__(self): 返回对象的字符串表示形式&#xff0c;可以用于打印对象或者转化成字符串。__repr__(self): 返回对象的字符串表示形式&#xff0c;通常是用于开发者调试和查看对象信息。…

【FPGA-DSP】第九期:音频信号处理

从本文开始将记录一些简单的音频信号处理算法在System Generator中的实现方法。本文将介绍如何搭建音频信号的采集与输出模型。 音频信号属于一维信号&#xff0c;一些基本概念如下&#xff1a; 采样频率&#xff1a;根据奈奎斯特采样定理&#xff0c;采样频率Fs应该不低于声…

【C语言】基础语法5:数组和指针

上一篇&#xff1a;函数和递归 下一篇&#xff1a;字符串和字符处理 ❤️‍&#x1f525;前情提要❤️‍&#x1f525;   欢迎来到C语言基本语法教程   在本专栏结束后会将所有内容整理成思维导图&#xff08;结束换链接&#xff09;并免费提供给大家学习&#xff0c;希望…

记一次死锁问题

最近在做一个需求&#xff0c;碰到了死锁的问题&#xff0c;记录下解决问题的过程 背景 这个需求要改动一个接口&#xff0c;我这边称为A接口&#xff0c;原先的逻辑是A接口内部会调用c方法&#xff0c;c方法是一个dubbo方法&#xff0c; 现在需要再A接口里添加调用B方法&…

【ROS】ubuntu18.04安装ROS(ROS1 Melodic)

1、添加中科大ROS源 1.1、添加源 sudo sh -c . /etc/lsb-release && echo "deb http://mirrors.ustc.edu.cn/ros/ubuntu/ lsb_release -cs main" > /etc/apt/sources.list.d/ros-latest.list1. 2、添加公钥 sudo apt-key adv --keyserver hkp://keyser…

编译预处理

编译预处理 1、宏定义1.1、 无参宏定义1.2、使用宏定义的优点1.3、宏定义注意点1.4、带参数的宏(重点)1.5、条件编译1.6、宏定义的一些巧妙用法(有用)1.7、结构体占用字节数的计算原则&#xff08;考题经常考&#xff0c;要会画图&#xff09;1.8、#在宏定义中的作用&#xff0…