matlab jacobi算法求特征值_降维打击之LLE算法

ff2d5dbae2634475e3a1e4b3388b4c70.png

             背景


  最近在温习之前了解过的spectral clustering 的时候接触到一个看着bigger满满的术语:manifold learing,然后顺藤摸瓜找到一篇2000年的science,不过他们当时并没有大肆炒这个manifold learning的概念,而是提出了一种叫做“local linear embedding”的降维算法,在处理所谓的流形的降维的时候,效果比PCA要好很多。于是我了解了下这个“简约而不简单”的LLE算法的具体实现方法,写一下我目前的理解。

e209d7283b3105689969098949369397.png

图片来源
  首先,所谓流形,我脑海里最直观的印象就是上图这种Swiss roll,我吃的时候喜欢把它整个摊开成一张饼再吃,其实这个过程就实现了对瑞士卷的降维操作,即从三维降到了两维。降维前,我们看到相邻的卷层之间看着距离很近,但其实摊开成饼状后才发现其实距离很远,所以如果不进行降维操作,而是直接根据近邻原则去判断相似性其实是不准确的。


            原理


  LLE的原理其实是这样的:

  • 所谓局部线性,就是认为在整个数据集的某小范围内,数据是线性的,就比如虽然地球是圆的,但我们还是可以认为我们的篮球场是个平面;而这个“小范围”,最直接的办法就是k-近邻原则。这个“近邻”的判断也可以是不同的依据:比如欧氏距离,测地距离等。
  • 既然是线性,那么对每个数据点
    (D维数据,即
    的列向量),可以用其k近邻的数据点的线性组合来表示,即
    。其中,
    的列向量,
    的第
    行,
    的第
    个近邻点。
  • 通过使loss function最小化:

    得到权重系数
    ,一共
    个数据点,对应
  • 接下来是LLE中又一个假设:即认为将原始数据从D维降到d维后,
    ,其依旧可以表示为其k近邻的线性组合,且组合系数不变,即
    ,再一次通过最小化loss function:
    得到降维后的数据。

            算法推导


step 1

运用k近邻算法得到每个数据的k近邻点:

step 2:

求解权重系数矩阵

即求解:

在推导之前,我们首先统一下数据的矩阵表达形式

  输入:

  权重:

则可逐步推导出权重系数矩阵的表达式:


看做局部协方差矩阵
, 那么 :
运用拉格朗日乘子法

其中,

是全
的列向量。

求导:
  就上述表达式而言,局部协方差矩阵
是个
的矩阵,根据让矩阵计算说人话,其分母
其实是对
的所有元素求和,而其分子
是 对
的每行求和后得到的列向量。

step 3: 映射到低维空间

即求解:

  低维空间向量:

首先,用一个

的稀疏矩阵(sparse matrix)
来表示
:

     对

的近邻点
;

     否则:

因此:

方阵的第
列。所以
表示单位矩阵的第
列。

由矩阵论可知:对矩阵
,有


所以:

再一次拉格朗日乘子法:

求导:

  可见Y其实是M的特征向量构成的矩阵,为了将数据降到

维,我们只需要取M的最小的
个非零特征值对应的特征向量,而一般第一个最小的特征值接近0,我们将其舍弃,取前
个特征值对应的特征向量。

            结果演示


  借助matlab强大的矩阵运算能力对swiss roll数据集进行了LLE降维。原始的数据如下:

440e6297e3996d8a0a6c75075950b33f.png
Fig.1. Swill roll数据集。

通过LLE降维后的结果如下:

35908dc731c2114afa95d918de96cf93.png
Fig. 2. LLE降维在不同k值的二维分布结果。k代表在k近邻算法时选取的最近邻个数。

  可以看出,当k取值较小(k=4)时,算法不能将数据很好地映射到低维空间,因为当近邻个数太少时,不能很好地反映数据的拓扑结构。当k值取值适合,这里选取的是k=15,可见不同颜色的数据能很好地被分开并保持适合的相对距离。但若k取值太大,如k=50,不同颜色的数据开始相互重叠,说明选取的近邻个数太多则不能反映数据的流形信息。


             思考


  1. 在step 3中为什么是取d个最小的非零特征值,而不是最大的
    个特征值呢?
  2. 怎样理解每一步的约束条件呢?

没想到导入md文件公式还是不能渲染出来,重新用知乎的公式编辑器把公式编辑了一遍,不得不吐槽一句:知乎的公式编辑真是不方便而且太不美观了。。。

我是个人博客搬运工
降维打击之LLE算法​www.quanlion.com
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值