Skip to content

Latest commit

 

History

History
35 lines (22 loc) · 1.51 KB

lle.md

File metadata and controls

35 lines (22 loc) · 1.51 KB

Local Linear Embedding

背景

降维是一个对速度和效果的权衡,而针对不同问题的降维方法也稍有差异,LLE算法是一个非常厉害的算法,它在流型上的降维能够有很好的效果。

核心思想

我们假设我们的数据分布是在一个高维空间上的一个曲面,就像迷宫一样,一些在L2距离上近的点在曲面上不一定是近的,那么降维后怎么保持这个性质呢?算法的作者想到了利用近邻的方法。

作者提出了目标:尽可能确保降维前后邻近的关系不变。

线性组合矩阵

如何保证前后关系不变呢?作者想出了这个办法。我们可以把一个数据表示成它近邻的线性组合,那么这个线性组合的参数就是我们要的组合矩阵。

a = [] # a是一个数据
neighbors = find_neighbors(a) # 找到a的邻居
W = a \ neighbors # 因为 neighbors * W = a, W是邻居的线性组合

下面我们希望在新的降维空间里,这个性质依然存在,那么就相当于求解下面的问题:

min (transform(neighors) * W - a)^2

我们注意到了一个问题,那就是在计算W时,我们实际上只用到了局部的信息,而计算降维数据,实际上我们用到了全局的信息,因为降维后的数据要同时满足所有点的线性关系,这个求W的计算已经不同。

计算

求解的过程详见下面的文章(TODO)

Reference

Tutorial