2020李宏毅机器学习笔记-Unsupervised Learning: Neighbor Embedding

目录

 摘要

1. Manifold Learning

2. Locally Linear Embedding

2.1 LLE的具体做法

2.2 实验结果

3. Laplacian Eigenmaps

3.1 Smoothness Assumption

3.2 LE的具体做法

4. t-SNE

4.1 t-SNE的具体做法

4.2 实验结果

总结和展望


 摘要

本节介绍了非线性降维的一些算法,包括局部线性嵌入LLE、拉普拉斯特征映射LE和t分布随机邻居嵌入t-SNE,其中t-SNE特别适用于可视化的应用场景。而上节介绍的PCA和Word Embedding是线性降维,而Neighbor Embedding是非线性的降维。

局部线性嵌入LLE其主要思想是:假设数据中每个点可以由其近邻的几个点重构出来。降到低维,使样本仍能保持原来的重构关系,且重构系数也一样。

拉普拉斯特征映射LE其主要思想是:将数据映射到低维,且保持点之间的(相似度)距离关系。即在原空间中相距较远的点,投影到低维空间中,希望它们之间仍相距较远。反之亦然。

t分布随机邻居嵌入t-SNE其主要思想是:先前的LLE和LE两种方法只考虑了相似的数据距离要近,而没有考虑到不同点要尽可能分开。过程是计算数据点各个点之间的相似度P以及降维后的点的相似度Q,我们希望P和Q越接近越好。

1. Manifold Learning

样本点的分布可能是在高维空间里的一个流行(Manifold),也就是说,样本点其实是分布在低维空间里面,只是被扭曲地塞到了一个高维空间里地球的表面就是一个流行(Manifold),它是一个二维的平面,但是被塞到了一个三维空间里。

在Manifold中,只有距离很近的点欧氏距离(Euclidean Distance)才会成立,而在下图的S型曲面中,欧氏距离是无法判断两个样本点的相似程度的,而Manifold Learning要做的就是把这个S型曲面降维展开,把塞在高维空间里的低维空间摊平,此时使用欧氏距离就可以描述样本点之间的相似程度。

2. Locally Linear Embedding

局部线性嵌入,locally linear embedding,简称LLE

假设在原来的空间中,样本点的分布如下所示,我们关注xi和它的邻居xj,用wij来描述和的关系。

假设每一个样本点xi都是可以用它的neighbor做linear combination组合而成,那wij就是拿xj去组合xi时的权重weight,因此找点与点的关系这个问题就转换成,找一组使得所有样本点与周围点线性组合的差距能够最小的参数wij:

接下来就要做Dimension Reduction,把xi和xj降维到zi和zj,并且保持降维前后两个点之间的关系wij是不变的。

2.1 LLE的具体做法

  • 在原先的高维空间中找到xi和xj之间的关系wij以后就把它固定住

  • 使xi和xj降维到新的低维空间上的zi和zj

  • zi和zj需要minimize右面的式子:

  • 即在原本的空间里,xi可以由周围点通过参数wij进行线性组合得到,则要求在降维后的空间里,zi也可以用同样的线性组合得到。实际上,LLE并没有给出明确的降维函数,它没有明确地告诉我们怎么从xi降维到zi,只是给出了降维前后的约束条件。

在实际应用LLE的时候,对xi来说,需要选择合适的邻居点数目K才会得到好的结果。

2.2 实验结果

下图给出了原始paper中的实验结果,K太小或太大得到的结果都不太好,注意到在原先的空间里,只有距离很近的点之间的关系需要被保持住,如果K选的很大,就会选中一些由于空间扭曲才导致距离接近的点,而这些点的关系我们并不希望在降维后还能被保留。

3. Laplacian Eigenmaps

另一种方法叫拉普拉斯特征映射,Laplacian Eigenmaps。

之前在semi-supervised learning有提到smoothness assumption,即我们仅知道两点之间的欧氏距离是不够的,还需要观察两个点在high density区域下的距离,如果两个点在high density的区域里比较近,那才算是真正的接近。我们依据某些规则把样本点建立graph,那么smoothness的距离就可以使用graph中连接两个点路径上的edges数来近似。

3.1 Smoothness Assumption

简单回顾一下在semi-supervised里的说法:如果两个点x1和x2在高密度区域上是相近的,那它们的label y1和y2很有可能是一样的.

其中C(yt,y^t)表示labeled data项,λS表示unlabeled data项,它就像是一个regularization term,用于判断我们当前得到的label是否是smooth的。

其中如果点xi与xj是相连的,则wij等于相似度,否则为0,S的表达式希望在与很接近的情况下,相似度很大,而label |yi - yj|差距越小越好,同时也是对label平滑度的一个衡量。

3.2 LE的具体做法

降维的基本原则:如果xi和xj在high density区域上是相近的,即相似度wij很大,则降维后的zi和zj也需要很接近,总体来说就是让下面的式子尽可能小。

