【流行学习】局部线性嵌入(Locally Linear Embedding)

article/2025/4/27 11:02:19

一、前言

局部线性嵌入(LLE)假设数据在较小的局部是线性的,也就是说,某一个样本可以由它最近邻的几个样本线性表示,离样本远的样本对局部的线性关系没有影响,因此相比等距映射算法,降维的时间复杂度和空间复杂度都有极大的降低。
比如有一个样本 x 1 x_1 x1 ,我们在它的原始高维邻域里用 K K K-近邻思想找到和它最近的三个样本 x 2 , x 3 , x 4 x_2,x_3,x_4 x2,x3,x4,然后我们假设 x 1 x_1 x1可以由 x 2 , x 3 , x 4 x_2,x_3,x_4 x2,x3,x4线性表示,即:
x 1 = w 12 x 2 + w 13 x 3 + w 14 x 4 x_1=w_{12}x_2+w_{13}x_3+w_{14}x_4 x1=w12x2+w13x3+w14x4

其中, w 12 , w 13 , w 14 w_{12},w_{13},w_{14} w12,w13,w14为权重系数。
在我们通过LLE降维后,我们希望 x 1 x_1 x1在低维空间对应的投影 y 1 y_1 y1 x 2 , x 3 , x 4 x_2,x_3,x_4 x2,x3,x4对应的投影 y 2 , y 3 , y 4 y_2,y_3,y_4 y2,y3,y4也尽量保持同样的线性关系局部数据结构不变),即:
y 1 ≈ w 12 y 2 + w 13 y 3 + w 14 y 4 y_1≈w_{12}y_2+w_{13}y_3+w_{14}y_4 y1w12y2+w13y3+w14y4

也就是说,投影前后线性关系的权重系数 w 12 , w 13 , w 14 w_{12},w_{13},w_{14} w12,w13,w14是尽量不变或者最小改变的。
因为LLE是基于局部的,所以K近邻的选取是至关重要的。

二、主要步骤

2.1 首先要确定邻域大小

假设这个值为k。我们可以通过和 K N N KNN KNN一样的思想通过距离度量比如欧式距离来选择某样本的 k k k个最近邻。

2.2 确定目标损失函数

在找到某个样本的 x i x_i xi k k k个最近邻之后,我们就需要找到找到 x i x_i xi和这 k k k个最近邻之间的线性关系,也就是要找到线性关系的权重系数
假设我们有 m m m n n n维样本 x 1 , x 2 , ⋯ , x m {x_1,x_2,⋯,x_m} x1,x2,,xm,我们可以用均方差作为问题的损失函数:即:
J ( w ) = ∑ i = 1 m ∣ ∣ x i − ∑ j = 1 k w i j x j ∣ ∣ 2 2 J(w)=∑_{i=1}^m{||x_i−∑_{j=1}^k{w_{ij}x_j}||_{2}^{2}} J(w)=i=1mxij=1kwijxj22
对权重系数 w i j w_{ij} wij做归一化的约束,即权重系数需要满足:
∑ j = 1 k w i j = 1 ∑_{j=1}^k{w_{ij}=1} j=1kwij=1

通过上面两个式子求出我们的权重系数。

2.3 目标函数优化

对于目标损失函数,将其矩阵化,进行以下推导:
J ( w ) = ∑ i = 1 m ∣ ∣ x i − ∑ j = 1 k w i j x j ∣ ∣ 2 2 = ∑ i = 1 m ∣ ∣ ∑ j = 1 k w i j x i − ∑ j = 1 k w i j x j ∣ ∣ 2 2 = ∑ i = 1 m ∣ ∣ ∑ j = 1 k w i j ( x i − x j ) ∣ ∣ 2 2 = ∑ i = 1 m W i T X i X i T W i = ∑ i = 1 m W i T Z i W i \begin{aligned} &J(w)=∑_{i=1}^m{||x_i−∑_{j=1}^k{w_{ij}x_j}||_{2}^{2}}\\ &=∑_{i=1}^m||∑_{j=1}^kw_{ij}x_i−∑_{j=1}^kw_{ij}x_j||_2^2\\ &=∑_{i=1}^m||∑_{j=1}^kw_{ij}(x_i−x_j)||_2^2\\ &=∑_{i=1}^mW_i^TX_iX_i^TWi\\ &=∑_{i=1}^mW_i^TZ_iW_i \end{aligned} J(w)=i=1mxij=1kwijxj22=i=1mj=1kwijxij=1kwijxj22=i=1mj=1kwij(xixj)22=i=1mWiTXiXiTWi=i=1mWiTZiWi
其中 W i = ( w i 1 , w i 2 , ⋯ , w i k ) T W_i=(w_{i1},w_{i2},⋯,w_{ik})^T Wi=(wi1,wi2,,wik)T X i = ( x i − x 1 , x i − x 2 , ⋯ , x i − x k ) T X_i=(x_i−x_1,x_i-x_2,⋯,x_i-x_{k})^T Xi=(xix1,xix2,,xixk)T Z i = X i X i T Z_i=X_iX_i^T Zi=XiXiT
约束条件可化为 ∑ j = 1 k w i j = W i 1 k = 1 ∑_{j=1}^kw_{ij}=W_{i}1_k=1 j=1kwij=Wi1k=1
其中 1 k 1_k 1k k k k维全为1的向量。

