什么是 t-SNE? t-SNE (t-分布随机邻域嵌入) 是一种机器学习算法,用于在较低维度的空间(通常是 2D 或 3D)中可视化高维数据。它的工作原理是对原始高维空间和降维空间中的数据点之间的相似性进行建模,然后调整较低维度中点的位置以保留这些相似性。与 PCA 等线性技术不同,t-SNE 专注于保持局部关系,使其在揭示复杂数据集中的集群或模式方面特别有效。例如,它通常用于图像处理以可视化 MNIST 数字,或在自然语言处理中探索词嵌入。
t-SNE 的工作原理 t-SNE 使用高斯分布计算高维空间中数据点之间的成对相似性,该分布为附近的点分配更高的概率。在低维嵌入中,它使用更重的尾部 t-分布来表示相似性,这有助于缓解点簇过于紧密的“拥挤问题”。该算法使用梯度下降法迭代地最小化这两个分布之间的差异。一个关键参数是困惑度,它大致控制每个点考虑的邻居数量——较低的值强调局部结构,而较高的值捕获更广泛的模式。例如,将困惑度设置得太低可能会分割自然集群,而值太高可能会模糊组之间的区别。开发人员通常会尝试此参数以平衡细节和连贯性。
在音频嵌入中的应用 音频嵌入是由 VGGish 或 Wav2Vec 等模型生成的密集向量表示(例如,512 维),用于捕获音高、节奏或说话人身份等特征。直接可视化这些是不切实际的,但 t-SNE 可以将它们投影到 2D/3D 中以进行直观的探索。例如,在音乐推荐系统中,t-SNE 可能会揭示具有相似节奏或流派的歌曲的集群,从而帮助开发人员验证嵌入是否与人类定义的类别对齐。在语音处理中,它可以显示不同的口音或说话人是否连贯地分组。一个实际的工作流程包括从音频片段中提取嵌入,运行 t-SNE(使用像 scikit-learn 这样的库),并绘制结果。虽然对于大型数据集来说,t-SNE 的计算量很大,但子采样或 Barnes-Hut 逼近等工具可以优化运行时。但是,开发人员应注意,t-SNE 的随机性意味着嵌入在运行之间会有所不同,因此设置随机种子可确保分析的可重复性。