本文使用 Zhihu On VSCode 创作并发布
[译]UMAP是如何工作的 & UMAP 与 tSNE的原理对比
完成日期:2020.6.26
今天我们要深入探讨的是一种叫做UMAP的降维技术,这种技术在现在的单细胞基因组学中占主导地位。我们使用简单的语言解释这种方法。并强调tSNE和UMAP之间的关键差异。
1. tSNE 已死,UMAP当立
如果你不知道什么是tSNE,它是如何工作的,也没有读过2008年最初的革命性的van der Maaten & Hinton论文,你可能不需要知道,因为tSNE现在基本上已经死了。尽管tSNE为数据科学带来了巨大的影响,但人们普遍认为它有一些缺点,迟早要解决。
究竟是什么原因让TSNE的效果不那么理想,这里我总结了几点,并做了简短的评论:tSNE不能适用大的样本量。如果使用FItSNE加速计算,也会导致内存消耗大,从而只能在计算机集群上进行分析。
tSNE并没有保留全局结构。也就是说只有簇内的距离才有意义,而簇间的相似性却无法保证;因此人们普遍认为,在tSNE上进行聚类并不是一个很好的主意。
tSNE在mnist上的降维结果
如上图,我们很难说右边箭头指出的三个簇相似度很低。
tSNE实际上只能嵌入到2维或3维中,即只能用于可视化的目的,所以很难将tSNE作为一般的降维技术;
tSNE不能直接处理高维数据,通常使用Autoencoder或PCA进行降维处理,然后将降维的结果输入tsne做可视化。
2. tSNE工作原理简要回顾
tSNE是一种相对简单的机器学习算法,可以由以下四个方程描述:
式(1)定义了高斯概率观测高维空间中任意两个点之间的距离的概率
,该距离满足对称性规则。其中
表示输入的数据,下标为数据的索引,
为样本数,
表示输出的数据。
表示计算距离概率的方差,方差由式(2)确定。
式(2)引入了困惑度
的概念,困惑度是一个可调节的变量,类似于knn 的
。作为确定每个样本的最佳
的约束。在实际的计算中,通过二分法对
进行搜索,使满足
满足设定的要求。
式(3)定义了低维嵌入中两对点之间距离的学生
分布。学生
分布的长尾可以用来克服嵌入低尺寸时的拥挤问题。
表示输出的数据。
式(4)给出了将高维概率投影到低维概率的Kullback-Leibler散度损失函数,以及用于梯度下降优化的梯度的解析形式。在这里只做一个简单的介绍,接下来会有更加详细的介绍。
高斯分布和t分布的区别
仅看上面的图,我会说Student t分布的粗尾应该提供全局距离信息,因为它们将点在高维度上推得更远,在低维度上甚至更远。然而,这种良好的意愿被成本函数(KL-散度)的选择所扼杀,我们将在后面看到原因。
3. tSNE和UMAP之间的主要区别
UMAP是一种新颖且有趣的降维技术,与纯机器学习半经验算法tSNE截然不同,它基于可靠的数学原理。我来自生物学的同事告诉我,原始的UMAP论文太“数学化了”,但是,在阅读UMAP文档并观看Leland McInnes在SciPy 2018上的演讲时,我感到困惑,因为我觉得UMAP是另一种与tSNE非常相似的邻居图技术,我一直在努力了解UMAP与tSNE到底有何不同。
从UMAP论文来看,即使Leland McInnes试图在附录C中总结它们,UMAP和tSNE之间的差异也不是很明显。我想说的是,我确实看到了微小的差异,但是目前尚不清楚为什么它们会对输出带来如此巨大的影响。在这里,我将首先总结我注意到的UMAP和tSNE之间的区别,然后尝试解释为什么这些区别很重要,并找出它们的影响有多大。UMAP使用高维度上的指数概率分布,但不一定要像tSNE那样使用欧几里得距离,而是可以插入任何距离。此外,概率未归一化: