How to Use t-SNE Effectively.(翻译:如何高效地使用t-SNE)


尽管t-SNE在可视化高维数据方面非常有用,但t-SNE的降维图有时可能会很费解或是具有误导性的。通过研究它在简单情况下的行为,我们可以学习如何更有效地使用它。(原文的图更具动态效果)原文网址链接: How to Use t-SNE Effectively

t-SNE是研究高维数据的一种流行方法,它是由van der Maaten和Hinton在2008年提出。这种技术已经在机器学习领域得到了广泛应用,因为它具有一种近乎神奇的能力,可以从数百维甚至数千维的数据中生成效果显著的二维“地图”。尽管这些图效果不错,但很容易被误读。这篇笔记的目的是防止一些常见的误读。
t-SNE原文: Visualizing Data using t-SNE.

我们将通过一系列简单的例子来说明t-SNE图可以显示什么,不能显示什么。t-SNE方法确实有用,但,前提是你知道如何解释它。

在开始之前:如果你以前不知道t-SNE,下面的数学原理是你需要了解的。它的目标是在高维空间中取一组点并在低维空间(通常是二维平面)中找到这些点的真实表示。该算法是非线性的,能够适应底层数据,在不同的区域进行不同的转换。这些差异可能是造成混淆的主要原因。

t-SNE的第二个特性是它有一个可调的参数:“perplexity”(困惑度),它可大致理解为如何平衡你的数据集的局部特征和全局特征。从某种意义上说,这个参数是对每个点的近邻点数的猜测。困惑度对生成的图像有复杂的影响。原文说,“SNE在改变困惑度方面有良好的鲁棒性,困惑度典型的值在5-50之间。”但事情远不止如此。想要从t-SNE中获得更多的信息,意味着要分析具有不同困惑的多个情况。

这还没完。例如,t-SNE算法在连续运行时并不总是产生类似的输出结果,而且它还有与优化过程相关的额外超参数。

1. 这些超参数真的很重要

像学习编程语言的“Hello world”如我们一样,让我们从t-SNE的“Hello world”开始:由两个距离较远的集群组成的数据集。为了简单,我们将使用二维平面上的集群,如左图所示。(为了清晰起见,这两个簇是不同颜色的。)右图显示了5个不同的困惑度的t-SNE图。
1
在van der Maaten和Hinton提出perplexity的值域为5-50区间的情况下,这些图显示了这些簇,尽管它们的形状非常不同。超出这个范围,就有点奇怪了。perplexity=2时,局部特征占主导地位。perplexity=100的图像中,簇混合在了一起,说明了一个问题:算法要想正常运行,perplexity确实要小于点数。否则,实现可能会出现意外的现象。

上面的每个图都是用5000次迭代完成的,学习率(通常称为“epsilon”)为10,并且在第5000步时达到了一个稳定的点。这些值有多大的影响?根据我们的经验,最重要的是直到达到稳定的迭代次数。
2
上图片显示了perplexity=30时的五种不同运行结果。前四个在稳定之前就停止了。通过不同的迭代次数10、20、60和120,可以看到图中似乎有一维甚至像点样的集群图像。如果你看到t-SNE图中有奇怪的“收缩”形状,那么很可能这个过程被过早地停止了。不幸的是,没有固定的迭代次数可以产生稳定的结果。不同的数据集需要不同的迭代次数达到收敛。

另一个问题是,使用相同的超参数进行多次运行是否会产生相同的结果。在这个简单的双集群示例和我们讨论的大多数其他示例中,多次运行给出相同的结果。然而,某些数据集在不同的运行中产生明显不同的图;稍后我们将给出其中一个示例。

从现在开始,除非另有说明,否则我们将显示5000次迭代的结果。这对于本文中(相对较小的)示例的收敛来说已经足够了。然而,我们将继续展示一系列的困惑度,因为这似乎在每个情况下都有很大的不同。

2. 在t-SNE图中,簇大小没有任何意义

到目前为止,一切顺利。但如果两个集群的标准差不同,规模也不同呢?(这里的尺寸指的是由于点的离散度不同而导致的簇的大小不同,而不是点的数量。)下面是平面上混合高斯分布的t-SNE图,其中一种分布的大小是另一种分布的10倍。
3
令人惊讶的是,这两个簇在t-SNE图中看起来差不多大。发生什么事了?t-SNE算法将其“距离”的概念与数据集中区域密度的变化相适应,自然地扩展了密集的簇,压缩了稀疏的簇,改变了簇的大小。需要明确的是,这与任何降维技术都会扭曲距离的一般事实是不同的。(毕竟,在本例中,所有数据一开始都是二维的。)相反,密度均衡是通过设计实现的,是t-SNE的一个可预测特征。

然而,底线是在t-SNE图中看不到集群的相对大小。

3. 集群之间的距离可能没有任何意义

那么集群之间的距离有什么影响呢?下一个图显示了三个集群(也即是簇)的高斯分布,每个50点,其中一对的距离是另一对的5倍。
4
perplexity=50时,该图给出了全局几何特征的良好视觉显示。对于较低的perplexity,集群间的距离看起来相等。当perplexity=100时,我们可以很好地看到全局几何特征,但是其中一个集群要比其他集群小得多。既然perplexity=50时,在这个例子中我们能得到一个很好的图像,那么如果我们想要看到全局几何特征,我们是否可以将perplexity一直设置为50呢?

