基本思路

LLE(Local Linear Embedding)局部线性嵌入的思路也是局部保持与线性降维,是一种经典的降维与流形学习算法。给定X∈RD×nX\in \mathbb{R}^{D\times n}XRD×n表示原始的nnn个样本,每列一个样本,欲求XXX中这些样本降维后的结果Y∈Rd×n,d<DY\in \mathbb{R}^{d\times n},d<DYRd×n,d<D.
为了记录原始样本分布的局部信息,LLE将XXX中每个样本用其kkk个近邻来表示(或称为“重建”),使其kkk个近邻的加权和尽可能接近该样本,最小化重建误差,设第iii个样本xix_ixi的第jjj个近邻xijx_{ij}xij的重建权重为WijW_{ij}Wij,先计算这个W∈Rn×kW\in \mathbb{R}^{n\times k}WRn×k矩阵。
在降维的过程中,既然已经得到了WWW,LLE希望降完维后的YYY中的各样本仍保持WWW所描述的这种重建关系。
这就是LLE的思路,先记录样本及其近邻之间的关系,然后在降维时保持这种关系。

WWW矩阵求解

先来计算WWW矩阵:
min⁡W∑i=1n∥xi−∑j=1kWijxij∥22s.t.∑j=1kWij=1\min_W \sum_{i=1}^n\|x_i-\sum_{j=1}^kW_{ij}x_{ij} \|_2^2 \\ s.t.\ \sum_{j=1}^kW_{ij}=1 Wmini=1nxij=1kWijxij22s.t.j=1kWij=1

kkk为近邻数量,是个可以调节的参数,xijx_{ij}xijxix_ixi的第jjj个近邻,xi,xijx_i,x_{ij}xi,xij都是列向量。这就是所谓的用来求WWW的要最小化的“重建误差”。我们来求解。
∑i=1n∥xi−∑j=1kWijxij∥22=∑i=1n∥∑j=1kWij(xi−xij)∥22=∑i=1n(Wix~iT)(x~iWiT)=∑i=1nWix~iTx~iWiTs.t.Wie=1Wi=[Wi1,Wi2,⋯,Wik]∈R1×kx~i=[xi−xi1,xi−xi2,⋯,xi−xik]∈RD×ke=[1,1,⋯,1]T∈Rk×1\sum_{i=1}^n\|x_i-\sum_{j=1}^kW_{ij}x_{ij} \|_2^2 \\ = \sum_{i=1}^n \|\sum_{j=1}^kW_{ij}(x_i-x_{ij}) \|_2^2 \\ = \sum_{i=1}^n (W_i \tilde{x}_i^T)(\tilde{x}_iW_i^T) \\ = \sum_{i=1}^n W_i \tilde{x}_i^T\tilde{x}_iW_i^T \\ s.t.\ W_ie=1 \\ W_i=[W_{i1},W_{i2},\cdots,W_{ik}]\in \mathbb{R}^{1\times k} \\ \tilde{x}_i=[x_i-x_{i1},x_i-x_{i2},\cdots,x_i-x_{ik}]\in \mathbb{R}^{D\times k} \\ e=[1,1,\cdots,1]^T\in \mathbb{R}^{k\times 1} i=1nxij=1kWijxij22=i=1nj=1kWij(xixij)22=i=1n(Wix~iT)(x~iWiT)=i=1nWix~iTx~iWiTs.t.Wie=1Wi=[Wi1,Wi2,,Wik]R1×kx~i=[xixi1,xixi2,,xixik]RD×ke=[1,1,,1]TRk×1

变成这种形式后用Lagrangian乘子法求解:
L(W,λ)=∑i=1nWix~iTx~iWiT+λi(1−Wie)L(W, \lambda)=\sum_{i=1}^n W_i \tilde{x}_i^T\tilde{x}_iW_i^T + \lambda_i(1-W_ie) L(W,λ)=i=1nWix~iTx~iWiT+λi(1Wie)

