1 介绍

  拉普拉斯特征映射(Laplacian Eigenmaps)是一种不太常见的降维算法,它看问题的角度和常见的降维算法不太相同,是从局部的角度去构建数据之间的关系。也许这样讲有些抽象,具体来讲,拉普拉斯特征映射是一种基于图的降维算法,它希望相互间有关系的点(在图中相连的点)在降维后的空间中尽可能的靠近,从而在降维后仍能保持原有的数据结构。

2 推导

  拉普拉斯特征映射通过构建邻接矩阵为 $W$ (邻接矩阵定义见这里) 的图来重构数据流形的局部结构特征。其主要思想是,如果两个数据 实例 $i$ 和 $j$ 很相似,那么 $i$ 和 $j$ 在 降维后目标子空间中应该尽量接近。设数据实例的数目为 $n$ ,目标子空间即最终的降维目标的维度为 $m$ 。 定义 $ n \times m$ 大小的矩阵 $Y$ ,其中每一个行向量 $y_{i}^{T}$ 是数据实例 $i$ 在目标 $m$ 维子空间中的向量表示(即降维后的数据实例 $i$ )。我们的目的是 让相似的数据样例 $i$ 和 $j$ 在降维后的目标子空间里仍旧尽量接近,故拉普拉斯特征映射优化的目标函数如下:

    $\min \sum\limits _{i, j}\left\|y_{i}-y_{j}\right\|^{2} W_{i j}$

  下面开始推导:

    $ \begin{array}{l} \sum\limits_{i=1}^{n} \sum\limits_{j=1}^{n}&\left\|y_{i}-y_{j}\right\|^{2} W_{i j} \\ &=\sum\limits_{i=1}^{n} \sum\limits_{j=1}^{n}\left(y_{i}^{T} y_{i}-2 y_{i}^{T} y_{j}+y_{j}^{T} y_{j}\right) W_{i j} \\ &=\sum\limits_{i=1}^{n}\left(\sum\limits_{j=1}^{n} W_{i j}\right) y_{i}^{T} y_{i}+\sum\limits_{j=1}^{n}\left(\sum\limits_{i=1}^{n} W_{i j}\right) y_{j}^{T} y_{j}-2 \sum\limits_{i=1}^{n} \sum\limits_{j=1}^{n} y_{i}^{T} y_{j} W_{i j} \\ &=2 \sum\limits_{i=1}^{n} D_{i i} y_{i}^{T} y_{i}-2 \sum\limits_{i=1}^{n} \sum\limits_{j=1}^{n} y_{i}^{T} y_{j} W_{i j} \\ &=2 \sum\limits_{i=1}^{n}\left(\sqrt{D_{i i}} y_{i}\right)^{T}\left(\sqrt{D_{i i}} y_{i}\right)-2 \sum\limits_{i=1}^{n} y_{i}^{T}\left(\sum\limits_{j=1}^{n} y_{j} W i j\right) \\ &=2 \operatorname{trace}\left(Y^{T} D Y\right)-2 \sum\limits_{i=1}^{n} y_{i}^{T}(Y W)_{i} \\ &=2 \operatorname{trace}\left(Y^{T} D Y\right)-2 \operatorname{trace}\left(Y^{T} W Y\right) \\ &=2 \operatorname{trace}\left[Y^{T}(D-W) Y\right] \\ &=2 \operatorname{trace}\left(Y^{T} L Y\right) \end{array} $

  其中 $W $ 是图的邻接矩阵,对角矩阵 $D$ 是图的度矩阵 $\left(D_{i i}=\sum\limits_{j=1}^{n} W_{i j}\right)$ ,$ L=D-W$ 成为图的拉普拉斯矩阵。

  变换后的拉普拉斯特征映射优化的目标函数如下:

    $\begin{array}{l}\min \operatorname{trace}\left(Y^{T} L Y\right)\\ \text { s.t. } Y^{T} D Y=I \end{array}$

  其中限制条件  $s . t . Y^{T} D Y=I$ 保证优化问题有解,下面用拉格朗日乘子法对目标函数求解:

    $f(Y)=\operatorname{tr}\left(Y^{T} L Y\right)+\operatorname{tr}\left[\Lambda\left(Y^{T} D Y-I\right)\right]$

    $\begin{array}{l} \frac{\partial f(Y)}{\partial Y}&=L Y+L^{T} Y+D^{T} Y \Lambda^{T}+D Y \Lambda \\ &=2 L Y+2 D Y \Lambda=0 \end{array}$

    $\therefore L Y=-D Y \Lambda$

  其中用到了矩阵的迹的求导,具体方法见 迹求导。 $\Lambda$ 为一个对角矩阵,另外 $L$ 、 $D$ 均为实对称矩阵,其转置与自身相等。对于单独的 $y$ 向量,上式可写为: $L y=\lambda D y$,这是一个广义特征值问题。通过求得 $m$ 个最小非零特征值所对应的特征向量,即可达到降维的目 的。

  关于这里为什么要选择 $m$ 个最小非零特征值所对应的特征向量。将 $L Y=-D Y \Lambda $ 带回到 $\min \operatorname{trace}\left(Y^{T} L Y\right)$ 中,由于有着约束条件 $Y^{T} D Y=I$ 的限制,可以得到 $ \min \quad \operatorname{trace}\left(Y^{T} L Y\right)=\min \quad t r a c e(-\Lambda)$ 。即为特 征值之和。我们为了目标函数最小化,要选择最小的 $m$ 个特征值所对应的特征向量。

