优化目标

接上篇PCA继续写降维。LE也是一种经典的降维方法和流形学习方法。给定样本集X∈RD×nX\in \mathbb{R}^{D\times n}X∈RD×n,DDD是样本原始维度,nnn是样本数量,每一列表示一个样本;求解目标是Y∈Rd×nY\in \mathbb{R}^{d\times n}Y∈Rd×n,ddd为目标维度,每一列表示一个样本。
与PCA不同的是,LE是一种非线性的方法,它是直接将YYY求出来,不需要计算投影矩阵。LE首先度量XXX中每两个样本之间的距离权重,组成一个权重矩阵WWW,其第i,j(i≠j)i,j(i\neq j)i,j(i​=j)个元素WijW_{ij}Wij​定义为:
Wij={exp(−∥xi−xj∥22t)if∥xi−xj∥22<ε0elseW_{ij}=\left\{ \begin{array}{ccl} exp(-\frac{\|x_i-x_j\|_2^2}{t}) & & {if\ \|x_i-x_j\|_2^2 < \varepsilon }\\ 0 & & {else} \end{array} \right. Wij​={exp(−t∥xi​−xj​∥22​​)0​​if ∥xi​−xj​∥22​<εelse​

若i=ji=ji=j,WijW_{ij}Wij​直接置000。其中xi,xjx_i,x_jxi​,xj​分别表示XXX的第i,ji,ji,j个样本,t,εt,\varepsilont,ε是可调节的参数。可以看出在这种定义中,如果两样本的距离(二范数度量)小于阈值ε\varepsilonε则赋予一连接权重,并且距离越远权重越小,距离越近权重越大。通过权重矩阵WWW,LE记录了XXX中任意两样本之间的连接关系。
LE希望降完维后各样本仍保持这种邻近关系,原本距离远的点仍然距离较远,原本距离近的点仍然距离较近,因此用已经计算出的WijW_{ij}Wij​仍作为YYY中样本之间的连接权重,并最小化连接的加权和:
min⁡Y12∑i,j=1nWij∥yi−yj∥22\min_Y \frac{1}{2} \sum_{i,j=1}^n W_{ij}\|y_i-y_j\|_2^2 Ymin​21​i,j=1∑n​Wij​∥yi​−yj​∥22​

约束条件后面再谈。
显然yi,yjy_i,y_jyi​,yj​分别是样本xi,xjx_i,x_jxi​,xj​降完维后的结果,是YYY的第i,ji,ji,j列。这就是LE的优化目标。

Lagrangian乘子法求解

下面做推导:
12∑i,j=1nWij∥yi−yj∥22=12∑i,j=1nWij(yi−yj)T(yi−yj)=12∑i,j=1nWij(yiTyi+yjTyj−2yiTyj)=12∑i,j=1nWij(yiTyi+yjTyj)−∑i=1n∑j=1nWijyiTyj=∑i=1nDiiyiTyi−∑i=1nyiT∑j=1nWijyj=∑i=1nDiiyiTyi−∑i=1nyiT(YW)i=tr(YDYT)−tr(YWYT)=tr[Y(D−W)YT]=tr(YLYT)s.t.YDYT=I\frac{1}{2} \sum_{i,j=1}^n W_{ij}\|y_i-y_j\|_2^2 \\ =\frac{1}{2} \sum_{i,j=1}^n W_{ij}(y_i-y_j)^T(y_i-y_j) \\ =\frac{1}{2} \sum_{i,j=1}^n W_{ij}(y_i^Ty_i+y_j^Ty_j-2y_i^Ty_j) \\ =\frac{1}{2} \sum_{i,j=1}^n W_{ij}(y_i^Ty_i+y_j^Ty_j)-\sum_{i=1}^n \sum_{j=1}^n W_{ij}y_i^Ty_j \\ =\sum_{i=1}^nD_{ii}y_i^Ty_i-\sum_{i=1}^n y_i^T \sum_{j=1}^n W_{ij}y_j \\ =\sum_{i=1}^n D_{ii}y_i^Ty_i -\sum_{i=1}^n y_i^T(YW)_i \\ =tr(YDY^T)-tr(YWY^T) \\ =tr[Y(D-W)Y^T]=tr(YLY^T) \\ s.t.\ YDY^T=I 21​i,j=1∑n​Wij​∥yi​−yj​∥22​=21​i,j=1∑n​Wij​(yi​−yj​)T(yi​−yj​)=21​i,j=1∑n​Wij​(yiT​yi​+yjT​yj​−2yiT​yj​)=21​i,j=1∑n​Wij​(yiT​yi​+yjT​yj​)−i=1∑n​j=1∑n​Wij​yiT​yj​=i=1∑n​Dii​yiT​yi​−i=1∑n​yiT​j=1∑n​Wij​yj​=i=1∑n​Dii​yiT​yi​−i=1∑n​yiT​(YW)i​=tr(YDYT)−tr(YWYT)=tr[Y(D−W)YT]=tr(YLYT)s.t. YDYT=I

其中DDD是度矩阵,是一个对角矩阵,L=D−WL=D-WL=D−W是拉普拉斯矩阵,DiiD_{ii}Dii​的值为:
Dii=∑j=1nWijD_{ii}=\sum_{j=1}^nW_{ij} Dii​=j=1∑n​Wij​

使用Lagrangian乘子法:
L(Y,λ)=tr(YLYT)+tr[λ(I−YDYT)]L(Y,\lambda)=tr(YLY^T)+ tr[\lambda(I-YDY^T)] L(Y,λ)=tr(YLYT)+tr[λ(I−YDYT)]

λ\lambdaλ是个对角矩阵。令偏导为0:
∂∂YL(Y,λ)=2YL−2λYD=0(LT=L,DT=D)LYT=DYTλ∂∂λL(Y,λ)=I−YDYT=0YDYT=I\frac{\partial}{\partial Y}L(Y,\lambda)=2YL-2\lambda YD=0\ (L^T=L,D^T=D)\\ LY^T=DY^T\lambda \\ \frac{\partial}{\partial \lambda}L(Y, \lambda)= I-YDY^T=0 \\ YDY^T=I \\ ∂Y∂​L(Y,λ)=2YL−2λYD=0 (LT=L,DT=D)LYT=DYTλ∂λ∂​L(Y,λ)=I−YDYT=0YDYT=I

从LYT=DYTλLY^T=DY^T\lambdaLYT=DYTλ可知,YTY^TYT的每一列,即YYY的每一行,都是LLL相对于DDD的广义特征向量(或称为D−1LD^{-1}LD−1L的特征向量),对应的λ\lambdaλ的对角元是对应的特征值。

将LYT=DYTλLY^T=DY^T\lambdaLYT=DYTλ代回原式:
tr(YLYT)=tr(YDYTλ=tr(λ))tr(YLY^T)=tr(YDY^T\lambda=tr(\lambda)) tr(YLYT)=tr(YDYTλ=tr(λ))

因此就能知道为了让tr(YLYT)tr(YLY^T)tr(YLYT)最小,等价于让tr(λ)tr(\lambda)tr(λ)最小,即要选择最小的ddd个特征值对应的特征向量组成YYY。

这里还有一个问题,由于L=D−WL=D-WL=D−W,而W,LW,LW,L都是对称矩阵,LiiL_{ii}Lii​恰好就是WWW的第iii行元素(或第iii列元素)之和,因此LiiL_{ii}Lii​就等于LLL第iii行其他元素之和。若有向量e=[1,⋯,1]T∈RDe=[1,\cdots,1]^T\in \mathbb{R}^{D}e=[1,⋯,1]T∈RD,则一定有:
Le=0⋅eLe=0\cdot e Le=0⋅e

这告诉我们000一定是D−1LD^{-1}LD−1L的一个特征值,对应的特征向量是eee,无论X,WX,WX,W是怎样的。这显然不是我们想要的,因此作为最终解,会选取D−1LD^{-1}LD−1L最小的ddd个非0特征值对应的特征向量组成YYY。

解法2

如果你和我曾经一样认为Lagrangian乘子法中直接设λ\lambdaλ为对角矩阵不符合Lagrangian乘子法的思想,这里再给另一种解法,这种解法类似于我在PCA这篇文章中给出的d>1d>1d>1时的解1.

从这里开始:
tr(YLYT)s.t.YDYT=Itr(YLY^T) \\ s.t.\ YDY^T=I tr(YLYT)s.t. YDYT=I

假设Y∈Rd×nY\in \mathbb{R}^{d\times n}Y∈Rd×n的第iii为YiY^iYi,则上式可以另写为如下形式:
∑i=1dYiL(Yi)Ts.t.YiD(Yi)T=1,YiD(Yj)T=0\sum_{i=1}^d Y^iL(Y^i)^T \\ s.t.\ Y^iD(Y^i)^T=1,Y^iD(Y^j)^T=0 i=1∑d​YiL(Yi)Ts.t. YiD(Yi)T=1,YiD(Yj)T=0

列Lagrangian乘子法:
L(Y,λ,ρ)=∑i=1dYiL(Yi)T+∑i=1dλi[1−YiD(Yi)T]−∑j≠idρjYiD(Yj)TL(Y,\lambda,\rho)=\sum_{i=1}^d Y^iL(Y^i)^T+\sum_{i=1}^d \lambda_i[1-Y^iD(Y^i)^T]-\sum_{j\neq i}^d \rho_j Y^iD(Y^j)^T L(Y,λ,ρ)=i=1∑d​YiL(Yi)T+i=1∑d​λi​[1−YiD(Yi)T]−j​=i∑d​ρj​YiD(Yj)T

对YiY^iYi求导并令结果为000:
∂∂YiL(Y,λ,ρ)=2L(Yi)T−2λiD(Yi)T−ρjD(Yj)T=0\frac{\partial}{\partial Y^i}L(Y,\lambda,\rho)=2L(Y^i)^T-2\lambda_i D(Y^i)^T-\rho_jD(Y^j)^T=0 ∂Yi∂​L(Y,λ,ρ)=2L(Yi)T−2λi​D(Yi)T−ρj​D(Yj)T=0

因为对λi,ρi\lambda_i,\rho_iλi​,ρi​求导的结果根本就是等式约束,所以这里不赘述。对上式左右同乘YiY^iYi:
2YiL(Yi)T=2YiλiD(Yi)T+ρjYiD(Yj)TYiL(Yi)T=YiλiD(Yi)TL(Yi)T=λiD(Yi)T2Y^iL(Y^i)^T=2Y^i\lambda_iD(Y^i)^T+\rho_jY^iD(Y^j)^T \\ Y^iL(Y^i)^T=Y^i\lambda_iD(Y^i)^T \\ L(Y^i)^T=\lambda_iD(Y^i)^T 2YiL(Yi)T=2Yiλi​D(Yi)T+ρj​YiD(Yj)TYiL(Yi)T=Yiλi​D(Yi)TL(Yi)T=λi​D(Yi)T

跟前面得到的结果完全一样。我这也算是证明了这两种解法等价呢,嘿嘿。这里面一个关键点在于,我们确信YiY^iYi不可能是全0向量,因为那样毫无意义。

总结

推导上比较难想到的一点还是∑i=1n∑j=1nWijyiTyj=tr(YWYT)\sum_{i=1}^n \sum_{j=1}^n W_{ij}y_i^Ty_j=tr(YWY^T)∑i=1n​∑j=1n​Wij​yiT​yj​=tr(YWYT)。这个推导告诉我们这样的式子是可以写成简洁形式的。

降维系列之 LE 拉普拉斯特征映射相关推荐

  1. 深入理解拉普拉斯特征映射

    目录 1. 一些定义 2. 矩阵的迹求导 3. LE 3.1 目标函数 3.2 约束条件 3.3 优化 3.4 广义特征值问题 3.5 结果 拉普拉斯特征映射(Laplacian Eigenmaps, ...

  2. 拉普拉斯分布_理解拉普拉斯特征映射中的优化问题的约束条件

    引言:在学习拉普拉斯特征映射(Laplacian Eigenmaps, LE)的过程中,发现大多数参考资料仅列出了其中的最优化问题,然后直接过渡到特征值问题,对于该优化问题,特别是其中的约束条件解释的 ...

  3. 拉普拉斯特征映射(Laplacian Eigenmaps)

    1.介绍 拉普拉斯特征映射(Laplacian Eigenmaps)是一种不太常见的降维算法,它看问题的角度和常见的降维算法不太相同,是从局部的角度去构建数据之间的关系.也许这样讲有些抽象,具体来讲, ...

  4. 图嵌入(拉普拉斯特征映射Laplacian Eigenmaps)

    图嵌入(Graph embedding)的意义 Graph广泛存在于真实世界的多种场景中,即节点和边的集合.比如社交网络中人与人之间的联系,生物中蛋白质相互作用以及通信网络中的IP地址之间的通信等等. ...

  5. 机器学习降维算法四:Laplacian Eigenmaps 拉普拉斯特征映射

    继续写一点经典的降维算法,前面介绍了PCA,LDA,LLE,这里讲一讲Laplacian Eigenmaps. 其实不是说每一个算法都比前面的好,而是每一个算法都是从不同角度去看问题,因此解决问题的思 ...

  6. Laplacian Eigenmaps 拉普拉斯特征映射

    Laplacian Eigenmaps 继续写一点经典的降维算法,前面介绍了PCA,LDA,LLE,这里讲一讲Laplacian Eigenmaps.其实不是说每一个算法都比前面的好,而是每一个算法都 ...

  7. python降维效果图_python实现拉普拉斯特征图降维示例

    这种方法假设样本点在光滑的流形上,这一方法的计算数据的低维表达,局部近邻信息被最优的保存.以这种方式,可以得到一个能反映流形的几何结构的解. 步骤一:构建一个图G=(V,E),其中V={vi,i=1, ...

  8. 拉普拉斯特征映射(Laplacian Eigenmaps, LE)

    主要思想 LE将 D D D维特征 X = [ x 1 , x 2 , ⋯ , x N ] ∈ R D × N \mathbf{X}=[\mathbf{x}_1, \mathbf{x}_2, \cdo ...

  9. 机器学习降维算法六——ISOMAP(等距特征映射)

    流形学习:传统的机器学习方法中,数据点和数据点之间的距离和映射函数都是定义在欧式空间中的,然而在实际情况中,这些数据点可能不是分布在欧式空间中的,因此传统欧式空间的度量难以用于真实世界的非线性数据,从 ...

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

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

最新文章

  1. QIIME 2教程. 03老司机上路指南Experience(2020.11)
  2. MySQL优化大总结
  3. mysql originator_MySQL数据库事件调度(Event)
  4. ftp上传文件出现“sftp: cannot open /usr/SmartStore_test/1.zip to write”
  5. web前端 如何入门人工智能算法
  6. NodeJs学习笔记001--npm换源
  7. android studio gradle 打jar 包 (混淆+第三方库包)
  8. Hillstone 防火墙流量命令
  9. android 实现页面跳转代码,Android 实现页面跳转
  10. 前端JQuery插件distpicker.js的部分操作使用
  11. jquery学习笔记
  12. Docker简介/安装/使用
  13. 越美丽的东西我越不可碰 | 天蝎座如何在黑暗中找到那束光
  14. 7-25自习学习日记
  15. 移动端自动化测试appium(6)--搭建模拟器和真机环境
  16. 恢复系统映像时错误代码0X80070057的解决方案
  17. 【龙印】FDM 3d打印机常见打印质量问题和解决办法
  18. Java 6-1 人口统计
  19. WinHttp的简单使用用例
  20. protues里报警c语言程序,基于51单片机的智能火灾报警系统-(Proteus仿真图+源程序+论文)...

热门文章

  1. 使用变量替换批量部署GoldenGate
  2. 那些令人喷饭的代码注释:仅以此代码献给...it's realy ?
  3. cisco的路由器上rip的被动接口,单播更新,水平分隔
  4. 基于Sendmail、Dovecot和Ssl的电子邮件服务器搭建——从不安全通信到安全通信
  5. Anaconda的安装与使用(Windows下)
  6. python 日历热力图_Python如何绘制日历图和热力图
  7. 大数斐波那契数列(nyoj655)光棍的yy
  8. c语言三角函数乘法怎么表示,这个图里的三角函数 要怎么用c语言打出来
  9. 终端如何查看虚拟环境_Python版本管理工具和虚拟环境
  10. python文本风格_Python的代码风格