局部线性嵌入LLE算法--学习笔记

  1. 流形学习是一大类基于流形的框架,形象说明流形降维:

    局部线性嵌入LLE算法--学习笔记_第1张图片

  2. ISOMAP(更多细节可参考:isomap降维算法--学习笔记_Wsyoneself的博客-CSDN博客):

    局部线性嵌入LLE算法--学习笔记_第2张图片

  3. LLE:
    1. 和传统的PCA,LDA等关注样本方差的降维方法相比,LLE关注于降维时保持样本局部的线性特征,由于LLE在降维时保持了样本的局部特征,它广泛的用于图像图像识别,高维数据可视化等领域。
    2. LLE属于流形学习(Manifold Learning)的一种。数学意义上的流形比较抽象,不过可以认为LLE中的流形是一个不闭合的曲面。这个流形曲面有数据分布比较均匀,且比较稠密的特征,有点像流水的味道。基于流行的降维算法就是将流形从高维到低维的降维过程,在降维的过程中希望流形在高维的一些特征可以得到保留
    3. 数据特征的方法有很多种,不同的保持方法对应不同的流形算法。比如等距映射(ISOMAP)算法在降维后希望保持样本之间的测地距离而不是欧式距离,因为测地距离更能反映样本之间在流形中的真实距离。但是等距映射算法有一个问题就是他要找所有样本全局的最优解,当数据量很大,样本维度很高时,计算非常的耗时,鉴于这个问题,LLE通过放弃所有样本全局最优的降维,只是通过保证局部最优来降维。同时假设样本集在局部是满足线性关系的,进一步减少的降维的计算量。
    4. LLE的算法思想:
      1. 首先假设数据在较小的局部是线性的,也就是说,某一个数据可以由它邻域中的几个样本来线性表示。比如有一个样本x1,在它的原始高维邻域里用K-近邻思想找到和它最近的三个样本x2,x3,x4. 然后假设x1可以由x2,x3,x4线性表示,即:x1=w_12 x2+w_13 x3+w_14 x4(其中,w12,w13,w14为权重系数)。在通过LLE降维后,希望x1在低维空间对应的投影x′1和x2,x3,x4对应的投影x′2,x′3,x′4也尽量保持同样的线性关系,即x′1≈w_12x′2+w_13x′3+w_14x′4,即投影前后线性关系的权重系数w_12,w_13,w_14是尽量不变或者最小改变的。
      2. 从上面可以看出,线性关系只在样本的附近起作用,离样本远的样本对局部的线性关系没有影响,因此降维的复杂度降低了很多。
    5. 具体实现:
      1. 首先要确定邻域大小的选择,即需要多少个邻域样本来线性表示某个样本。假设这个值为k。可以通过和KNN一样的思想通过距离度量比如欧式距离来选择某样本的k个最近邻。
      2. 在寻找到某个样本的xi的k个最近邻之后就需要找到找到xi和这k个最近邻之间的线性关系,也就是要找到线性关系的权重系数。找线性关系,这显然是一个回归问题。假设有m个n维样本{x1,x2,...,xm},可以用均方差作为回归问题的损失函数:其中,Q(i)Q(i)表示ii的k个近邻样本集合。一般也会对权重系数wijwij做归一化的限制,即,对于不在样本xixi邻域内的样本xjxj,令对应的wij=0wij=0,这样可以把ww扩展到整个数据集的维度。一般可以通过矩阵和拉格朗日子乘法来求解这个最优化问题。
        1. 对于第一个式子,先将其矩阵化:局部线性嵌入LLE算法--学习笔记_第3张图片局部线性嵌入LLE算法--学习笔记_第4张图片局部线性嵌入LLE算法--学习笔记_第5张图片
  4. 总结整个LLE算法(主要分三步):

    局部线性嵌入LLE算法--学习笔记_第6张图片

    1. 求K近邻的过程,这个过程使用了和KNN算法一样的求最近邻的方法。
    2. 对每个样本求它在邻域里的K个近邻的线性关系,得到线性关系权重系数W。
    3. 利用权重系数来在低维里重构样本数据。
    4. 具体过程:局部线性嵌入LLE算法--学习笔记_第7张图片
  5. 总结分析:LLE是广泛使用的图形图像降维方法,它实现简单,但是对数据的流形分布特征有严格的要求。比如不能是闭合流形,不能是稀疏的数据集,不能是分布不均匀的数据集等等,这限制了它的应用。下面总结下LLE算法的优缺点。
    1. 主要优点有:
      1. 可以学习任意维的局部线性的低维流形
      2. 算法归结为稀疏矩阵特征分解,计算复杂度相对较小,实现容易。
    2. 主要缺点有:
      1. 算法所学习的流形只能是不闭合的,且样本集是稠密均匀的。
      2. 算法对最近邻样本数的选择敏感,不同的最近邻数对最后的降维结果有很大影响。

你可能感兴趣的:(deeplearning,python,开发语言)