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

    局部线性嵌入(Locally Linear Embedding,如下简称LLE)也是很是重要的降维方法。和传统的PCA,LDA等关注样本方差的降维方法相比,LLE关注于降维时保持样本局部的线性特征,因为LLE在降维时保持了样本的局部特征,它普遍的用于图像图像识别,高维数据可视化等领域。下面咱们就对LLE的原理作一个总结。算法

1. 流形学习概述

    LLE属于流形学习(Manifold Learning)的一种。所以咱们首先看看什么是流形学习。流形学习是一大类基于流形的框架。数学意义上的流形比较抽象,不过咱们能够认为LLE中的流形是一个不闭合的曲面。这个流形曲面有数据分布比较均匀,且比较稠密的特征,有点像流水的味道。基于流行的降维算法就是将流形从高维到低维的降维过程,在降维的过程当中咱们但愿流形在高维的一些特征能够获得保留。app

    一个形象的流形降维过程以下图。咱们有一块卷起来的布,咱们但愿将其展开到一个二维平面,咱们但愿展开后的布可以在局部保持布结构的特征,其实也就是将其展开的过程,就想两我的将其拉开同样。框架

    在局部保持布结构的特征,或者说数据特征的方法有不少种,不一样的保持方法对应不一样的流形算法。好比等距映射(ISOMAP)算法在降维后但愿保持样本之间的测地距离而不是欧式距离,由于测地距离更能反映样本之间在流形中的真实距离。函数

    可是等距映射算法有一个问题就是他要找全部样本全局的最优解,当数据量很大,样本维度很高时,计算很是的耗时,鉴于这个问题,LLE经过放弃全部样本全局最优的降维,只是经过保证局部最优来降维。同时假设样本集在局部是知足线性关系的,进一步减小的降维的计算量。学习

2. LLE思想

    如今咱们来看看LLE的算法思想。优化

    LLE首先假设数据在较小的局部是线性的,也就是说,某一个数据能够由它邻域中的几个样原本线性表示。好比咱们有一个样本$x_1$,咱们在它的原始高维邻域里用K-近邻思想找到和它最近的三个样本$x_2,x_3,x_4$. 而后咱们假设$x_1$能够由$x_2,x_3,x_4$线性表示,即:$$x_1 = w_{12}x_2 + w_{13}x_3 +w_{14}x_4$$spa

    其中,$w_{12}, w_{13}, w_{14}$为权重系数。在咱们经过LLE降维后,咱们但愿$x_1$在低维空间对应的投影$x_1'$和$x_2,x_3,x_4$对应的投影$x_2',x_3',x_4'$也尽可能保持一样的线性关系,即$$x_1' \approx w_{12}x_2' + w_{13}x_3' +w_{14}x_4'$$blog

    也就是说,投影先后线性关系的权重系数$w_{12}, w_{13}, w_{14}$是尽可能不变或者最小改变的。数学

    从上面能够看出,线性关系只在样本的附近起做用,离样本远的样本对局部的线性关系没有影响,所以降维的复杂度下降了不少。it

    下面咱们推导LLE算法的过程。