2.4 拉格朗日乘子法求解

构造拉格朗日函数:
L ( W ) = ∑ i = 1 m W i T Z i W i + λ ( W i 1 k − 1 ) L(W)=∑_{i=1}^mW^T_iZ_iW_i+λ(W_{i}1_k−1) L(W)=i=1mWiTZiWi+λ(Wi1k1)

W W W求导并令其值为0,我们得到:
∂ L ( W ) ∂ W = 2 Z i W i + λ 1 k = 0 \frac{∂L(W)}{∂W}=2Z_iW_i+λ1_k=0 WL(W)=2ZiWi+λ1k=0

即我们的
W i = λ ′ Z i − 1 1 k W_i=λ^{′}Z^{−1}_i1_k Wi=λZi11k
其中 λ ′ = − 1 2 λ λ^′=−\frac{1}2λ λ=21λ为一个常数。那么最终我们的权重系数Wi为:
W i = Z i − 1 1 k 1 k T Z i − 1 1 k W_{i}=\frac{Z_{i}^{-1} 1_{k}}{1_{k}^{T} Z_{i}^{-1} 1_{k}} Wi=1kTZi11kZi11k
现在我们得到了高维的权重系数,那么我们希望这些权重系数对应的线性关系在降维后的低维一样得到保持。
假设我们的n维样本集 x 1 , x 2 , . . . , x m {x_1,x_2,...,x_m} x1,x2,...,xm在低维的d维对应投影为 y 1 , y 2 , . . . , y m {y_1,y_2,...,y_m} y1,y2,...,ym,则我们希望保持线性关系,也就是希望对应的均方差损失函数最小,即最小化损失函数 J ( Y ) J(Y) J(Y)如下:
J ( y ) = ∑ i = 1 m ∣ ∣ y i − ∑ j = 1 m w i j y j ∣ ∣ 2 2 = ∑ i = 1 m ∣ ∣ Y I i − Y W i ∣ ∣ 2 2 = T r ( Y ( I − W ) ( I − W ) T Y T ) = T r ( Y T M Y ) J(y)=\sum_{i=1}^{m}||y_{i}-\sum_{j=1}^{m} w_{i j} y_{j}||_{2}^{2}\\ =\sum_{i=1}^m||YI_i−YW_i||_2^2 \\ =Tr(Y(I−W)(I−W)^TY^T)\\ =Tr(Y^TMY) J(y)=i=1myij=1mwijyj22=i=1mYIiYWi22=Tr(Y(IW)(IW)TYT)=Tr(YTMY)
其中, M = ( I − W ) T ( I − W ) M=(I-W)^T(I-W) M=(IW)T(IW),上式约束条件为: ∑ i = 1 m y i = 0 ; 1 m ∑ i = 1 m y i y i T = I , 即 Y T Y = m I ∑_{i=1}^my_i=0;\frac{1}{m}∑_{i=1}^my_iy^T_i=I,即Y^TY=mI i=1myi=0;m1i=1myiyiT=IYTY=mI
接下来利用拉格朗日乘子法对以上式子进行求解:
L ( Y ) = T r ( Y T M Y ) + λ ( Y T Y − m I ) L(Y)=Tr(Y^TMY)+λ(Y^TY−mI) L(Y)=Tr(YTMY)+λ(YTYmI)

与拉普拉斯特征映射相似(Laplacian Eigenmaps),最后要得到最小的d维数据集,我们需要求出矩阵 M M M最小的d个非0特征值所对应的特征向量组成的矩阵 Y = ( y 1 , y 2 , ⋯ , y d ) Y=(y_1,y_2,⋯,y_d) Y=(y1,y2,,yd)即可。

三、算法流程总结

现在我们对算法过程做一个总结。整个LLE算法用一张图可以表示如下:
在这里插入图片描述
从图中可以看出,LLE算法主要分为三步,
第一步是求 K K K近邻的过程,这个过程使用了和 K N N KNN KNN算法一样的求最近邻的方法。
第二步,就是对每个样本求它在邻域里的 K K K个近邻的线性关系,得到线性关系权重系数 W W W
第三步就是利用权重系数 来在低维里重构样本数据.

