术语表

t 分布随机邻域嵌入(t-SNE)

探索高维数据可视化的强大技术 t-SNE。了解它在人工智能和 ML 中的用途、优势和应用。

使用Ultralytics HUB 对YOLO 模型进行简单培训

了解更多

t-distributed Stochastic Neighbor Embedding(t-SNE)是一种强大的降维技术,主要用于在低维空间(通常是二维或三维空间)中可视化高维数据集。t-SNE 由Laurens van der MaatenGeoffrey Hinton 开发,擅长于揭示数据的潜在局部结构,如聚类和流形。这使得人工智能(AI)机器学习(ML)模型生成或处理的复杂数据集更容易通过可视化检查进行解读。它被广泛应用于各个领域,包括计算机视觉 (CV)自然语言处理 (NLP )

t-SNE 如何工作

t-SNE 的核心理念是将高维数据点映射到低维空间(如二维图),从而保留点之间的相似性。它将高维点对之间的相似性建模为条件概率,然后试图找到一个低维嵌入,其中映射点之间的条件概率是相似的。这一过程的重点是保留局部结构--在高维空间中靠得很近的点,在低维映射中也应该靠得很近。

主成分分析(PCA)等线性方法不同,t-SNE 是非线性和概率性的。这使它能够捕捉复杂的非线性关系,比如 PCA 可能会忽略的弯曲流形。该算法在高维空间使用高斯分布计算相似性,在低维空间使用学生 t 分布(有一个自由度)计算相似性。使用 t 分布有助于在低维地图中将不相似的点分隔得更远,从而缓解 "拥挤问题",即点容易聚集在一起。利用梯度下降等优化技术,通过最小化两个概率分布之间的分歧(特别是库尔巴克-莱伯勒分歧),可以找到最佳嵌入。如需深入了解技术,请参阅t-SNE 原文

t-SNE 与 PCA 的对比

虽然 t-SNE 和PCA都是常见的降维技术,但它们之间存在很大差异:

  • 线性:PCA 是一种线性技术,而 t-SNE 是一种非线性技术。PCA 可以找到方差最大化的主成分,本质上是对数据进行旋转。
  • 重点t-SNE 优先考虑保留局部结构(点的邻域)。
  • 使用案例:PCA 通常用于数据压缩、降噪,以及作为应用其他 ML 算法前的数据预处理步骤。t-SNE 由于其揭示聚类的能力,主要用于数据可视化和探索。
  • 可解释性:PCA 图形中的坐标轴代表主成分,与方差有明确的数学解释。而 t-SNE 图形中的坐标轴和聚类之间的距离没有这种直接的全局解释;重点在于点的相对分组。

人工智能和 ML 的应用

t-SNE 是一种宝贵的可视化工具,可用于理解人工智能和 ML 流程中经常遇到的复杂高维数据,例如探索深度学习模型学习到的嵌入

  • 图像特征可视化:计算机视觉领域,t-SNE 可将卷积神经网络(CNN)生成的高维特征图或嵌入可视化,如在 Ultralytics YOLO用于物体检测图像分类的模型。通过将 t-SNE 应用于从ImageNetCOCO 等数据集中提取的特征,研究人员可以了解模型是否学会在特征空间中将相似的图像或对象类别分组,从而深入了解模型的理解能力。这有助于分析标准准确度指标之外的模型性能(请参阅YOLO 性能指标)。
  • 探索词嵌入:NLP 中,t-SNE 用于将词嵌入(例如,来自Word2Vec、GloVe 或BERT 的词嵌入)可视化为二维图像。这样可以检查语义关系;例如,"国王"、"王后"、"王子 "和 "公主 "等词可能会形成不同的词组或表现出有意义的相对位置,从而证明语言建模的质量。TensorFlow Projector等工具通常利用 t-SNE 进行嵌入可视化。
  • 了解训练数据:模型训练之前或训练过程中,t-SNE 可以帮助可视化训练数据本身的结构,从而揭示通过Ultralytics HUB 等平台管理的数据集中的独特聚类、异常值或标记问题。

考虑因素

虽然 t-SNE 具有强大的可视化功能,但也有一些注意事项:

  • 计算成本:由于要进行成对计算,因此对于超大数据集来说,计算成本可能会很高,计算速度也会很慢。近似 t-SNE 或先应用 PCA 等技术可以帮助解决这个问题。
  • 超参数:结果可能对 "复杂度"(与考虑的近邻数量有关)和梯度下降迭代次数等超参数很敏感。
  • 全局结构:t-SNE 侧重于局部结构;最终图中聚类之间的相对距离可能无法准确反映原始高维空间中的分离情况。聚类大小也会产生误导。Scikit-learn等库和 PyTorch.
阅读全部