t-SNE高效使用指南与常见误区解析

如何有效使用t-SNE

尽管t-SNE在可视化高维数据方面极其有用,但其生成的图表有时可能令人费解或产生误导。通过在简单案例中探索其行为,我们可以学习如何更有效地使用它。

一种探索高维数据的流行方法是t-SNE,由van der Maaten和Hinton于2008年引入。该技术已在机器学习领域广泛传播,因为它具有几乎神奇的能力,可以从数百甚至数千维的数据中创建引人注目的二维“地图”。

虽然令人印象深刻,但这些图像很容易被误读。本文的目的就是防止一些常见的误读。

我们将通过一系列简单示例来说明t-SNE图可以展示什么以及不能展示什么。t-SNE技术确实很有用——但前提是你知道如何解读它。

在深入之前:如果你以前没有接触过t-SNE,这里有一些你需要了解的数学背景。其目标是获取高维空间中的一组点,并在低维空间(通常是2D平面)中找到这些点的忠实表示。该算法是非线性的,并适应底层数据,对不同的区域执行不同的变换。这些差异可能是混淆的主要来源。

t-SNE的第二个特点是有一个可调参数“困惑度”,它(粗略地)表示如何在数据的局部和全局方面之间平衡注意力。从某种意义上说,该参数是对每个点拥有的近邻数量的猜测。困惑度值对生成的图片有复杂的影响。原始论文指出:“SNE的性能对困惑度的变化相当稳健,典型值在5到50之间。”但实际情况比这更微妙。要充分利用t-SNE,可能意味着需要分析具有不同困惑度的多个图。

复杂性不止于此。例如,t-SNE算法在连续运行中并不总是产生相似的输出,并且还有与优化过程相关的其他超参数。

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

让我们从t-SNE的“你好世界”开始:一个包含两个广泛分离的簇的数据集。为了尽可能简单,我们将考虑2D平面中的簇,如左侧图所示。(为清晰起见,两个簇用颜色编码。)右侧的图表显示了五个不同困惑度值的t-SNE图。

在van der Maaten & Hinton建议的(5 - 50)范围内的困惑度值下,图表确实显示了这些簇,尽管形状非常不同。超出该范围,情况就变得有点奇怪。困惑度为2时,局部变化占主导地位。困惑度为100的图像(簇合并)说明了一个陷阱:为了使算法正常运行,困惑度实际上应该小于点的数量。否则,实现可能会产生意想不到的行为。

上面的每个图都是用5000次迭代、学习率(通常称为“epsilon”)为10生成的,并且在第5000步达到了稳定点。这些值有多大影响?根据经验,最重要的事情是迭代直到达到稳定配置。

上面的图像显示了困惑度为30时的五次不同运行。前四次在稳定之前停止。经过10、20、60和120步后,你可以看到簇的看似1维甚至点状的布局。如果你看到一个具有奇怪“收缩”形状的t-SNE图,很可能该过程过早停止了。不幸的是,没有固定的步数能产生稳定的结果。不同的数据集可能需要不同次数的迭代才能收敛。

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

从现在开始,除非另有说明,我们将展示5000次迭代的结果。这通常足以收敛于本文中(相对较小的)示例。然而,我们将继续展示一系列困惑度值,因为这似乎在每种情况下都会产生很大差异。

2. t-SNE图中的簇大小毫无意义

到目前为止,一切顺利。但如果两个簇具有不同的标准差,因此大小不同怎么办?(我们所说的大小是指边界框测量值,而不是点的数量。)以下是平面中高斯混合的t-SNE图,其中一个的离散度是另一个的10倍。

令人惊讶的是,两个簇在t-SNE图中看起来大小差不多。这是怎么回事?t-SNE算法根据数据集中的区域密度变化调整其“距离”概念。因此,它自然扩展密集的簇,并收缩稀疏的簇,从而使簇大小均匀化。需要明确的是,这与任何降维技术都会扭曲距离这一普遍事实是不同的效果。(毕竟,在这个例子中,所有数据一开始就是二维的。)相反,密度均衡是按设计发生的,并且是t-SNE的一个可预测特征。

然而,归根结底,你无法在t-SNE图中看到簇的相对大小。

3. 簇间距离可能毫无意义

那么簇之间的距离呢?下图显示了三个高斯分布,每个有50个点,其中一对之间的距离是另一对的5倍。

在困惑度50时,该图很好地显示了全局几何形状。对于较低的困惑度值,簇看起来是等距的。当困惑度为100时,我们看到全局几何形状很好,但其中一个簇错误地看起来比其他簇小得多。

既然困惑度50在这个例子中给了我们一个好图,如果我们想看到全局几何形状,是否总是可以将困惑度设置为50?

遗憾的是,不行。如果我们向每个簇添加更多点,困惑度必须增加以进行补偿。以下是每个簇有200个点(而不是50个)的三个高斯簇的t-SNE图。现在,试验的困惑度值都没有给出好结果。