3 步骤

  使用时算法具体步骤为:

  步骤1:构建图

    使用某一种方法来将所有的点构建成一个图,例如使用KNN算法,将每个点最近的K个点连上边。K是一个预先设定的值。

  步骤2:确定权重

    确定点与点之间的权重大小,例如选用热核函数来确定,如果点 i 和点 j 相连,那么它们关系的权重设定为:

    $W_{i j}=e^{-\frac{\left\|x_{i}-x_{j}\right\|^{2}}{t}}$

    另外一种可选的简化设定是 $W_{i j}=1$ 如果点 $i$ ,$ j$ 相连,否则 $W_{i j}=0 $ 。

  步骤3:特征映射

    计算拉普拉斯矩阵 $L$ 的特征向量与特征值: $L y=\lambda D y $

    使用最小的 $m$ 个非零特征值对应的特征向量作为降维后的结果输出。

拉普拉斯特征映射(Laplacian Eigenmaps)的更多相关文章

  1. Laplacian eigenmap 拉普拉斯特征映射

    下面是实验室大牛师兄自己写的一段总结,主要内容是Laplacian Eigenmap中的核心推导过程. 有空还是多点向这位师兄请教,每次都会捡到不少金子. Reference : <Laplac ...

  2. 四大机器学习降维算法:PCA、LDA、LLE、Laplacian Eigenmaps

    四大机器学习降维算法:PCA.LDA.LLE.Laplacian Eigenmaps 机器学习领域中所谓的降维就是指采用某种映射方法,将原高维空间中的数据点映射到低维度的空间中.降维的本质是学习一个映 ...

  3. 【转】四大机器学习降维算法:PCA、LDA、LLE、Laplacian Eigenmaps

    最近在找降维的解决方案中,发现了下面的思路,后面可以按照这思路进行尝试下: 链接:http://www.36dsj.com/archives/26723 引言 机器学习领域中所谓的降维就是指采用某种映 ...

  4. 降维(二)----Laplacian Eigenmaps

    降维(二)----Laplacian Eigenmaps 降维系列: 降维(一)----说说主成分分析(PCA)的源头 降维(二)----Laplacian Eigenmaps ----------- ...

  5. 自组织神经网络介绍:自组织特征映射SOM(Self-organizing feature Map),第三部分

    前面两篇介绍了SOM的基本概念和算法,第一部分,第二部分,本篇具体展开一下应用中的一些trick设定. SOM设计细节 输出层设计 输出层神经元数量设定和训练集样本的类别数相关,但是实际中我们往往不能 ...

  6. 自组织特征映射神经网络(SOFM)

    1981年芬兰 Helsink 大学的 T·Kohonen 教授提出一种自组织特征映射网 (Self-Organizing Feature Map , SOFM ), 又称 Kohonen 网 . K ...

  7. 图像融合之拉普拉斯融合(laplacian blending)

    一.拉普拉斯融合基本步骤 1. 两幅图像L,R,以及二值掩模mask,给定金字塔层数level. 2. 分别根据L,R构建其对应的拉普拉斯残差金字塔(层数为level),并保留高斯金字塔下采样最顶端的 ...

  8. 拉普拉斯矩阵(Laplacian matrix)

    原文地址:https://www.jianshu.com/p/f864bac6cb7a 拉普拉斯矩阵是图论中用到的一种重要矩阵,给定一个有n个顶点的图 G=(V,E),其拉普拉斯矩阵被定义为 L = ...

  9. 拉普拉斯平滑(Laplacian smoothing)

    概念 零概率问题:在计算事件的概率时,如果某个事件在观察样本库(训练集)中没有出现过,会导致该事件的概率结果是  $0$ .这是不合理的,不能因为一个事件没有观察到,就被认为该事件一定不可能发生(即该 ...

随机推荐

  1. js变量类型判断 严格通用 Object.prototype.toString.call()

    Object.prototype.toString.call()判断结果: Object.prototype.toString.call(true) "[object Boolean]&qu ...

  2. 微服务从代码到k8s部署应有尽有系列(三、鉴权)

    我们用一个系列来讲解从需求到上线.从代码到k8s部署.从日志到监控等各个方面的微服务完整实践. 整个项目使用了go-zero开发的微服务,基本包含了go-zero以及相关go-zero作者开发的一些中 ...

  3. 多个UID为0的用户如何实现root用户的免密

    文章目录 创建用户 创建用户密码 免密脚本 当前主机用户不是root 当前主机用户是root,远程主机多个用户uid为0 利用shell脚本实现远程主机uid为0的用户只有root一个 多个UID=0 ...

  4. 《操作系统导论》第14章 | 内存操作API

    内存类型 在运行一个C程序的时候,会分配两种类型的内存.第一种称为栈内存,它的申请和释放操作是编译器来隐式管理的,所以有时也称为自动内存.假设需要在func()函数中为一个整形变量x申请空间,我们只需 ...

  5. Spring高级特性之三:@Enable*注解的工作原理

    Spring Boot中阐述热插拔技术的时候,简单地提及@Enable*注解.随着多种框架的应用及深入了解,@Enable*这个注解在各种框架中应用相当普及. 那么@Enable*注解工作原理是怎么样 ...

  6. 【Java分享客栈】我为什么极力推荐XXL-JOB作为中小厂的分布式任务调度平台

    前言   大家好,我是福隆苑居士,今天给大家聊聊XXL-JOB的使用.   XXL-JOB是本人呆过的三家公司都使用到的分布式任务调度平台,前两家都是服务于传统行业(某大型移动基地和某大型电网),现在 ...

  7. C语言中左值和右值的理解

    左值顾名思义等号左边,右值等号右边. 左值一般指的内存占用的一个符号: 右值指的是常量或者常量表达式: 当然左值也可以通过一些常用的运算符,例如加减乘除/&转化为右值 注意:不是所有的变量都能 ...

  8. [杂记]LeTeX模板——ppt

    出处:ShareLeTeX应用模板:https://cn.sharelatex.com/project/5810ad8a07a1ab0f0f8c2ce4 代码如下: 1 % Copyright 200 ...

  9. [旧][Android] 代理模式

    备注 原发表于2016.05.21,资料已过时,仅作备份,谨慎参考 代理模式是什么 如上图所示,代理代表着另一终端中的某个真实服务对象,Client 调用代理(Client helper)的方法,然后 ...

  10. 可视化里程碑:可拖拽使用的可视化BI工具

    在数据量越来越大的今天,如何利用好数据,更好的为人类社会服务,成为人们所关心的话题,而其中数据可视化作为最后一个环节,也是人们最为直观的感受,自然而然备受重视.同质化的应用越来越多,应用开发者也开始在 ...