注意,与LLE不同的是,这里的wij表示xi与xj这两点的相似度,上式也可以写成

但光有上面这个式子是不够的,假如令所有的z相等,比如令zi=zj=0,那上式就会直接停止更新。

因此我们需要给z一些额外的约束:

如果通过拉普拉斯特征映射找到z之后再对其利用K-means做聚类,就叫做谱聚类(spectral clustering)

4. t-SNE

t-SNE,全称为T-distributed Stochastic Neighbor Embedding,t分布随机邻居嵌入.。

前面的方法只假设了相邻的点要接近,却没有假设不相近的点要分开。

所以在MNIST使用LLE会遇到下图的情形,它确实会把同一个class的点都聚集在一起,却没有办法避免不同class的点重叠在一个区域,这就会导致依旧无法区分不同class的现象。

COIL-20数据集包含了同一张图片进行旋转之后的不同形态,对其使用LLE降维后得到的结果是,同一个圆圈代表同张图像旋转的不同姿态,但许多圆圈之间存在重叠。

4.1 t-SNE的具体做法

做t-SNE同样要降维,在原来x的分布空间上,我们需要计算所有xi与xj之间的相似度S(xi,xj)。

然后需要将其做归一化:

即xi与xj的相似度占所有与xi相关的相似度的比例,将x降维到z,同样可以计算相似度S'(zi,zj),并做归一化:

注意,这里的归一化是有必要的,因为我们无法判断在x和z所在的空间里,S(xi,xj)与S'(zi,zj)的范围是否是一致的,需要将其映射到一个统一的概率区间。

我们希望找到的投影空间z,可以让P(xj|xi)和Q(zj|zi)的分布越接近越好,用于衡量两个分布之间相似度的方法就是KL散度(KL divergence),我们的目标就是让越小越好:

How to use

t-SNE会计算所有样本点之间的相似度,运算量会比较大,当数据量大的时候跑起来效率会比较低

常见的做法是对原先的空间用类似PCA的方法先做一次降维,然后用t-SNE对这个简单降维空间再做一次更深层次的降维,以期减少运算量。值得注意的是,t-SNE的式子无法对新的样本点进行处理,一旦出现新的xi,就需要重新跑一遍该算法,所以t-SNE通常不是用来训练模型的,它更适合用于做基于固定数据的可视化t-SNE常用于将固定的高维数据可视化到二维平面上

Similarity Measure

如果根据欧氏距离计算降维前的相似度,往往采用RBF function ,这个表达式的好处是,只要两个样本点的欧氏距离稍微大一些,相似度就会下降得很快。

还有一种叫做SNE的方法,它在降维后的新空间采用与上述相同的相似度算法。

对t-SNE来说,它在降维后的新空间所采取的相似度算法是与之前不同的,它选取了t-distribution中的一种,即

以下图为例,假设横轴代表了在原先x空间上的欧氏距离或者做降维之后在z空间上的欧氏距离,红线代表RBF function,是降维前的分布;蓝线代表了t-distribution,是降维后的分布。

你会发现,降维前后相似度从RBF function到t-distribution:

  • 如果原先两个点距离(Δx)比较近,则降维转换之后,它们的相似度(Δy)依旧是比较接近的
  • 如果原先两个点距离(Δx)比较远,则降维转换之后,它们的相似度(Δy)会被拉得更远

4.2 实验结果

也就是说t-SNE可以聚集相似的样本点,同时还会放大不同类别之间的距离,从而使得不同类别之间的分界线非常明显,特别适用于可视化,下图则是对MNIST和COIL-20先做PCA降维,再做t-SNE降维可视化的结果:

总结和展望

小结一下,本节主要介绍了三种非线性降维的算法:

  • LLE(Locally Linear Embedding),局部线性嵌入算法,主要思想是降维前后,每个点与周围邻居的线性组合关系不变。
  • Laplacian Eigenmaps,拉普拉斯特征映射,主要思想是在high density的区域,如果xi、xj这两个点相似度wij高,则投影后的距离|| zi - zj ||要小,是一种基于图的方法。
  • t-SNE(t-distribution Stochastic Neighbor Embedding),t分布随机邻居嵌入,主要思想是,通过降维前后计算相似度由RBF function转换为t-distribution。

最常用的还是是t-SNE降维了,因为它可以聚集相似的样本点,同时还会放大不同类别之间的距离,从而使得不同类别之间的分界线非常明显,特别适用于可视化。因为t-SNE会计算所有样本点之间的相似度,运算量会比较大,常见的做法是对原先的空间用类似PCA的方法先做一次降维,然后用t-SNE对这个简单降维空间再做一次更深层次的降维,以期减少运算量,在可视化CNN手写数字案例中,tensorboard使用的就是t-SNE降维可视化。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值