作者:禅与计算机程序设计艺术
1.背景介绍
t-SNE (t-Distributed Stochastic Neighbor Embedding) 是一种经典的非线性降维方法。在高维空间中,原有的样本点分布可能会发生严重的扭曲,而通过 t-SNE 将高维数据转化成低维空间后,分布会得到较好的保持。t-SNE 的关键是计算每个高维数据点的邻近质量(neighborhood similarity)并映射到低维空间,这里的邻近质量可以定义为高维数据点对其他高维数据点的“内积”或者“相似度”。基于这种邻近质量函数的不同选择,t-SNE 可以用于许多领域,包括科研、推荐系统、图像分析、生物信息等方面。
t-SNE 使用了最优化算法寻找每个高维数据的低维表示,其中迭代更新梯度(gradient update),根据高维数据点及其对应的低维表示之间的关系计算梯度,然后更新低维表示使得这些距离最小。但是,由于数据存在非线性关系,导致求解梯度困难。为了解决这个问题,提出了 kernel trick,即用核技巧将高维数据映射到低维空间,从而将距离度量变成一个非线性函数,这样就可以通过计算高维数据点对其他高维数据点的内积来计算邻近质量,进而进行计算梯度。
然而,基于 kernel trick 的 t-SNE 在某些情况下仍然存在一些问题,如局部收敛和断裂现象。在这些情况下