具体过程如下:

  • 输入:样本集 D = x 1 , x 2 , . . . , x m D={x_1,x_2,...,x_m} D=x1,x2,...,xm,最近邻数k,降维到的维数d
  • 输出:低维样本集矩阵 D ′ D^′ D
  1. i = 1 → m i=1 \to m i=1m, 按欧式距离作为度量,计算 m m m个样本点 x i x_i xi最近的的 k k k个最近邻 ( x i 1 , x i 2 , . . . , x i k ) (x_{i1},x_{i2},...,x_{ik}) (xi1,xi2,...,xik)
  2. i = 1 → m i=1 \to m i=1m,求出局部协方差矩阵 Z i = ( x i − x j ) ( x i − x j ) T Z_i=(x_i-x_j)(x_i-x_j)^T Zi=(xixj)(xixj)T,求出对应的权重系数向量: W i = Z i − 1 1 k 1 k T Z i − 1 1 k W_{i}=\frac{Z_{i}^{-1} 1_{k}}{1_{k}^{T} Z_{i}^{-1} 1_{k}} Wi=1kTZi11kZi11k
  3. 由权重系数向量 W i W_i Wi组成权重系数矩阵 W W W,计算矩阵 M = ( I − W ) ( I − W ) T M=(I−W)(I−W)^T M=(IW)(IW)T
  4. 由第2个特征向量到第d+1个特征向量所张成的矩阵即为输出低维样本集矩阵 D ′ = ( y 2 , y 3 , . . . y d + 1 ) D^′=(y_2,y_3,...y_{d+1}) D=(y2,y3,...yd+1)

四、改进算法

LLE算法很简单高效,但是却有一些问题,比如如果近邻数k大于输入数据的维度时,我们的权重系数矩阵不是满秩的。为了解决这样类似的问题,有一些LLE的变种产生出来。比如:Modified Locally Linear Embedding(MLLE) 和 Hessian Based LLE(HLLE)。

对于HLLE,它不是考虑保持局部的线性关系,而是保持局部的Hessian矩阵的二次型的关系。而对于MLLE,它对搜索到的最近邻的权重进行了度量,我们一般都是找距离最近的k个最近邻就可以了,而MLLE在找距离最近的k个最近邻的同时要考虑近邻的分布权重,它希望找到的近邻的分布权重尽量在样本的各个方向,而不是集中在一侧

另一个比较好的LLE的变种是Local tangent space alignment(LTSA),它希望保持数据集局部的几何关系,在降维后希望局部的几何关系得以保持,同时利用了局部几何到整体性质过渡的技巧。

这些算法原理都是基于LLE,基本都是在LLE这三步过程中寻求优化的方法。

LLE总结

LLE是广泛使用的图形图像降维方法,它实现简单,但是对数据的流形分布特征有严格的要求。比如不能是闭合流形,不能是稀疏的数据集,不能是分布不均匀的数据集等等,这限制了它的应用。下面总结下LLE算法的优缺点。

LLE算法的主要优点有:

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

2)算法归结为稀疏矩阵特征分解,计算复杂度相对较小,实现容易。

LLE算法的主要缺点有:

1)算法所学习的流形只能是不闭合的,且样本集是稠密均匀的。

2)算法对最近邻样本数的选择敏感,不同的最近邻数对最后的降维结果有很大影响。

参考博文连接:https://www.cnblogs.com/pinard/p/6266408.html


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

相关文章

流行-Manifold学习理解与应用

流行-Manifold【1】 流形,也就是 Manifold 。 1. 比较好的形象理解 流形学习的观点是认为,我们所能观察到的数据实际上是由一个低维流形映射到高维空间上的,即这些数据所在的空间是“嵌入在高维空间的低维流形。”。由于数据内部特征的限制&a…

【流行学习】拉普拉斯映射(Laplacian Eigenmaps)

