降维系列之 LE 拉普拉斯特征映射
优化目标
接上篇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)0if ∥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中样本之间的连接权重,并最小化连接的加权和:
minY12∑i,j=1nWij∥yi−yj∥22\min_Y \frac{1}{2} \sum_{i,j=1}^n W_{ij}\|y_i-y_j\|_2^2 Ymin21i,j=1∑nWij∥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 21i,j=1∑nWij∥yi−yj∥22=21i,j=1∑nWij(yi−yj)T(yi−yj)=21i,j=1∑nWij(yiTyi+yjTyj−2yiTyj)=21i,j=1∑nWij(yiTyi+yjTyj)−i=1∑nj=1∑nWijyiTyj=i=1∑nDiiyiTyi−i=1∑nyiTj=1∑nWijyj=i=1∑nDiiyiTyi−i=1∑nyiT(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∑nWij
使用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∑dYiL(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∑dYiL(Yi)T+i=1∑dλi[1−YiD(Yi)T]−j=i∑dρjYiD(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λiD(Yi)T−ρjD(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λiD(Yi)T+ρjYiD(Yj)TYiL(Yi)T=YiλiD(Yi)TL(Yi)T=λiD(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=1nWijyiTyj=tr(YWYT)。这个推导告诉我们这样的式子是可以写成简洁形式的。
降维系列之 LE 拉普拉斯特征映射相关推荐
- 深入理解拉普拉斯特征映射
目录 1. 一些定义 2. 矩阵的迹求导 3. LE 3.1 目标函数 3.2 约束条件 3.3 优化 3.4 广义特征值问题 3.5 结果 拉普拉斯特征映射(Laplacian Eigenmaps, ...
- 拉普拉斯分布_理解拉普拉斯特征映射中的优化问题的约束条件
引言:在学习拉普拉斯特征映射(Laplacian Eigenmaps, LE)的过程中,发现大多数参考资料仅列出了其中的最优化问题,然后直接过渡到特征值问题,对于该优化问题,特别是其中的约束条件解释的 ...
- 拉普拉斯特征映射(Laplacian Eigenmaps)
1.介绍 拉普拉斯特征映射(Laplacian Eigenmaps)是一种不太常见的降维算法,它看问题的角度和常见的降维算法不太相同,是从局部的角度去构建数据之间的关系.也许这样讲有些抽象,具体来讲, ...
- 图嵌入(拉普拉斯特征映射Laplacian Eigenmaps)
图嵌入(Graph embedding)的意义 Graph广泛存在于真实世界的多种场景中,即节点和边的集合.比如社交网络中人与人之间的联系,生物中蛋白质相互作用以及通信网络中的IP地址之间的通信等等. ...
- 机器学习降维算法四:Laplacian Eigenmaps 拉普拉斯特征映射
继续写一点经典的降维算法,前面介绍了PCA,LDA,LLE,这里讲一讲Laplacian Eigenmaps. 其实不是说每一个算法都比前面的好,而是每一个算法都是从不同角度去看问题,因此解决问题的思 ...
- Laplacian Eigenmaps 拉普拉斯特征映射
Laplacian Eigenmaps 继续写一点经典的降维算法,前面介绍了PCA,LDA,LLE,这里讲一讲Laplacian Eigenmaps.其实不是说每一个算法都比前面的好,而是每一个算法都 ...
- python降维效果图_python实现拉普拉斯特征图降维示例
这种方法假设样本点在光滑的流形上,这一方法的计算数据的低维表达,局部近邻信息被最优的保存.以这种方式,可以得到一个能反映流形的几何结构的解. 步骤一:构建一个图G=(V,E),其中V={vi,i=1, ...
- 拉普拉斯特征映射(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 ...
- 机器学习降维算法六——ISOMAP(等距特征映射)
流形学习:传统的机器学习方法中,数据点和数据点之间的距离和映射函数都是定义在欧式空间中的,然而在实际情况中,这些数据点可能不是分布在欧式空间中的,因此传统欧式空间的度量难以用于真实世界的非线性数据,从 ...
- Laplacian eigenmap 拉普拉斯特征映射
下面是实验室大牛师兄自己写的一段总结,主要内容是Laplacian Eigenmap中的核心推导过程. 有空还是多点向这位师兄请教,每次都会捡到不少金子. Reference : <Laplac ...
最新文章
- QIIME 2教程. 03老司机上路指南Experience(2020.11)
- MySQL优化大总结
- mysql originator_MySQL数据库事件调度(Event)
- ftp上传文件出现“sftp: cannot open /usr/SmartStore_test/1.zip to write”
- web前端 如何入门人工智能算法
- NodeJs学习笔记001--npm换源
- android studio gradle 打jar 包 (混淆+第三方库包)
- Hillstone 防火墙流量命令
- android 实现页面跳转代码,Android 实现页面跳转
- 前端JQuery插件distpicker.js的部分操作使用
- jquery学习笔记
- Docker简介/安装/使用
- 越美丽的东西我越不可碰 | 天蝎座如何在黑暗中找到那束光
- 7-25自习学习日记
- 移动端自动化测试appium(6)--搭建模拟器和真机环境
- 恢复系统映像时错误代码0X80070057的解决方案
- 【龙印】FDM 3d打印机常见打印质量问题和解决办法
- Java 6-1 人口统计
- WinHttp的简单使用用例
- protues里报警c语言程序,基于51单片机的智能火灾报警系统-(Proteus仿真图+源程序+论文)...
热门文章
- 使用变量替换批量部署GoldenGate
- 那些令人喷饭的代码注释:仅以此代码献给...it's realy ?
- cisco的路由器上rip的被动接口,单播更新,水平分隔
- 基于Sendmail、Dovecot和Ssl的电子邮件服务器搭建——从不安全通信到安全通信
- Anaconda的安装与使用(Windows下)
- python 日历热力图_Python如何绘制日历图和热力图
- 大数斐波那契数列(nyoj655)光棍的yy
- c语言三角函数乘法怎么表示,这个图里的三角函数 要怎么用c语言打出来
- 终端如何查看虚拟环境_Python版本管理工具和虚拟环境
- python文本风格_Python的代码风格