李宏毅机器学习——无监督学习(三)

引言

本文主要探讨一些非线性降维方法。主要讨论近邻嵌入(Neighor Embedding)。

流行学习

流行学习(Manifold Learning)认为我们所能观察到的数据实际上是由一个低维流行映射到高维空间的。

在这里插入图片描述

比如把一个二维的平面硬塞到三维的空间里面,这个二维的图形就是一个流行(manifold)。
在这里插入图片描述

假设我们看这个空间中的点A,可以说它和B点较远,和C点较近。对于这种比较接近的点,我们可以用欧几里得距离来计算它们之间的距离。

在这里插入图片描述
但是如果用欧几里得距离计算A点和D、E两点的距离哪个比较近,得到的结论可能是黄色区域的D点比较远。

但是如果我们把上图想象成一条路的话,走到E点实际上是比D点要远的。

如果我们可以把这个三维空间中的数据降到二维,那就可以用聚类或接下来介绍的监督学习方法。

好了,接下来要介绍的第一个方法叫LLE。

局部线性嵌入

局部线性嵌入(Local Liner Embedding,LLE)假设数据在较小的局部是线性的,某一个数据可以由它邻域中的几个样本来线性表示。

在这里插入图片描述

假设在高维的空间中有个点 x i x^i ,在这个点附近有一些邻居,上面红色的那些点。我们用 w i j w_{ij} 表示 x i x^i x j x^j 之间的关系。

假设 x i x^i 可以用它的邻居做线性组合(liner combination)表示出来,而这个线性组合的权重就是 w i j w_{ij}

使得下式最小化,可以得到权重系数 W W

i x i j w i j x j 2 \sum_i||x^i - \sum_j w_{ij}x^j ||_2

LLE要做的事情是降维的结果 x i x^i 降到 z i z^i , x j x^j 降到 z j z^j ,它们之间的关系还是 w i j w_{ij}

在这里插入图片描述

找出了 W W 系数后,然后通过最小化下式找出 z i , z j z^i,z^j

i z i j w i j z j 2 \sum_i||z^i - \sum_j w_{ij}z^j ||_2

下面介绍一个和LLE很像的方法——拉普拉斯特征映射(Laplacian Eigenmaps)

拉普拉斯特征映射

它是一个基于图的方法。

在这里插入图片描述

上面我们说用欧几里得距离不太准确,这个方法提出使用图来描述两点之间的距离。

这个方法是通过图来做降维。

在这里插入图片描述

首先需要根据数据点来做出图结构。
在半监督学习中,我们提到了不止考虑有标签数据之间的交叉熵,我们还会加上来自于图结构的正则项(regularization term)。

在这里插入图片描述

这个正则项是说,如果 i , j i,j 这两笔数据,它们中间边的权重是 w i , j w_{i,j} 的话,我们希望这两笔数据的标签越近越好。

在这里插入图片描述

前面说的是用在监督学习上。如果用在无监督学习上会怎样。

如果 x 1 x^1 x 2 x^2 在高密度区域是接近的,那么降维后的结果 z 1 z^1 z 2 z^2 也应该是接近的。
z 1 z^1 z 2 z^2 它们要使下面这个式子最小化。
S = 1 2 i , j w i , j ( z i z j ) 2 S = \frac{1}{2}\sum_{i,j}w_{i,j}(z^i-z^j)^2

我们已经在图结构上知道了 i , j i,j 之间的权重,我们希望 z i , z j z^i,z^j 的距离越近越好。

为了防止使得 z i = z j = 0 z^i=z^j=0 ,需要对降维后的 z z 做一些限制。

假设降维后的维度是 M M ,我们希望所有的 Z = { z 1 , z 2 , , z N } = R M Z=\{z^1,z^2,\cdots,z^N\} = R^M 可以填满整个 M M 维的空间。

t分布随机近邻嵌入

上面提到的两种方法都有个问题是,都只说了如果在原来的空间上相近,那么降维后也要相近。
而没有说,如果两个点在原来的空间上距离很远,降维后要怎样。

如果做LLE或拉普拉斯特征映射的时候,可能会发现本来不相干的点被叠在一起。
在这里插入图片描述
如果在MNIST(手写数字识别数据集)上面做LLE,这里不同颜色的点代表不同的数字,LLE可以把同样的数字放到一起,但是无法把不同的数字分开。

所以就需要t分布随机近邻嵌入(T-distributed Stochastic Neighbor Embedding,t-SNE),它是目前效果最好的数据降维与可视化方法。

它的做法是,先在原空间中两两相互计算两点之间的相似度(similarity)。

定义

P ( x j x i ) = S ( x i , x j ) k i S ( x i , x k ) P(x^j|x^i) = \frac{S(x^i,x^j)}{\sum_{k≠i}S(x^i,x^k)}

在降维后的结果,也计算两两之间的相似度 S ( z i , z j ) S^\prime(z^i,z^j)

定义
Q ( z j z i ) = S ( z i , z j ) k i S ( z i , z k ) Q(z^j|z^i) = \frac{S^\prime(z^i,z^j)}{\sum_{k≠i}S(z^i,z^k)}

接下来需要找一组 z z 满足下面的特性,两个分布之间的相对熵(KL散度,是描述两个概率分布的相近程度)越小越好:

在这里插入图片描述

这样在原来空间中概率大的转换后概率也大;在原来空间中概率小的,转换后概率也小。

接下来看下t-SNE所选择的衡量相似度的方法。

在原来空间上, S ( x i , x j ) = exp ( x i x j 2 ) S(x^i,x^j)=\exp(-||x^i-x^j||_2) ,算出两个点之间的距离,再取负号,然后作为指数 e e 的幂。

使用这个距离时,如果两个点本来很近,转换后还是很近。如果两个点只要稍微远一点,那么转换后都是一样的远。

在t-SNE之前还有另一个方法叫SNE,它在转换后的空间计算相似度的方法和原空间用的是一样的。

S ( z i , z j ) = exp ( z i z j 2 ) S^\prime(z^i,z^j)=\exp(-||z^i-z^j||_2)

而t-SNE对于转换后的距离计算是这样的:

S ( z i , z j ) = 1 1 + z i z j 2 S^\prime(z^i,z^j)=\frac{1}{1 + ||z^i - z^j||_2}

这两个方式有什么不同呢?

在这里插入图片描述

SNE是橙色这条线,t-SNE是蓝色的这条线。

假设在原来的空间上有两个数据橙色点,它们在比较近的距离的时候差距是差不多的,在比较远点距离的时候相差很远。

也就是说,如果两个点在原空间上有点距离的话,t-SNE在转换后的控件上会尽量拉开它们之间的距离。

在这里插入图片描述

t-SNE在MNIST上会把不同的数字分界很明显。

参考

1.李宏毅机器学习

发布了148 篇原创文章 · 获赞 57 · 访问量 13万+

猜你喜欢

转载自blog.csdn.net/yjw123456/article/details/104298745