3. LLE算法推导

    对于LLE算法,咱们首先要肯定邻域大小的选择,即咱们须要多少个邻域样原本线性表示某个样本。假设这个值为k。咱们能够经过和KNN同样的思想经过距离度量好比欧式距离来选择某样本的k个最近邻。

    在寻找到某个样本的$x_i$的k个最近邻以后咱们就须要找到找到$x_i$和这k个最近邻之间的线性关系,也就是要找到线性关系的权重系数。找线性关系,这显然是一个回归问题。假设咱们有m个n维样本$\{x_1,x_2,...,x_m\}$,咱们能够用均方差做为回归问题的损失函数:即:$$J(w) = \sum\limits_{i=1}^{m}||x_i-\sum\limits_{j \in Q(i)}w_{ij}x_j||_2^2$$

    其中,$Q(i)$表示$i$的k个近邻样本集合。通常咱们也会对权重系数$w_{ij}$作归一化的限制,即权重系数须要知足$$\sum\limits_{j \in Q(i)}w_{ij} = 1$$

    对于不在样本$x_i$邻域内的样本$x_j$,咱们令对应的$w_{ij} = 0$,这样能够把$w$扩展到整个数据集的维度。

    也就是咱们须要经过上面两个式子求出咱们的权重系数。通常咱们能够经过矩阵和拉格朗日子乘法来求解这个最优化问题。

    对于第一个式子,咱们先将其矩阵化:$$ \begin{align} J(W) & =  \sum\limits_{i=1}^{m}||x_i-\sum\limits_{j \in Q(i)}w_{ij}x_j||_2^2  \\& = \sum\limits_{i=1}^{m}||\sum\limits_{j \in Q(i)}w_{ij}x_i-\sum\limits_{j \in Q(i)}w_{ij}x_j||_2^2  \\& = \sum\limits_{i=1}^{m}||\sum\limits_{j \in Q(i)}w_{ij}(x_i-x_j)||_2^2  \\& =  \sum\limits_{i=1}^{m} W_i^T(x_i-x_j)(x_i-x_j)^TW_i \end{align}$$

    其中$W_i =(w_{i1}, w_{i2},...w_{ik})^T$。

    咱们令矩阵$Z_i=(x_i-x_j)(x_i-x_j)^T,j \in Q(i)$,则第一个式子进一步简化为$J(W) =  \sum\limits_{i=1}^{k} W_i^TZ_iW_i$.对于第二个式子,咱们能够矩阵化为:$$\sum\limits_{j \in Q(i)}w_{ij} = W_i^T1_k = 1$$

    其中$1_k$为k维全1向量。

    如今咱们将矩阵化的两个式子用拉格朗日子乘法合为一个优化目标:$$L(W) =  \sum\limits_{i=1}^{k} W_i^TZ_iW_i + \lambda(W_i^T1_k - 1)$$

    对$W$求导并令其值为0,咱们获得$$2Z_iW_i + \lambda1_k = 0$$

    即咱们的$$W_i =  \lambda'Z_i^{-1}1_k$$

    其中 $\lambda' = -\frac{1}{2}\lambda$为一个常数。利用 $W_i^T1_k = 1$,对$W_i$归一化,那么最终咱们的权重系数$W_i$为:$$W_i = \frac{Z_i^{-1}1_k}{1_k^TZ_i^{-1}1_k}$$

 

    如今咱们获得了高维的权重系数,那么咱们但愿这些权重系数对应的线性关系在降维后的低维同样获得保持。假设咱们的n维样本集$\{x_1,x_2,...,x_m\}$在低维的d维度对应投影为$\{y_1,y_2,...,y_m\}$, 则咱们但愿保持线性关系,也就是但愿对应的均方差损失函数最小,即最小化损失函数$J(Y)$以下:$$J(y) = \sum\limits_{i=1}^{m}||y_i-\sum\limits_{j=1}^{m}w_{ij}y_j||_2^2$$

    能够看到这个式子和咱们在高维的损失函数几乎相同,惟一的区别是高维的式子中,高维数据已知,目标是求最小值对应的权重系数$W$,而咱们在低维是权重系数$W$已知,求对应的低维数据。注意,这里的$W$已是$m \times m$维度,以前的$W$是$m \times k$维度,咱们将那些不在邻域位置的$W$的位置取值为0,将$W$扩充到$m \times m$维度。

    为了获得标准化的低维数据,通常咱们也会加入约束条件以下:$$\sum\limits_{i=1}^{m}y_i =0;\;\; \frac{1}{m}\sum\limits_{i=1}^{m}y_iy_i^T = I$$

    首先咱们将目标损失函数矩阵化:$$ \begin{align} J(Y) & =  \sum\limits_{i=1}^{m}||y_i-\sum\limits_{j=1}^{m}w_{ij}y_j||_2^2  \\& = \sum\limits_{i=1}^{m}||YI_i-YW_i||_2^2  \\& = tr(Y(I-W)(I-W)^TY^T) \end{align}$$

    若是咱们令$M=(I-W)(I-W)^T$,则优化函数转变为最小化下式:$J(Y) = tr(YMY^T)$,tr为迹函数。约束函数矩阵化为:$YY^T=mI$

    若是你们熟悉谱聚类和PCA的优化,就会发现这里的优化过程几乎同样。其实最小化J(Y)对应的Y就是M的最小的d个特征值所对应的d个特征向量组成的矩阵。固然咱们也能够经过拉格朗日函数来获得这个:$$L(Y) = tr(YMY^T+\lambda(YY^T-mI))$$

    对Y求导并令其为0,咱们获得$2MY^T + 2\lambda Y^T =0$,即$MY^T = \lambda' Y^T$,这样咱们就很清楚了,要获得最小的d维数据集,咱们须要求出矩阵M最小的d个特征值所对应的d个特征向量组成的矩阵$Y=(y_1,y_2,...y_d)^T$便可。

    通常的,因为M的最小特征值为0不能反应数据特征,此时对应的特征向量为全1。咱们一般选择M的第2个到第d+1个最小的特征值对应的特征向量$M=(y_2,y_3,...y_{d+1})$来获得最终的Y。为何M的最小特征值为0呢?这是由于$W^Te =e$, 获得$|W^T-I|e =0$,因为$e \neq 0$,因此只有$W^T-I =0$,即 $(I-W)^T=0$,两边同时左乘$I-W$,便可获得$(I-W)(I-W)^Te =0e$,即M的最小特征值为0.