很遗憾,不可以。如果我们在每个簇中添加更多的点,那么困惑就必须增加来补偿。这是三个高斯簇的t-SNE图,每个簇有200个点,而不是50个。现在,所有的测试困惑值都没有给出一个好的结果。
5
看到全局特征的话,需要微调perplexity。现实世界中的数据可能有多个具有不同数量元素的集群。遗憾的是,perplexity是一个全局的参数,可能没有一个perplexity可以捕获所有集群之间的距离。解决这个问题可能是未来研究的一个有趣领域。

基本的信息是,t-SNE图中分离良好的簇之间的距离可能没有任何意义。

4. 随机噪声并不总是随机的。

一个典型的误区是认为你看到的只是随机数据的模式。当你看到噪音时识别它是一项关键的技能,但建立正确的直觉需要时间。关于t-SNE的一个棘手的问题是它把很多现有的直觉抛到了一边。下面的图表显示了真正随机的数据,从100维的单位高斯分布中抽取的500个点。左边的图像是前两个坐标上的投影。
6
perplexity=2时似乎呈现出戏剧性的集群。如果你正在调整perplexity以在数据中显示结构,那么你可能会认为自己中了大奖。

当然,因为我们知道点云是随机生成的,所以它没有统计上有意义的集群:那些“簇”没有意义。 如果回顾前面的例子,低困惑度通常会得到这种分布。 将这些簇识别为随机噪声是读t-SNE图的重要部分。

不过还有一些有趣的事情,这可能是t-SNE的胜利。一开始,perplexity=30的图看起来一点也不像高斯分布:在点云的不同区域之间只有轻微的密度差异,而且这些点的分布似乎非常均匀。事实上,这些特征说明了高维正态分布的有用之处,高维正态分布非常接近球面上的均匀分布,分布均匀,点与点之间的空间大致相等。从这个角度看,t-SNE图比任何线性投影都要精确。

5. 有时你会看到一些形状

数据以完全对称的方式分布是很少见的。我们来看一个轴对称的50维的高斯分布,其中坐标i的标准差是1/i。也就是说,我们看到的是一个长椭圆形的点云。
7
对于足够高的困惑度,细长的形状很容易阅读。另一方面,在低困惑度时,局部效应和无意义的“簇”成为焦点。更极端的形状也会出现,但同样只有正确的困惑度。例如,这里有两个二维集群,每个集群由75个点组成,它们以平行线的形式排列,并带有一点噪声。
8
对于一定范围的困惑度,长条的簇看起来接近正确,这是可靠的。

即使在最好的情况下,也有一个微妙的扭曲:在t-SNE图中,这些线稍微向外弯曲。原因是,像往常一样,t-SNE倾向于扩展更密集的数据区域。由于聚类中间的空间小于聚类末端的空间,因此算法将其放大。

6. 对于拓扑,你可能需要多个绘图

有时你可以从t-SNE图中读取拓扑信息,但这通常需要查看多个困惑度的图。最简单的拓扑特性之一是包含。下图显示了50维空间中的两组簇,每个75个点。这两种方法都是从以原点为中心的对称高斯分布中取样的,但其中一种分布的密度是另一种分布的50倍。“小的”分布实际上包含在大的分布中。
9
perplexity=30的图正确地显示了基本的拓扑结构,但是同样的,t-SNE极大地夸大了较小的一组点的大小。在perple50中,出现了一个新的现象:外部群体变成了一个圆,因为这个图试图描述的是,所有的点到内部群体的距离都差不多。如果你单独看这幅图,很容易把这些外部点误读成一维结构。

那么更复杂的拓扑类型呢?对于数学家来说,这可能是一个比实际数据分析更重要的课题,但偶尔会发现有趣的低维结构。

考虑一组在三维中轨迹的链或结的点集。 再一次,查看多个困惑度得到的最完整的图像。 低茫然度值给出两个完全独立的循环; 高点表现出一种全局的连通性。
10
三叶结是一个有趣的例子,能说明多次运行如何影响t-SNE的结果。下面是perplexity=2时五个版本。

该算法在一个圆上进行两次寻优,至少保留了原拓扑结构。但在其中的三次运行中,它得到了三种不同的解决方案,这些解决方案引入了人工中断。使用圆点颜色作为指导,您可以看到第一次和第三次运行相距很远。
11
然而,在perple50上运行5次,得到的结果(直到对称性)在视觉上是相同的。显然,有些问题比其他问题更容易优化。
12

7. 结论

t-SNE如此受欢迎的一个原因是:它非常灵活,可以找到其他降维算法无法找到的结构。不幸的是,这种灵活性使其难以解释。在用户看不到的情况下,该算法进行各种调整,以整理其可视化效果。不过,不要让隐藏的“魔法”吓跑了你。好消息是,通过研究t-SNE在简单情况下的行为,我们可以对发生的事情形成一种直觉。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值