令偏导为000
∂∂WiL(W,λ)=2Wix~iTx~i−λieT=0Wix~iTx~i=12λieTWi=12λieT(x~iTx~i)−1(1)\frac{\partial}{\partial W_i}L(W,\lambda)=2W_i\tilde{x}_i^T\tilde{x}_i-\lambda_ie^T=0 \\ W_i\tilde{x}_i^T\tilde{x}_i= \frac{1}{2} \lambda_ie^T\\ W_i= \frac{1}{2} \lambda_i e^T(\tilde{x}_i^T\tilde{x}_i)^{-1} \tag{1} WiL(W,λ)=2Wix~iTx~iλieT=0Wix~iTx~i=21λieTWi=21λieT(x~iTx~i)1(1)
∂∂λiL(W,λi)=1−Wie=0Wie=112λieT(x~iTx~i)−1e=1(2)\frac{\partial}{\partial \lambda_i}L(W,\lambda_i)=1-W_ie=0 \\ W_ie=1 \\ \frac{1}{2} \lambda_i e^T(\tilde{x}_i^T\tilde{x}_i)^{-1}e=1 \tag{2} λiL(W,λi)=1Wie=0Wie=121λieT(x~iTx~i)1e=1(2)

从公式(2)(2)(2)可以解出λi\lambda_iλi,代入公式(1)(1)(1)可以解出WiW_iWi。因为只能解出来一组结果,尽管是必要条件,但是也就这样了。
这样就得到了WWW矩阵。

投影优化与求解

求出WWW之后,如前所述,要在降维后的YYY中尽量保持WWW所描述的重建关系,因此LLE列出了下优化目标:
min⁡Y∑i=1n∥yi−∑j=1kWijyij∥22=∑i=1n∥YIi−Y∑j=1kWijI(i)j∥22=∑i=1n∥Y(Ii−W~iT)∥22=∑i=1n(IiT−W~i)YTY(Ii−W~iT)=tr(GTYTYG)s.t.YYT=I\min_Y \sum_{i=1}^n\| y_i-\sum_{j=1}^kW_{ij}y_{ij} \|_2^2 \\ =\sum_{i=1}^n\| YI_i- Y \sum_{j=1}^k W_{ij}I_{(i)j} \|_2^2 \\ = \sum_{i=1}^n \| Y(I_i- \tilde{W}_i^T) \|_2^2 \\ = \sum_{i=1}^n (I_i^T-\tilde{W}_i)Y^T Y(I_i-\tilde{W}_i^T) \\ =tr(G^TY^TYG) \\ s.t.\ YY^T=I Ymini=1nyij=1kWijyij22=i=1nYIiYj=1kWijI(i)j22=i=1nY(IiW~iT)22=i=1n(IiTW~i)YTY(IiW~iT)=tr(GTYTYG)s.t.YYT=I

Ii∈Rn×1I_i\in \mathbb{R}^{n\times 1}IiRn×1是一个列向量,其第iii个元素为1,其他均为0,起到一个筛选作用,从YYY中将yiy_iyi筛选出来。W~iT∈Rn×1\tilde{W}_i^T\in \mathbb{R}^{n\times 1}W~iTRn×1是一个列向量,其定义其实可以从公式里面看出来,第jjj个样本如果是xix_ixikkk近邻之一,则W~i\tilde{W}_iW~ijjj个元素为WijW_{ij}Wij,否则为0. 而G∈Rn×nG\in \mathbb{R}^{n\times n}GRn×n是一个矩阵,第iii列为(Ii−W~iT)(I_i-\tilde{W}_i^T)(IiW~iT)。且有G=I−W~TG=I-\tilde W^TG=IW~T

然后列Lagrangian乘子法:
L(Y,λ)=tr(GTYTYG)+tr[λ(I−YYT)]L(Y,\lambda)=tr(G^TY^TYG) +tr[\lambda(I-YY^T)] L(Y,λ)=tr(GTYTYG)+tr[λ(IYYT)]

λ\lambdaλ为对角矩阵。求偏导并令偏导为0:
∂∂YL(Y,λ)=2YGGT−2λY=0GGTYT=YTλ(I−W~T)(I−W~T)TYT=YTλ\frac{\partial }{\partial Y}L(Y,\lambda)=2YGG^T-2\lambda Y=0 \\ GG^TY^T=Y^T\lambda \\ (I-\tilde W^T)(I-\tilde W^T)^TY^T=Y^T\lambda \\ YL(Y,λ)=2YGGT2λY=0GGTYT=YTλ(IW~T)(IW~T)TYT=YTλ
∂∂λL(Y,λ)=I−YYT=0YYT=I\frac{\partial }{\partial \lambda}L(Y,\lambda)=I-YY^T=0 \\ YY^T=I λL(Y,λ)=IYYT=0YYT=I