4. LLE算法流程

    在上一节咱们已经基本推导了LLE降维的整个流程,如今咱们对算法过程作一个总结。整个LLE算法用一张图能够表示以下:

    从图中能够看出,LLE算法主要分为三步,第一步是求K近邻的过程,这个过程使用了和KNN算法同样的求最近邻的方法。第二步,就是对每一个样本求它在邻域里的K个近邻的线性关系,获得线性关系权重系数W,具体过程在第三节第一部分。第三步就是利用权重系数来在低维里重构样本数据,具体过程在第三节第二部分。

    具体过程以下:

    输入:样本集$D=\{x_1,x_2,...,x_m\}$, 最近邻数k,降维到的维数d

    输出: 低维样本集矩阵$D'$

    1) for i 1 to m,  按欧式距离做为度量,计算和$x_i$最近的的k个最近邻$(x_{i1}, x_{i2}, ...,x_{ik},)$

    2) for i 1 to m, 求出局部协方差矩阵$Z_i=(x_i-x_j)(x_i-x_j)^T$,并求出对应的权重系数向量:$$W_i = \frac{Z_i^{-1}1_k}{1_k^TZ_i^{-1}1_k}$$

    3) 由权重系数向量$W_i$组成权重系数矩阵$W$,计算矩阵$M=(I-W)(I-W)^T$

    4) 计算矩阵M的前d+1个特征值,并计算这d+1个特征值对应的特征向量$\{y_1,y_2,...y_{d+1}\}$。

    5)由第二个特征向量到第d+1个特征向量所张成的矩阵即为输出低维样本集矩阵$D' = (y_2,y_3,...y_{d+1})$      

5. LLE的一些改进算法

    LLE算法很简单高效,可是却有一些问题,好比若是近邻数k大于输入数据的维度时,咱们的权重系数矩阵不是满秩的。为了解决这样相似的问题,有一些LLE的变种产生出来。好比:Modified Locally Linear Embedding(MLLE)和Hessian Based LLE(HLLE)。对于HLLE,它不是考虑保持局部的线性关系,而是保持局部的Hessian矩阵的二次型的关系。而对于MLLE,它对搜索到的最近邻的权重进行了度量,咱们通常都是找距离最近的k个最近邻就能够了,而MLLE在找距离最近的k个最近邻的同时要考虑近邻的分布权重,它但愿找到的近邻的分布权重尽可能在样本的各个方向,而不是集中在一侧。

    另外一个比较好的LLE的变种是Local tangent space alignment(LTSA),它但愿保持数据集局部的几何关系,在降维后但愿局部的几何关系得以保持,同时利用了局部几何到总体性质过渡的技巧。

    这些算法原理都是基于LLE,基本都是在LLE这三步过程当中寻求优化的方法。具体这里就很少讲了。

6. LLE总结

    LLE是普遍使用的图形图像降维方法,它实现简单,可是对数据的流形分布特征有严格的要求。好比不能是闭合流形,不能是稀疏的数据集,不能是分布不均匀的数据集等等,这限制了它的应用。下面总结下LLE算法的优缺点。

    LLE算法的主要优势有:

    1)能够学习任意维的局部线性的低维流形

    2)算法归结为稀疏矩阵特征分解,计算复杂度相对较小,实现容易。

    LLE算法的主要缺点有:

    1)算法所学习的流形只能是不闭合的,且样本集是稠密均匀的。

    2)算法对最近邻样本数的选择敏感,不一样的最近邻数对最后的降维结果有很大影响。

 

(欢迎转载,转载请注明出处。欢迎沟通交流: liujianping-ok@163.com) 

相关文章
相关标签/搜索