深圳Yolo 视觉
深圳
立即加入
词汇表

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

探索 t-SNE,一种强大的高维数据可视化技术。了解其在 AI 和 ML 中的用途、优势和应用。

t-distributed Stochastic Neighbor Embedding(t-SNE)是一种复杂的非线性 降维技术 主要用于探索和可视化高维数据。由 Laurens van der Maaten 和 Geoffrey Hinton 开发的,这种统计方法允许研究人员和 机器学习 (ML)从业人员投射 将数百或数千维度的复杂数据集投射到二维或三维空间中。与 线性方法不同的是,t-SNE 擅长保留数据的局部结构,这使得它在以下数据可视化任务中特别有用 数据可视化任务 聚类和数据点之间的关系至关重要。

t-SNE 如何工作

该算法将数据点之间的相似性转换为联合概率。在原始的 在原始的高维空间中,t-SNE 使用高斯分布来衡量点之间的相似性,其中相似的 对象被选为邻居的概率很高。然后,它试图将这些点映射到一个 嵌入")。 和嵌入数据的概率分布之间的分歧最小化,从而将这些点映射到低维空间("嵌入")。这一过程在很大程度上依赖于 无监督学习原理,因为它 模式。

t-SNE 的一个重要方面是它能够处理可视化中的 "拥挤问题"。通过在低维地图中使用 在低维地图中使用重尾的 Student's t 分布,可以防止点的重叠过于密集、 确保不同的聚类在视觉上 可分离。

在 AI 和 ML 中的应用

高维数据可视化是人工智能开发生命周期中的一个基本步骤。 t-SNE 提供了有关模型如何跨领域查看数据的直观信息。

  • 计算机视觉特征分析计算机视觉 (CV) 中,工程师经常使用 t-SNE 来解释 深度学习(DL)模型的学习内容。例如 例如,通过从训练有素的深度学习模型的骨干中提取特征向量(嵌入 YOLO11模型中提取特征向量(嵌入),t-SNE 可以将这些向量投射到二维平面上。如果模型表现良好,类似物体(如汽车、行人、骑自行车者)的图像将被归类为一个整体、 行人、骑车人)会被归为不同的群组,从而验证特征提取过程的有效性。 特征提取过程的有效性。
  • 自然语言处理 (NLP):t-SNE 被广泛应用于可视化单词嵌入,如由计算机网络生成的单词嵌入 嵌入,例如由 GloVe或Transformer 模型生成的词嵌入。在这些可视化中 语义相近的词,如 "king"(国王)和 "queen"(王后)--会以近邻的形式出现。这有助于 研究人员理解自然语言处理(NLP)所捕捉到的语义关系。 自然语言处理(NLP) 模型捕捉到的语义关系,并诊断出训练数据中可能存在的偏差。

t-SNE 与相关技术的比较

必须将 t-SNE 与其他降维方法区分开来,因为它们在机器学习管道中的作用不同。 机器学习管道中的不同目的。

  • 主成分分析(PCA)PCA是一种线性技术 它侧重于保留数据的全局方差。虽然 PCA 计算速度更快,而且具有确定性,但它 往往无法捕捉复杂的非线性关系。常见的工作流程包括使用 PCA 将原始数据减少到 通常为 30-50 维,然后使用 t-SNE 进行最终可视化。这种混合方法可减少噪音和 计算负荷。
  • 自动编码器 自动编码器是一种 是一种经过训练的神经网络,用于压缩和 重构数据。虽然自编码器可以学习非线性表示,但 t-SNE 专门针对绘图和视觉检测而优化,而不是用于存储或传输的数据压缩。 图和视觉检测,而不是用于存储或传输的数据压缩。

Python 实现示例

下面的示例演示了如何使用流行的 Scikit-learn 库来 可视化高维数据。该代码段使用 t-SNE。

import matplotlib.pyplot as plt
from sklearn.datasets import make_blobs
from sklearn.manifold import TSNE

# Generate synthetic high-dimensional data (100 samples, 50 features)
X, y = make_blobs(n_samples=100, n_features=50, centers=3, random_state=42)

# Apply t-SNE to reduce features from 50 to 2 dimensions
# Perplexity relates to the number of nearest neighbors to consider
tsne = TSNE(n_components=2, perplexity=30, random_state=42)
X_embedded = tsne.fit_transform(X)

# Visualize the projected 2D data
plt.scatter(X_embedded[:, 0], X_embedded[:, 1], c=y)
plt.title("t-SNE Visualization of Features")
plt.show()

局限性和最佳做法

t-SNE 虽然功能强大,但需要仔细 超参数调整。参数 "plexity "参数可以平衡数据的局部和全局关注度,它能 会极大地改变结果图。此外,该算法的计算成本很高(复杂度为 O(N²))、 与简单的投影方法相比,该算法在处理超大数据集时速度较慢。

t-SNE 图中分离的聚类之间的距离并不一定代表原始空间中准确的物理距离。 它们主要表明聚类是不同的。对于嵌入的交互式探索 工具(如TensorFlow 嵌入投影仪)通常与模型训练一起使用。 模型训练。随着人工智能研究向YOLO26和 和其他端到端架构的人工智能研究取得进展时,解释这些高维空间仍然是验证和 模型测试的关键技能。

加入Ultralytics 社区

加入人工智能的未来。与全球创新者联系、协作和共同成长

立即加入