[1]https://www.cnblogs.com/pinard/p/6266408.html
[2]Graph Embedding Techniques, Applications, and Performance: A Survey
主要参考和图片来源[1]
局部线性嵌入
(Locally Linear Embedding,LLE),一种重要降维方法,与PCA、LDA相比,更注重保持样本局部线性特征,常用语图像识别、高维数据可视化等。
数学意义上的流形
:一个不闭合曲面,曲面上数据分布均匀,特征比较稠密,流形降维就是把流形从高维到低维的降维过程,并在降维中保留流形高维的特征。
我的理解:数据分布于高维的一个曲面,流行学习就是将这个曲面降维展开表达出来
LLE
LLE假设数据在较小的局部是线性的,即样本
x1
可以由K个近邻样本
x2,x3,x4
线性表示
x1=w12x2+w13x3+w14x4
则希望降维之后依然保持这种线性关系
x′1≈w12x′2+w13x′3+w14x′4
由于只考虑了局部线性关系,所以复杂度低很多
LLE推导
首先设定邻域大小k,然后寻找某个样本与近邻样本的线性关系,即权重系数。
假设有m个n维样本
{x1,x2,...,xm}
,则有损失函数
J(w)=∑i=1m‖xi−∑j=1kwijxj‖22
对权重系数有归一化限制
∑j=1kwij=1
对损失函数矩阵化
J(W)=∑i=1m‖xi−∑j=1kwijxj‖22=∑i=1m‖∑j=1kwijxi−∑j=1kwijxj‖22=∑i=1m‖∑j=1kwij(xi−xj)‖22=∑i=1mWTi(xi−xj)T(xi−xj)Wi
其中
Wi=(wi1,wi2,...,wik)T
表示局部协方差
Zi=(xi−xj)T(xi−xj)
则简化为
J(W)=∑i=1mWTiZiWi
对约束有
∑j=1kwij=WTi1k=1
其中1k为k维全1向量
则拉格朗日乘子法:
L(W)=∑i=1mWTiZiWi+λ(WTi1k−1)
对W求导取0得
2ZiWi+λ1k=0
则
Wi=λ′Z−1i1kλ′=−12λ
利用约束做归一化有
Wi=Z−1i1k1TkZ−1i1k
注:把
1Tk挪到左边就对上了。。。
至此,获得高维的权重系数,希望权重系数保持。设定n维样本集
{x1,x2,...,xm}
在低维的d维度投影为
{y1,y2,...,ym}
,希望保持线性关系且均方差损失函数最小,则最小化损失函数
J(y)=∑i=1m‖yi−∑j=1kwijyj‖22
区别在于高维的时候是求权重系数W,低维时是求低位数据Y
为了得到标准化低维数据,加入约束条件
∑i=1myi=0;1m∑i=1myiyTi=I
将目标损失函数矩阵化
J(Y)=∑i=1m‖yi−∑j=1kwijyj‖22=∑i=1m‖YIi−YWi‖22=tr(YT(I−W)T(I−W)Y)
令
M=(I−W)T(I−W)
,则最小化
J(Y)=tr(YTMY)
,约束函数矩阵化为
YTY=mI
通过拉格朗日函数得到
L(Y)=tr(YTMY)+λ(YTY−mI)
求导取0得到
2MY+2λY=0
则求出矩阵M的最小的d个特征值所对应的d个特征向量组成矩阵
Y=(y1,y2,...,yd)
注,一般最小的特征值为0不能反映数据特征,因此取[1,d+1]小的特征值的特征向量。(这里因为最小化目标,所以取小的特征值)
算法流程
总结一波流程:K近邻=>算权重系数=>算降维后的矩阵
LLE算法的主要优点有:
1)可以学习任意维的局部线性的低维流形
2)算法归结为稀疏矩阵特征分解,计算复杂度相对较小,实现容易。
LLE算法的主要缺点有:
1)算法所学习的流形只能是不闭合的,且样本集是稠密均匀的。
2)算法对最近邻样本数的选择敏感,不同的最近邻数对最后的降维结果有很大影响。