意思是说YTY^TYT的每一列(Y的每一行)都应该是GGTGG^TGGT的特征向量,对应的特征值在λ\lambdaλ的对角元上。这是必要条件。把GGTYT=YTλGG^TY^T=Y^T\lambdaGGTYT=YTλ代回去:
tr(GTYTYG)=tr(YGGTYT)=tr(YYTλ)=tr(λ)tr(G^TY^TYG) =tr(YGG^TY^T)=tr(YY^T\lambda)=tr(\lambda) tr(GTYTYG)=tr(YGGTYT)=tr(YYTλ)=tr(λ)

这告诉我们tr(GTYTYG)tr(G^TY^TYG)tr(GTYTYG)的最小值等价于tr(λ)tr(\lambda)tr(λ)的最小值,因此要选取最小的ddd个特征值对应的特征向量组成YYY

然而这里有一个问题,那就是GGTGG^TGGT最小的特征值是0,对应的特征向量是个e=[1,1⋯,1]T∈Rn×1e=[1,1\cdots,1]^T\in \mathbb{R}^{n\times 1}e=[1,1,1]TRn×1。证明一下:
(I−W~T)(I−W~T)Te=(I−W~T)(I−W~e)=(I−W~T)⋅0=0⋅e(I-\tilde W^T)(I-\tilde W^T)^Te=(I-\tilde{W}^T)(I-\tilde{W}e)=(I-\tilde W^T)\cdot 0=0\cdot e (IW~T)(IW~T)Te=(IW~T)(IW~e)=(IW~T)0=0e

主要原因是W~∈n×n\tilde W\in \mathbb{n\times n}W~n×n的每一行之和都为0。本来就是从重建矩阵W∈Rn×kW\in \mathbb{R}^{n\times k}WRn×k来的嘛,只不过扩展了一下,扩展的还都填了0.
这个证明告诉我们无论XXX怎样变化,GGTGG^TGGT都有一个特征向量全为1,对应的特征值为0. 这显然不是我们想要的,因此一般取非0的前ddd小的特征值对应的特征向量组成YYY

总结

这个推导告诉我们,经典形式tr(WTAATW)tr(W^TAA^TW)tr(WTAATW)有多么重要以及千变万化。
还告诉我们,构造向量和矩阵以形成熟悉容易解的形式非常重要。
另有一点,GGTGG^TGGT的结果是n×nn\times nn×n的矩阵,最多有nnn个特征值,其中还有一个是0,也就是说d>n−1d>n-1d>n1的时候LLE就不能用了。