一、前言 拉普拉斯特征映射是一种基于图的降维算法,它希望在原空间中相互间有相似关系的点,在降维后的空间中尽可能的靠近,从而在降维后仍能保持原有的数据结构信息。 二、主要步骤 拉普拉斯特征映射通过构建邻接矩阵为 W W W(…

7个流行的强化学习算法及代码实现

目前流行的强化学习算法包括 Q-learning、SARSA、DDPG、A2C、PPO、DQN 和 TRPO。 这些算法已被用于在游戏、机器人和决策制定等各种应用中,并且这些流行的算法还在不断发展和改进,本文我们将对其做一个简单的介绍。 1、Q-learning Q-learning&#xff1…

流行学习,比较好的一篇博客

转载自:https://blog.csdn.net/sinat_32043495/article/details/78997758 嵌入在高维空间的低维流形 流形:局部具有欧几里得空间性质的空间 1.较好的描述转载 作者:暮暮迷了路 链接:https://www.zhihu.com/question/2401548…

深度学习—近年来流行的卷积神经网络(一)

近年来流行的卷积神经网络 1. 回顾与目标2. 近年来流行的卷积神经网络2.1 VGGNet2.1.1 感受野的概念2.1.2 感受野的计算 2.2 GooleNet2.3 ResNet 3. 结尾参考资料 1. 回顾与目标 前面几讲,我们以LeNet和AlexNet为例,详细讲解了卷积神经网络的结构。从20…

流行学习常用算法

Isomap:等距映射。前提假设为低维空间中的欧式距离等于高维空间中的侧地线距离,当然该算法具体实施时是高维空间中较近点之间的测地线距离用欧式距离代替,较远点距离用测地线距离用最短路径逼近。 LLE:局部线性嵌入。前提假设是数据所在的低维…

流行学习与拉普拉斯变换的推导

参考:拉普拉斯矩阵 参考:流行学习

流行学习初步理解

一. 流形学习的英文名为manifold learning。其主要思想是把一个高维的数据非线性映射到低维,该低维数据能够反映高维数据的本质,当然有一个前提假设就是高维观察数据存在流形结构,其优点是非参数,非线性,求解过程简单。…

流行学习简单入门与理解

最近博主再看西瓜书第十三章半监督学习,文章中作者提到需要少量查询的主动学习、K-means簇的聚类,以及流行学习。对于流行学习,博主也是第一次接触,下面我们来简单学习和理解一下流行学习。 1. 半监督学习 SSL的成立依赖于模型假…

机器学习----流行学习(manifold learning)的通俗理解

流形学习(manifold learning)是一类借鉴了拓扑流行概念的降维方法,在降维时,若低维流行嵌入到高维空间中,则数据样本在高维空间的分布虽然看上去十分复杂,但在局部上仍具有欧式空间(对现实空间的…

流行学习Manifold Learning

文章目录 1、流行学习前言:2、流形学习的概念流形的概念:流行学习的概念: 3、流形学习的分类4、高维数据降维与可视化5、基本问题和个人观点6、参考文献 1、流行学习前言: 流形学习是个很广泛的概念。这里我主要谈的是自从2000年…

关于nn.embedding的理解

import torch.nn as nn nn.Embedding(num_embeddings, embedding_dim, padding_idxNone, max_normNone, norm_type2, scale_grad_by_freqFalse, sparseFalse)参数解释 num_embeddings (python:int) – 词典的大小尺寸,比如总共出现5000个词,那就输入500…

深究embedding层

关于embedding层,贴出一些很好的链接,以供备忘与分享。 http://blog.sina.com.cn/s/blog_1450ac3c60102x79x.html https://blog.csdn.net/sjyttkl/article/details/80324656 https://blog.csdn.net/jiangpeng59/article/details/77533309 https://juejin…

一文搞懂 Embedding !

这篇文章把embedding单独提出来,梳理一下embedding在推荐系统中的应用。以下内容主要从深度学习方法和传统的协同过滤方法两个方面加深和理解在推荐系统领域对embedding的认识,详细解读下“embedding”这一重要思想。 什么是Embedding? Embedding(嵌入)是拓扑学里面的词…

5、Embedding

本文作为个人笔记引用于: https://blog.csdn.net/weixin_42078618/article/details/82999906 https://blog.csdn.net/weixin_42078618/article/details/84553940 https://www.jianshu.com/p/63e7acc5e890 简介 假设,我们中文,一共只有10个字…

embedding

what is emdding embedding就是把字词用向量表示出来,相当于是对字词做encoding motivation 比如 猫,狗,我们当然可以直接把他们表示为一些独立的离散符号,但是这样的表示毫无意义,而且会产生大量稀疏数据。使我们在…

Embeding编码方式

Embeding编码方式概述 独热码:数量大而且过于稀疏,映射之间是独立的,没有表现出关联性。 Embedding:是一种单词编码方法,用低维向量实现了编码,这种编码通过神经网络训练优化,能表达出单词间的…

机器学习中的Embedding

来自知乎的一个解释:(版权归原作者所有,仅供学习,禁止商用) https://zhuanlan.zhihu.com/p/46016518 解释还是有点感觉迷糊,数学解释: Embedding在数学上表示一个maping, f: X -> Y&#x…

Embedding 编码方法

一、作用 Embedding 是一种单词编码,用低维向量实现了编码,这种编码通过神经网络训练优化,能表达单词之间的相关性。 在是用独热码one_hot编码时,我们会发现单词的编码十分稀疏,以至于训练的效率不是很高。采用embeddi…

nn.Embedding使用

nn.Embedding是一种词嵌入的方式,跟one-hot相似但又不同,会生成低维稠密向量,但是初始是随机化的,需要根据模型训练时进行调节,若使用预训练词向量模型会比较好。 1. one-hot one-hot是给定每个单词一个索引&#xf…