转载:https://www.cnblogs.com/pinard/p/6266408.html?utm_source=itdadao&utm_medium=referral#!comments
局部线性嵌入(Locally Linear Embedding) 是非常重要的姜维方法。与传统的PCA,LDA等关注样本方差的降维方法相比,LLE关注降维时保持样本局部的线性特征,由于这个特性,它广泛运用于图像识别,高维数据可视化等领域。
1· 流形学习概述
LLE属于流形学习(Manifold Learning)的一种。流形学习是一大类基础流形的框架。数学意义上的流形比较抽象,不过我们可以认为LLE中的流形是一个不闭合的曲面。这个流形曲面有数据分布比较均匀,且比较稠密的特征。基于流行的降维算法就是将流形从高维到低维的降维过程,在降维的过程中我们希望流形在高维的一些特征可以得到保留。
一个形象的流形降维过程如下图。我们有一块卷起来的布,我们希望将其展开到一个二维平面,我们希望展开后的布能够在局部保持布结构的特征,其实也就是将其展开的过程,就想两个人将其拉开一样。

在局部保持布结构的特征,或者说数据特征的方法有很多种,不同的保持方法对应不同的流形算法。比如等距映射(ISOMAP)算法在降维后希望保持样本之间的测地距离而不是欧式距离,因为测地距离更能反映样本之间在流形中的真实距离。

但是等距映射算法的一个问题是要找所有样本全局的最优解,当数据量很大,样本维度很高时,计算非常耗时,鉴于这个问题,LLE通过放弃所有样本全局最优的降维,只是通过保证局部最优来降维。同时假设样本集在局部是满足线性关系的,进一步减少的降维的计算量。
2· LLE思想
LLE首先假设数据在较小的局部是线性的,也就是说,某一个数据可以由它领域中的几个样本点来线性表示。比如:一个样本 x 1 x_1 x1,我们在它原始高维空间中用K-近邻思想找到和它最近的三个点 x 2 , x 3 , x 4 . x_2,x_3,x_4. x2,x3,x4. 然后假设 x 1 x_1 x1 可以由 x 2 , x 3 , x 4 x_2,x_3,x_4 x2,x3,x4 线性表示, 即:
其中, w 12 , w 13 , w 14 w_{12},w_{13},w_{14} w12,w13,w14 为权重系数。在通过LLE降维后,我们希望 x 1 x_1 x1 在低维空间对应的投影 x 1 ′ x'_1 x1′ 和 x 2 , x 3 , x 4 x_2,x_3,x_4 x2,x3,x4 对应的投影 x 2 ′ , x 3 ′ , x 4 ′ x'_2,x'_3,x'_4 x2′,x3′,x4′ 线性表示,即:
x 1 ′ ≈ w 12 x 2 ′ + w 13 ′ x 3 ′ + w 14 x 4 ′ x'_1 \approx w_{12}x'_2 + w'_{13}x'_3 + w_{14}x'_4 x1′≈w12x2′+w13′x3′+w14x4′
也就是说,投影前后线性关系的权重系数 w 12 , w 13 , w 14 w_{12},w_{13},w_{14} w12,w13,w14 是尽量不变或者改变最小的。
从上可知,线性关系只在样本的附近起作用,离样本远的样本对局部的线性关系没有影响,因此降维的复杂度降低了很多。
3· LLE算法推导
对于LLE算法,我们首先要确定邻域大小的选择,即我们需要多少个邻域样本来线性表示某个样本。假设这个值为k。我们可以通过和KNN一样的思想通过距离度量比如欧式距离来选择某样本的k个最近邻。
在寻找到某个样本 x i x_i xi 的k个最近邻之后我们就需要找到 x i x_i xi 和这k个邻居之间的线性关系,也就是要找到线性关系的权重系数。找线性关系,这显然是一个回归问题。假设我们有m个n维样本 { x 1 , x 2 , ⋅ ⋅ ⋅ , x m } \left \{ x_1,x_2,···,x_m \right \} {
x1,x2,⋅⋅⋅,xm},我们可以用均方差作为回归问题的损失函数:即: J ( w ) = ∑ i = 1 m ∥ x i − ∑ j ∈ Q ( i ) w i j x j ∥ 2 2 J(w)=\sum_{i=1}^{m}\left \|x_i- \sum_{j\in Q(i)}w_{ij}x_j \right \|^{2}_2 J(w)=i=1∑m∥∥∥∥∥∥xi−j∈Q(i)∑wijxj∥∥∥∥∥∥22
其中 Q ( i ) Q(i) Q(i) 表示 i i i 的K个近邻样本集合。一般我们也会对权重系数 w i j w_{ij}