降维系列之 LLE 局部线性嵌入相关推荐

  1. 两种降维方法的总结——LLE(局部线性嵌入),ISOMAP(等度量映射)

    简介 流形学习是一类借鉴了拓扑流形概念的降维方法.流形是在局部与欧式空间同胚的空间,换言之,它在局部具有欧式空间的性质,能用欧式距离来进行距离计算.若低维流形嵌入到高维空间中,则数据样本在高维空间的分 ...

  2. 流行学习、流形学习家族、局部线性嵌入LLE、随机投影(Random Projection)、t-SNE降维及可视化

    流行学习.流形学习家族.局部线性嵌入LLE.随机投影(Random Projection).t-SNE降维及可视化 目录 流行学习.流形学习家族.局部线性嵌入LLE.随机投影(Random Proje ...

  3. 浅谈局部线性嵌入(LLE)的数学原理

    数学系列是本人学习笔记,水平有限,错误在所难免,还请读者不吝指正 Nonlinear Dimensionality Reduction by Locally Linear Embedding 简介 局 ...

  4. 用scikit-learn研究局部线性嵌入(LLE)

    1. scikit-learn流形学习库概述 在scikit-learn中,流形学习库在sklearn.manifold包中.里面实现的流形学习算法有: 1)多维尺度变换MDS算法:这个对应的类是MD ...

  5. 机器学习:流形学习Manifold Learning之LLE(局部线性嵌入)

    流形学习被认为属于非线性降维的一个分支. 线性降维的图例如下: 原图: 线性降维后的图: 线性的算法基本就是这个样子,可以看到线性的算法能把最重要的维度们找出来,蛋卷的形状被保全了下来, 但是对很多应 ...

  6. 局部线性嵌入(LLE)

    关于LLE可参考局部线性嵌入(LLE)原理总结.本文对上述博客中第三节LLE算法推导给出一些自己的理解. LLE算法推导 对于LLE算法,我们首先要确定邻域大小的选择,即我们需要多少个邻域样本来线性表 ...

  7. 局部线性嵌入(LLE)原理总结

    局部线性嵌入(Locally Linear Embedding,以下简称LLE)也是非常重要的降维方法.和传统的PCA,LDA等关注样本方差的降维方法相比,LLE关注于降维时保持样本局部的线性特征,由 ...

  8. lle算法c 语言,局部线性嵌入算法(LLE)与其Python实现-Go语言中文社区

    PCA是至今为止运用最为广泛的数据降维算法,它通过最小化重构误差达到将高维数据映射到低维并同时保留数据中所存在的绝大部分信息.但是一般的PCA也有缺点,它只能实现线性降维.当然现在也有kernel P ...

  9. 局部线性嵌入(Locally Linear Embedding,简称LLE)

    局部线性嵌入(Locally Linear Embedding,简称LLE) 1 绪论 与Isomap试图保持邻域内样本之间的距离不同,局部线性嵌入(Locally Linear Embedding, ...

  10. 局部线性嵌入 (Locally linear embedding-LLE)原理总结

    转载:https://www.cnblogs.com/pinard/p/6266408.html?utm_source=itdadao&utm_medium=referral#!comment ...

最新文章

  1. 史上世界上最惨烈的几次股灾!
  2. 有了Anaconda如何安装Pycharm以及简单使用和调试
  3. JMF天昏地暗之路(一)-----jmf无法检测到摄像头
  4. c# in deep 之Lambda表达式
  5. dice系数什么意思_轮胎上的数字和字母是什么意思 轮胎上的红点黄点是什么意思...
  6. php for循环 循环奇数,php – Foreach,每个n项的特殊处理(奇数,甚至例如)
  7. (JAVA)复制文件test.txt,并且排序。文件重新命名为test1.txt
  8. android 基本知识
  9. 【Python】 运算符
  10. JSP中meta http-equiv=pragma content=no-cache属性ttp-equiv功能介绍转载
  11. pb 判断sql 是否合法_宜信技术|《SQL优化最佳实践》作者带你重新了解SQL
  12. 怎么设置竖线分栏_做出专业级的Word文档分栏,只需这3个技巧
  13. C/C++[PAT B level 1036]图形输出
  14. hduoj 1532
  15. windows网络编程-几种模式
  16. java阴阳师抽卡算法_阴阳师最强召唤黑科技:如何抽卡必出SSR
  17. 项目遇到的难点、印象深刻点总结
  18. 主板cpu盖板怎么盖回去
  19. ❤️解决非线性回归问题的机器学习方法总结:多项式线性模型、广义线性(GAM)模型、回归树模型、支持向量回归(SVR)模型
  20. 杭州区块链技术与应用联合会简报

热门文章

  1. 威廉第三的MAC系列教程(一) ——使用ACPI Patcher制作DSDT补丁
  2. springmvc解决静态资源无法访问的两种方法
  3. Spring和Mybatis整合-原生dao开发
  4. 17/18/19每日一练汇总
  5. 用友t+畅捷通使用方法_【财务人员必看干货】用友财务软件使用方法和快捷键大全!...
  6. PAT之查找:遍历、二分、hash
  7. python airflow_airflow python 包采坑指南
  8. python交通调查数据处理_python数据分析--关于时间类型数据处理的一种方法
  9. hdoj1087:Super Jumping! Jumping! Jumping!(dp基础题-最大上升子序列和(可不连续))
  10. 有截图功能的android播放器,Android hls、rtsp录屏截屏直播播放器