2D 降维算法有什么用?

数据挖掘 降维 特纳
2022-03-11 08:56:09

在我看来,t-SNE 和其他将维度降低到二维的降维算法主要用于获取数据集的印象。如果做得好,它们看起来不错(例如像这样),但我想知道这是否比仅显示随机图像/在网格上按类别分组更好。

我想从以下几个方面得到答案:

  1. t-SNE* 比仅随机(可能分层)数据样本更好吗?
  2. t-SNE* 与仅将具有 2 个神经元瓶颈的神经网络拟合到数据然后取 2 个神经元的(归一化)值进行嵌入相比,有什么更好的呢?
  3. t-SNE* 是否提供任何保证?
  4. t-SNE* 对构建分类器有好处吗?我的意思是:如果你已经有一个比随机/猜测最频繁类更好的分类器,t-SNE 是否可以帮助你制作更好的分类器?如何?
  5. 许多降维算法如何比较非线性的?什么时候一种算法比其他算法更好?特别是:它们是否比神经网络的瓶颈特征更好?

*:您可能也可以为其他降维算法回答这个问题,但 t-SNE 似乎是最流行的一种。

请注意:我确实看到了降低压缩维度/更容易优化/更快推理的优势。然而,减少到二维似乎只是为了可视化。因此,我的问题是,人们是否可以在这些嵌入中看到比数据集视觉上令人愉悦的图像更多的东西。

1个回答

那里有很多问题,我将尝试依次解决每个问题。

  1. t-SNE* 比仅随机(可能分层)数据样本更好吗?

如果您的目标是提供数据的可视化概览,那么显然分层样本不会做到这一点 - 每个样本仍然存在于高维空间中,因此不容易可视化,如果您对如何数据彼此相关,然后逐项查看样本并不一定有助于建立这些关系的合理心理模型。因此,使用 t-SNE(或类似方法)进行采样和可视化都在解决类似的潜在问题:“我的数据是什么样的”;他们对此提供了截然不同的观点,但强调了不同的方面,我想说是完全互补的。为什么不兼得!

  1. t-SNE* 与仅将具有 2 个神经元瓶颈的神经网络拟合到数据然后取 2 个神经元的(归一化)值进行嵌入相比,有什么更好的呢?

这更难,因为我不能指出明确的研究证明,但 t-SNE 通常在提供对用户有意义的视觉表示方面做得更好。值得注意的是,t-SNE 是由 Geoff Hinton 共同创建的,我确信他对神经网络及其潜在用途和好处非常了解。如果 Geoff 认为 t-SNE 值得使用,那么可以合理地假设它比其他 NN 方法具有一些优点。现在,考虑到这一点,人们可能可以将 t-SNE 解释为具有 2 个神经元瓶颈的 NN;我没有试图详细写出来,所以不要引用我的话。最后,NN 不一定是所有问题的答案。t-SNE 是一种专为低维嵌入而设计的流形学习算法,

  1. t-SNE* 是否提供任何保证?

保证什么?提供数据的可视化表示?是的,它会这样做。保证高维和低维表示的推断分布的 Kullback-Liebler 散度已最小化?取决于优化的质量,是的。保证保留本地结构?是的,可以为数据集选择合适的困惑度。保证低维表示是数据全局结构的完全忠实表示?不,那里没有保证。这真的取决于你在寻找什么。

  1. t-SNE* 对构建分类器有好处吗?我的意思是:如果你已经有一个比随机/猜测最频繁类更好的分类器,t-SNE 是否可以帮助你制作更好的分类器?如何?

不是真的 - 不会超过您对任何降维技术的潜在期望,并且正如您所注意到的,将事物强制为二维会限制很多。原则上,由于 t-SNE 专注于保留局部结构并牺牲全局结构,因此如果您的分类严重依赖局部结构,那么 t-SNE 可以比其他寻求保留全局结构的降维技术表现更好,因此效果更差局部结构表示。在无监督(密度)聚类的情况下,局部结构确实比全局结构更重要,因此 t-SNE 可能会有所帮助。然而,压缩到二维可能相当极端。

  1. 有许多降维算法。如何比较非线性的?什么时候一种算法比其他算法更好?特别是:它们是否比神经网络的瓶颈特征更好?

如果您对可视化感兴趣(如 t-SNE 的情况),那么不幸的是,比较不可避免地是相当主观的。这很像集群的情况。当然,有许多不同的聚类质量度量,但通常归结为“集群是什么意思?”,并且对于每个度量,都有一个针对该度量进行优化的聚类算法。同样,有一些衡量嵌入成功程度的方法,但最终取决于您所说的成功嵌入的含义(保持大规模关系是否重要?保持局部结构更重要吗?你如何权衡一个与另一个?),对于任何给定的度量,都有一种算法可以优化该度量。对于主观评估,标准方法似乎是嵌入标记数据,然后查看按标签着色的结果——不,这永远不会清楚地证明优越性,但它可以暗示似乎有效的方法。在实践中,t-SNE 似乎在这方面表现不错(因此它很受欢迎)。这些是否比瓶颈自动编码器更好?我不确定为什么人们会假设瓶颈自动编码器默认是更好的选择,但根据我的经验,每当我尝试数据的几个选项时,我发现 t-SNE 可以提供对数据集的更好直觉。轶事当然不是数据,所以一定要自己尝试这些选项。在实践中,t-SNE 似乎在这方面表现不错(因此它很受欢迎)。这些是否比瓶颈自动编码器更好?我不确定为什么人们会假设瓶颈自动编码器默认是更好的选择,但根据我的经验,每当我尝试数据的几个选项时,我发现 t-SNE 可以提供对数据集的更好直觉。轶事当然不是数据,所以一定要自己尝试这些选项。在实践中,t-SNE 似乎在这方面表现不错(因此它很受欢迎)。这些是否比瓶颈自动编码器更好?我不确定为什么人们会假设瓶颈自动编码器默认是更好的选择,但根据我的经验,每当我尝试数据的几个选项时,我发现 t-SNE 可以提供对数据集的更好直觉。轶事当然不是数据,所以一定要自己尝试这些选项。

我希望这涵盖了大部分内容,尽管也许这些不是您想要的答案。