看到全局几何形状需要微调困惑度是个坏消息。现实世界的数据可能具有不同数量元素的多个簇。可能没有一个困惑度值可以捕获所有簇之间的距离——遗憾的是,困惑度是一个全局参数。解决这个问题可能是未来研究的一个有趣领域。

基本结论是,t-SNE图中分离良好的簇之间的距离可能毫无意义。

4. 随机噪声看起来并不总是随机的

一个经典的陷阱是认为你在真正只是随机的数据中看到了模式。识别所见之处的噪声是一项关键技能,但建立正确的直觉需要时间。t-SNE的一个棘手之处在于,它抛弃了大量现有的直觉。

下图显示了真正的随机数据,从100维单位高斯分布中抽取的500个点。左图是投影到前两个坐标上的图。

困惑度为2的图似乎显示了明显的簇。如果你正在调整困惑度以突出数据中的结构,你可能会认为你中了大奖。

当然,由于我们知道点云是随机生成的,它没有统计学上有趣的簇:那些“团块”没有意义。如果你回顾之前的例子,低困惑度值常常导致这种分布。将这些团块识别为随机噪声是解读t-SNE图的重要组成部分。

不过,还有一件有趣的事情,这可能对t-SNE来说是一个优点。起初,困惑度30的图看起来根本不像高斯分布:云的不同区域之间只有轻微的密度差异,而且点似乎可疑地均匀分布。事实上,这些特征说明了高维正态分布的一些有用特性,它们非常接近球面上的均匀分布:均匀分布,点之间的间距大致相等。从这个角度来看,t-SNE图比任何线性投影都更准确。

5. 有时你可以看到一些形状

数据以完全对称的方式分布是罕见的。让我们看一下50维空间中轴对齐的高斯分布,其中坐标i的标准差为1/i。也就是说,我们正在观察一个细长的椭球形点云。

对于足够高的困惑度值,细长的形状很容易解读。另一方面,在低困惑度下,局部效应和无意义的“聚集”占据了中心位置。更极端的形状也会显现,但同样只有在正确的困惑度下。例如,这里是二维空间中的两个簇,每个有75个点,排列在带有一些噪声的平行线上。

对于一定范围的困惑度,长簇看起来接近正确,这是令人安心的。

然而,即使在最好的情况下,也存在细微的扭曲:在t-SNE图中,线条略微向外弯曲。原因在于,像往常一样,t-SNE倾向于扩展数据的密集区域。由于簇的中间比两端周围的空白空间少,因此算法会放大它们。

6. 对于拓扑结构,你可能需要多张图

有时你可以从t-SNE图中读出拓扑信息,但这通常需要多个困惑度下的视图。

最简单的拓扑特性之一是包含关系。下图显示了50维空间中的两组点,每组75个点。两者都是从以原点为中心的对称高斯分布中采样的,但一个的离散度是另一个的50倍。实际上,“小”分布包含在大的分布中。

困惑度30的视图正确地显示了基本拓扑,但t-SNE再次极大地夸大了较小组点的大小。在困惑度50时,出现了一个新现象:外组变成了一个圆,因为该图试图描绘其所有点与内组距离大致相同的事实。如果你只看这张图,很容易将这些外部点误读为一维结构。

那么更复杂的拓扑类型呢?这可能对数学家来说比对实际数据分析师更亲切,但有趣的低维结构偶尔会在现实世界中被发现。

考虑一组在三维空间中追踪链环或结的点。再次,观察多个困惑度值可以提供最完整的图景。低困惑度值给出两个完全分离的环;高困惑度值显示一种全局连通性。

三叶结是一个有趣的例子,说明多次运行如何影响t-SNE的结果。以下是困惑度2视图的五次运行。

该算法两次稳定在一个圆上,这至少保留了内在的拓扑结构。但在三次运行中,它最终得到了三个不同的解,引入了人为的断裂。使用点的颜色作为指导,你可以看到第一次和第三次运行的结果相差甚远。

然而,困惑度50的五次运行给出了(在对称性范围内)视觉上相同的结果。显然,有些问题比其他问题更容易优化。

结论

t-SNE变得如此流行是有原因的:它非常灵活,并且通常能在其他降维算法无法找到结构的地方找到结构。不幸的是,这种灵活性使得解读它变得棘手。在用户视线之外,算法进行了各种调整以使其可视化更整洁。

不过,不要让隐藏的“魔力”吓跑你对整个技术的兴趣。好消息是,通过研究t-SNE在简单案例中的行为,有可能对其工作原理建立直觉。
更多精彩内容 请关注我的个人公众号 公众号(办公AI智能小助手)或者 我的个人博客 https://blog.qife122.com/
对网络安全、黑客技术感兴趣的朋友可以关注我的安全公众号(网络安全技术点滴分享)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值