论文解读(LLE)《Nonlinear Dimensionality Reduction by Locally Linear Embedding》and LLE
论文题目:《Nonlinear Dimensionality Reduction by Locally Linear Embedding 》
发表时间:Science 2000
论文地址:Download
简介
局部线性嵌入(Locally Linear Embedding,简称LLE)重要的降维方法。
传统的 PCA,LDA 等方法是关注样本方差的降维方法,LLE 关注于降维时保持样本局部的线性特征,由于LLE在降维时保持了样本的局部特征,所以广泛用于图像图像识别,高维数据可视化等领域。
流形学习
LLE 是流形学习(Manifold Learning)的一种。
流形学习是一大类基于流形的框架。我们可以认为 LLE 中的流形是一个不闭合的曲面,且流形曲面数据分布比较均匀,比较稠密。LLE 算法是将流形从高维到低维的降维过程,在降维过程希望流形在高维的一些特征可以得到保留。
一个形象的流形降维过程如下图。我们有一块卷起来的布,我们希望将其展开到一个二维平面,我们希望展开后的布能够在局部保持布结构的特征,其实也就是将其展开的过程,就想两个人将其拉开一样。
对于降维问题,以前的方法是基于多维标度(MDS),计算试图保持数据点之间的 成对距离 或 广义差异的嵌入,这些距离是沿着直线测量的,在更具权威性的 MDS 用法中,如 Isomap,沿着限制于观测数据的流形表示的最短路径。如等距映射(ISOMAP)算法希望在降维后保持样本之间的测地距离而不是欧式距离,因为测地距离更能反映样本之间在流形中的真实距离。
在这里,我们采用一种不同的方法,称为局部线性嵌入(LLE),这种方法不需要估计广泛分离的数据点之间的成对距离。
等距映射(ISOMAP)算法需要找所有样本全局最优解,当数据量很大,样本维度很高时,计算非常的耗时,鉴于这个问题,LLE 通过放弃所有样本全局最优的降维,只是通过保证局部最优来降维。同时假设样本集在局部是满足线性关系的,进一步减少的降维的计算量。
LLE算法思想
LLE 假设数据在较小局部是线性的,即:某一数据可由它邻域中几个样本线性表示。如有一个样本$x_1$,我们在它原始高维邻域里用 KNN 思想找到和它最近的三个样本 $x_2,x_3,x_4$,然后假设$x_1$可以由 $x_2,x_3,x_4$ 线性表示,即:
$x_{1}=w_{12} x_{2}+w_{13} x_{3}+w_{14} x_{4}$
其中,$w_{12}, w_{13}, w_{14}$为权重系数。在通过 LLE 降维后,我们希望 $x_1$ 在低维空间对应的投影 $x_1'$ 以及 $x_2,x_3,x_4$ 对应的投影 $x_2',x_3',x_4'$ 也尽量保持线性关系,即
$x_{1}^{\prime} \approx w_{12} x_{2}^{\prime}+w_{13} x_{3}^{\prime}+w_{14} x_{4}^{\prime}$
我们希望投影前后线性关系的权重系数 $w_{12}, w_{13}, w_{14}$ 是尽量不变或改变最小。
从上可看出,线性关系只在样本附近起作用,远离样本的数据对局部线性关系没有影响,因此降维复杂度降低很多。
LLE算法推导
Part 1
首先要确定邻域大小的选择,即需要多少个邻域样本来线性表示某样本。假设这个值为 $k$ ,可以通过和 KNN 一样的思想,采用距离度量如:欧式距离,来选择某样本的 $k$ 个最近邻。
在寻找某样本 $x_i$ 的 $k$ 个最近邻之后,就需要找到 $x_i$ 和 这 $k$ 个最近邻之间的线性关系,即找到线性关系的权重系数。显然这是一个回归问题。
我们假设有 $ m$ 个 $n$ 维样本 $\{x_1,x_2,...,x_m\}$ ,我们可以用均方差作为回归问题的损失函数:
$J(w)=\sum \limits _{i=1}^{m}\left\|x_{i}-\sum \limits_{j=1}^{k} w_{i j} x_{j}\right\|_{2}^{2}$
一般会对权重系数 $w_{ij}$ 做归一化的限制(保证 $W$ 的平移不变性),即权重系数需满足:
$\sum \limits _{j=1}^{k} w_{i j}=1$
对于不在样本 $x_i$ 邻域内的样本 $x_j$,令对应的 $w_{ij} = 0$。
对于 $J(W)$ ,我们需要求出权重系数,可以采用拉格朗日乘法来求解,这里先对 $J(W)$ 矩阵化:
$\begin{aligned}J(W) &=\sum \limits _{i=1}^{m}\left\|x_{i}-\sum \limits_{j=1}^{k} w_{i j} x_{j}\right\|_{2}^{2} \\&=\sum \limits_{i=1}^{m}\left\|\sum \limits_{j=1}^{k} w_{i j} x_{i}-\sum \limits_{j=1}^{k} w_{i j} x_{j}\right\|_{2}^{2} \\&=\sum \limits_{i=1}^{m}\left\|\sum \limits_{j=1}^{k} w_{i j}\left(x_{i}-x_{j}\right)\right\|_{2}^{2} \\&=\sum \limits_{i=1}^{m}\left\|\left(x_{i}-x_{j}\right) W_{i}\right\|_{2}^{2} \\&=\sum \limits_{i=1}^{m} W_{i}^{T}\left(x_{i}-x_{j}\right)^{T}\left(x_{i}-x_{j}\right) W_{i}\end{aligned}$
其中 $W_i =(w_{i1}, w_{i2},...w_{ik})$ 。
令矩阵 $Z_i=(x_i-x_j)^T(x_i-x_j)$ ,则 $J(W)$ 进一步简化为 $J(W) = \sum\limits_{i=1}^{m} W_i^TZ_iW_i$ 。对于权重约束,可以矩阵化为:
$\sum \limits _{j=1}^{k} w_{i j}=W_{i}^{T} 1_{k}=1$
现在我们将矩阵化的 $J(W)$ 以及权重约束 用拉格朗日子乘法合为一个优化目标:
$L(W)=\sum \limits _{i=1}^{m} W_{i}^{T} Z_{i} W_{i}+\lambda\left(W_{i}^{T} 1_{k}-1\right)$
对 $W$ 求导并令其值为0,得到
$2 Z_{i} W_{i}+\lambda 1_{k}=0$
即
$W_{i}=\lambda^{\prime} Z_{i}^{-1} 1_{k}$
其中 $\lambda' = -\frac{1}{2}\lambda$ 为一个常数。利用 $W_i^T1_k = 1$,对 $W_i$ 归一化,那么最终的权重系数 $W_i$ 为:
$W_{i}=\frac{Z_{i}^{-1} 1_{k}}{1_{k}^{T} Z_{i}^{-1} 1_{k}}$
Part 2
现在得到了高维的权重系数,我们希望这些权重系数对应的线性关系在降维后的低维一样得到保持。假设我们的 $n$ 维样本集 $\{x_1,x_2,...,x_m\}$ 在低维的 $d$ 维度对应投影为 $\{y_1,y_2,...,y_m\}$ ,我们希望保持线性关系,也就是希望对应的均方差损失函数最小,即最小化损失函数 $J(Y)$ 如下:
$J(y)=\sum \limits _{i=1}^{m}\left\|y_{i}-\sum \limits _{j=1}^{k} w_{i j} y_{j}\right\|_{2}^{2}$
可以看到这个式子和高维的损失函数几乎相同,唯一的区别是高维的式子中,高维数据已知,目标是求最小值对应的权重系数 $W$,而我们在低维是权重系数 $W$ 已知,求对应的低维数据。
为了得到标准化的低维数据,一般也会加入约束条件如下:
$\sum \limits _{i=1}^{m} y_{i}=0 ; \quad \frac{1}{m} \sum \limits _{i=1}^{m} y_{i} y_{i}^{T}=I$
首先我们将目标损失函数矩阵化:
$\begin{aligned}J(Y) &=\sum \limits _{i=1}^{m}\left\|y_{i}-\sum \limits_{j=1}^{k} w_{i j} y_{j}\right\|_{2}^{2} \\&=\sum \limits_{i=1}^{m}\left\|Y I_{i}-Y W_{i}\right\|_{2}^{2} \\&=\operatorname{tr}\left(Y^{T}(I-W)^{T}(I-W) Y\right)\end{aligned}$
如果我们令 $M=(I-W)^T(I-W)$ ,则优化函数转变为最小化下式:$J(Y) = tr(Y^TMY)$ ,$tr$ 为迹函数。约束函数矩阵化为:$Y^TY=mI$
如果大家熟悉谱聚类和 PCA 的优化,就会发现这里的优化过程几乎一样。其实最小化 J(Y) 对应的 Y 就是 M 的最小的 d 个特征值所对应的 d 个特征向量组成的矩阵。当然我们也可以通过拉格朗日函数来得到这个:
$L(Y)=\operatorname{tr}\left(Y^{T} M Y\right)+\lambda\left(Y^{T} Y-m I\right)$
其中 $Y=\left(y_{ 1}, y_{ 2}, \ldots y_{k}\right)^T$ 。
对Y求导并令其为0,我们得到$2MY + 2\lambda Y =0$,即$MY = \lambda Y$,这样我们就很清楚了,要得到最小的 $d$ 维数据集,我们需要求出矩阵 $M$ 最小的 $d$ 个特征值所对应的 $d$ 个特征向量组成的矩阵$Y=(y_1,y_2,...y_d)$即可。
一般的,由于 $M$ 的最小特征值为 $0$ 不能反应数据特征,此时对应的特征向量为全 $1$ 。我们通常选择 $M$ 的第 $ 2$ 个到第 $d+1$ 个最小的特征值对应的特征向量 $M=(y_2,y_3,...y_{d+1})$来得到最终的Y。为什么 $M$ 的最小特征值为0呢?这是因为 $W^Te =e$,得到 $|W^T-I|e =0$,由于$e \neq 0$,所以只有 $W^T-I =0$,即 $(I-W)^T=0$,两边同时右乘 $I-W$,即可得到 $(I-W)^T(I-W)e =0e$,即 $M$ 的最小特征值为 0。
LLE算法流程
从图中可以看出,LLE算法主要分为三步,第一步是求K近邻的过程,这个过程使用了和KNN算法一样的求最近邻的方法。第二步,就是对每个样本求它在邻域里的K个近邻的线性关系,得到线性关系权重系数W,具体过程在第三节第一部分。第三步就是利用权重系数来在低维里重构样本数据,具体过程在第三节第二部分。
具体过程如下:
输入:样本集 $D=\{x_1,x_2,...,x_m\}$,最近邻数 $k$,降维到的维数 $d$
输出: 低维样本集矩阵 $D'$
1) for i 1 to m,按欧式距离作为度量,计算和 $x_i$ 最近的的 $k$ 个最近邻 $(x_{i1}, x_{i2}, ...,x_{ik},)$
2) for i 1 to m,求出局部协方差矩阵 $Z_i=(x_i-x_j)^T(x_i-x_j)$,并求出对应的权重系数向量:
$W_{i}=\frac{Z_{i}^{-1} 1_{k}}{1_{k}^{T} Z_{i}^{-1} 1_{k}}$
3) 由权重系数向量 $W_i$ 组成权重系数矩阵 $W$,计算矩阵 $M=(I-W)^T(I-W)$
4) 计算矩阵 $M$ 的前 $d+1$ 个特征值,并计算这 $d+1$ 个特征值对应的特征向量 $\{y_1,y_2,...y_{d+1}\}$。
5)由第二个特征向量到第 $d+1$ 个特征向量所张成的矩阵即为输出低维样本集矩阵 $D' = (y_2,y_3,...y_{d+1})$
LLE总结
LLE是广泛使用的图形图像降维方法,它实现简单,但是对数据的流形分布特征有严格的要求。比如不能是闭合流形,不能是稀疏的数据集,不能是分布不均匀的数据集等等,这限制了它的应用。下面总结下LLE算法的优缺点。
LLE算法的主要优点有:
1)可以学习任意维的局部线性的低维流形
2)算法归结为稀疏矩阵特征分解,计算复杂度相对较小,实现容易。
LLE算法的主要缺点有:
1)算法所学习的流形只能是不闭合的,且样本集是稠密均匀的。
2)算法对最近邻样本数的选择敏感,不同的最近邻数对最后的降维结果有很大影响。
论文解读(LLE)《Nonlinear Dimensionality Reduction by Locally Linear Embedding》and LLE的更多相关文章
- 论文解读(SDNE)《Structural Deep Network Embedding》
论文题目:<Structural Deep Network Embedding>发表时间: KDD 2016 论文作者: Aditya Grover;Aditya Grover; Ju ...
- 第八章——降维(Dimensionality Reduction)
机器学习问题可能包含成百上千的特征.特征数量过多,不仅使得训练很耗时,而且难以找到解决方案.这一问题被称为维数灾难(curse of dimensionality).为简化问题,加速训练,就需要降维了 ...
- 壁虎书8 Dimensionality Reduction
many Machine Learning problems involve thousands or even millions of features for each training inst ...
- 漫谈 Clustering (番外篇): Dimensionality Reduction
由于总是有各种各样的杂事,这个系列的文章竟然一下子拖了好几个月,(实际上其他的日志我也写得比较少),现在决定还是先把这篇降维的日志写完.我甚至都以及忘记了在这个系列中之前有没有讲过“特征”(featu ...
- 单细胞数据高级分析之初步降维和聚类 | Dimensionality reduction | Clustering
个人的一些碎碎念: 聚类,直觉就能想到kmeans聚类,另外还有一个hierarchical clustering,但是单细胞里面都用得不多,为什么?印象中只有一个scoring model是用kme ...
- 论文解读第三代GCN《 Deep Embedding for CUnsupervisedlustering Analysis》
Paper Information Titlel:<Semi-Supervised Classification with Graph Convolutional Networks>Aut ...
- 论文解读GALA《Symmetric Graph Convolutional Autoencoder for Unsupervised Graph Representation Learning》
论文信息 Title:<Symmetric Graph Convolutional Autoencoder for Unsupervised Graph Representation Learn ...
- 论文解读(DCN)《Towards K-means-friendly Spaces: Simultaneous Deep Learning and Clustering》
论文信息 论文标题:Towards K-means-friendly Spaces: Simultaneous Deep Learning and Clustering论文作者:Bo Yang, Xi ...
- 可视化MNIST之降维探索Visualizing MNIST: An Exploration of Dimensionality Reduction
At some fundamental level, no one understands machine learning. It isn’t a matter of things being to ...
随机推荐
- poj1248 (线性筛欧拉函数)(原根)
强烈鸣谢wddwjlss 题目大意:给出一个奇素数,求出他的原根的个数,多组数据. 这里先介绍一些基本性质 阶 设\((a,m)=1\),满足\(a^r \equiv 1 \pmod m\)的最小正整 ...
- vj-2021.6.5-补题
B - B 内容: One day, as Sherlock Holmes was tracking down one very important criminal, he found a wond ...
- 初学Python-day12 装饰器函数
装饰器 1.概念 本质就是一个Python函数,其他函数在本身不变的情况下去增加额外的功能,装饰器的返回值是一个函数. 常用的场景:插入日志,事务处理,缓存,权限校验等. 2.普通函数回顾 1 def ...
- javascript-jquery-更改jquery对象
在许多情况下,jquery代码所做的事情变成了:生成jquery对象A,操作对jquery象A:更改为jquery对象B,操作jquery对象B:更改为jqueryC,操作jquery对象C..... ...
- [软软软]技术博客-Commitizen优化git commit
工具介绍 commitizen/cz-cli是一个规范git commit的工具,使用它代替git commit能够方便有效地写好提交的log,使得团队项目的版本信息更清晰. 安装 (全局安装) np ...
- Vue报错 type check failed for prop “xxx“. Expected String with value “xx“,got Number with value ‘xx‘
vue报错 [Vue warn]: Invalid prop: type check failed for prop "name". Expected String with ...
- 使用Mybatis的TypeHandler加解密数据
使用Mybatis的TypeHandler加解密数据 一.背景 二.解决方案 三.需求 四.实现思路 1.编写一个实体类,凡是此实体类的数据都表示需要加解密的 2.编写一个加解密的`TypeHandl ...
- Mac 系统如何利用软链接在根目录创建文件夹?
作者:泥瓦匠 出处:https://www.bysocket.com/2021-10-26/mac-create-files-from-the-root-directory.html Mac 操作系统 ...
- 最小最大堆min-max Heap
(1)由性质5只能插在奇数层,即根节点处,7下沉到右堆的min level,10下沉到max level,插入后满足min-max heap性质,很容易画出: (2)由性质80也是向右堆插入,且插入到 ...
- 算法:拉丁方阵(Latin Square)
拉丁方阵(英语:Latin square)是一种 n × n 的方阵,在这种 n × n 的方阵里,恰有 n 种不同的元素,每一种不同的元素在同一行或同一列里只出现一次.以下是两个拉丁方阵举例: 拉丁 ...