其他算法-建立在流形上的降维UMAP

过去流行使用t-SNE,但其存在问题:

  • tSNE不能适用大的样本量。如果使用t-SNE加速计算,也会导致内存消耗大,从而只能在计算机集群上进行分析;
  • tSNE并没有保留全局结构。也就是说只有簇内的距离才有意义,而簇间的相似性却无法保证;因此人们普遍认为,在tSNE上进行聚类并不是一个很好的主意;
  • tSNE实际上只能嵌入到2维或3维中,即只能用于可视化的目的,所以很难将tSNE作为一般的降维技术;
  • tSNE不能直接处理高维数据,通常使用Autoencoder或PCA进行降维处理,然后将降维的结果输入tsne做可视化。

在单细胞分析中:

  • t-sne相对于PCA有更高的区分度,不同细胞类型分得开;
  • t-sne保留局部结构,相类似的细胞聚集在一起时不会过于重叠扎堆;
  • 相对于UMAP,t-sne不能很好的展示全局结构;
  • 经典的tSNE算法不适用于较大的数据;
  • 鉴于tSNE的缺点,近年来umap逐渐在单细胞数据的可视化方法中占据位置。umap相对tSNE来说,保留了数据的全局结构,而且大数据的运行时间较短

前置内容

降维不仅仅是为了数据可视化。它还可以识别高维空间中的关键结构并将它们保存在低维embedding中来克服“维数灾难”。下面将介绍一种流行的降维技术Uniform Manifold Approximation and Projection (UMAP)的原理。

首先,注意以下内容:

  • Projection ——通过投影点在平面、曲面或线上再现空间对象的过程或技术。也可以将其视为对象从高维空间到低维空间的映射。
  • Approximation——算法假设我们只有一组有限的数据样本(点),而不是构成流形的整个集合。因此,我们需要根据可用数据来近似流形。
  • Manifold——流形是一个拓扑空间,在每个点附近局部类似于欧几里得空间。一维流形包括线和圆,但不包括类似数字8的形状。二维流形(又名曲面)包括平面、球体、环面等。
  • Uniform——均匀性假设告诉我们我们的数据样本均匀(均匀)分布在流形上。但是,在现实世界中,这种情况很少发生。因此这个假设引出了在流形上距离是变化的概念。即,空间本身是扭曲的:空间根据数据显得更稀疏或更密集的位置进行拉伸或收缩。

综上所述,我们可以将UMAP描述为:一种降维技术,假设可用数据样本均匀(Uniform)分布在拓扑空间(Manifold)中,可以从这些有限数据样本中近似(Approximation)并映射(Projection)到低维空间。

UMAP步骤

我们可以将UMAP分为两个主要步骤:

  • 学习高维空间中的流形结构;
  • 找到该流形的低维表示;

学习流形结构

在我们将数据映射到低维之前,肯定首先需要弄清楚它在高维空间中的样子。学习流形结构可分为以下步骤:

  • 寻找最近邻居;
  • 构建一个图;

对于寻找最近邻居,UMAP 首先使用 Nearest-Neighbor-Descent 算法找到最近的邻居。我们可以通过调整 UMAP 的 n_neighbors 超参数来指定我们想要使用多少个近邻点。

试验 n_neighbors 的数量很重要,因为它控制 UMAP 如何平衡数据中的局部和全局结构。它通过在尝试学习流形结构时限制局部邻域的大小来实现。本质上,一个小的n_neighbors 值意味着我们需要一个非常局部的解释,准确地捕捉结构的细节。而较大的 n_neighbors 值意味着我们的估计将基于更大的区域,因此会得到在整个流形中更全局地解释。

下一步我们构建图,UMAP 需要通过连接之前确定的最近邻来构建图。为了理解这个过程,我们需要将他分成几个子步骤来解释邻域图是如何形成的。

  • 正如对 UMAP 的名称所述,我们假设点在流形上均匀分布,这表明它们之间的空间应该根据数据看起来更稀疏或更密集的位置而拉伸或收缩。
    它本质上意味着距离度量不是在整个空间中通用的,而是在不同区域之间变化的。我们可以通过在每个数据点周围绘制圆圈来对其进行可视化,由于距离度量的不同,它们的大小也应该不同(见下图)。实色代表邻居下限(local_connectivity=1),模糊区域代表邻居上限。

fig1

  • 接下来,我们要确保试图学习的流形结构不会导致许多不连通点。所以需要使用另一个超参数local_connectivity(默认值= 1)来解决这个潜在的问题;
    当我们设置local_connectivity=1 时,我们告诉高维空间中的每一个点都与另一个点相关联。
  • 注意到上面的图也展现了模糊的圆圈延伸到最近的邻居之外。这告诉我们,当我们离感兴趣的点越远,与其他点联系的确定性就越小。
    这两个超参数(local_connectivity 和 n_neighbors)最简单的理解就是可以将他们视为下限和上限:
    Local_connectivity(默认值为1):100%确定每个点至少连接到另一个点(连接数量的下限)。
    n_neighbors(默认值为15):一个点直接连接到第 16 个以上的邻居的可能性为 0%,因为它在构建图时落在 UMAP 使用的局部区域之外。
    2 到 15 : 有一定程度的确定性(>0% 但 <100%)一个点连接到它的第 2 个到第 15 个邻居。比如下图,黄色为感兴趣点,下限是全紫色区域,上限是紫色模糊区域:
    fig2
  • 下一步合并边:由于我们采用了不同距离的方法,因此从每个点的角度来看,我们不可避免地会遇到边权重不对齐的情况。 例如,点 A→B 的边权重与 B→A 的边权重不同。
    fig3
    为了在这种情况下合并边,UMAP提出:如果我们想将权重为 a 和 b 的两条不同的边合并在一起,那么我们应该有一个权重为 a+b 的单边。 考虑这一点的方法是,权重实际上是边存在的概率。 组合权重就是至少存在一条边的概率。
    最后,我们得到一个连接的邻域图,如下所示:
    fig4

这个图就是高维空间下对应的流形(按照UMAP的做法,可以看到样本确实均匀分布在流形上);

寻找流形的低维表示

从高维空间学习近似流形后,UMAP 的下一步是将其投影(映射)到低维空间。由于UMAP是建立在流形上做低维映射,所以降维后的结果可以更好地保留住全局信息。

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值