基于图册的流形表示:在数据原生几何上直接进行机器学习
1. 项目概述:为什么我们需要一种新的流形表示方法?
在机器学习领域,我们常常面对一个令人头疼的现实:数据看起来维度很高,但其内在结构可能只存在于一个低维的“形状”上。想象一下,你有一张揉皱的纸,它在三维空间里占据了一定的体积,但它的本质其实是一个二维平面。这个“纸”的形状,在数学上就被称为“流形”。流形学习的目标,就是找到这张被揉皱的纸,并把它摊平,让我们能看清它本来的二维结构。
这就是所谓的“流形假设”:现实世界中的高维数据,往往集中在一个嵌入在高维空间中的低维流形上。这个想法听起来很美,也催生了像PCA、t-SNE、UMAP等一系列我们耳熟能详的降维工具。它们确实很强大,能帮我们把数据从几千维降到两三维,然后画出一张漂亮的散点图,让我们“看到”数据的聚类和结构。
但作为一名在数据科学领域摸爬滚打多年的从业者,我越来越感觉到这些传统方法的“力不从心”。它们本质上在做一件事: 把数据从高维空间“投影”或“嵌入”到一个更低维的欧几里得空间(比如二维平面)里 。这个过程,就像是为了把那张皱纸展示给你看,我强行把它压平贴在墙上。问题是,在压平的过程中,纸上的折痕、弯曲的几何特性可能被严重扭曲甚至丢失了。更关键的是,一旦数据被“嵌入”到这个固定的低维坐标里,它就变成了一个静态的、孤立的点集。如果你想在这个流形上做点更高级的操作,比如沿着它的表面进行优化、计算两点间最短的“测地线”路径,或者模拟一个粒子在流形表面上的运动轨迹,传统降维方法就束手无策了。因为在你压平后的二维图上做的任何计算,都无法反映原始皱纸上的真实几何。
这在实际应用中带来了巨大的局限性。比如在单细胞RNA测序数据分析中,我们不仅想知道细胞在基因表达空间中的位置(即状态),更想预测它们未来的分化轨迹(即动态)。这需要我们在细胞状态构成的流形上,沿着一个“速度场”进行积分运算。传统方法先降维再计算,相当于在压平的二维地图上规划路线,但实际细胞是在一个弯曲的三维皱纸表面移动,路线规划很容易“跑偏”,脱离真实的生物过程。
因此,我和团队一直在思考:有没有一种方法,能不破坏流形本身的弯曲结构,直接在这个“形状”上进行数学运算和机器学习?这就是我们探索“基于图册的流形表示”的初衷。我们不想再把流形强行塞进一个欧几里得空间的“牢笼”,而是希望为它建立一套本地的、可微的“地图集”。就像我们为地球制作地图一样,没有一张平面地图能无失真地展现整个球面,但我们可以用多张局部地图(图册)来覆盖全球,并精确说明每两张重叠地图之间如何转换坐标。
这篇博文,我将为你深入拆解我们提出的这套新方法。它不是对现有降维工具的简单改良,而是一种范式的转变:从“降维嵌入”转向“图册表示”。我会从核心思路、数据结构设计、学习算法,一直讲到在格拉斯曼流形优化、克莱因瓶分类和单细胞RNA速度分析这三个截然不同的场景下的实战效果。无论你是机器学习的研究者,还是生物信息学领域的分析者,我相信这种直接在数据“原生几何”上操作的思想,都能为你打开一扇新的大门。
2. 核心思路:从“降维投影”到“图册表示”
要理解我们的方法,首先得搞清楚传统流形学习方法的根本局限在哪里,以及“图册”这个概念为何能打破这个局限。
2.1 传统降维方法的“阿喀琉斯之踵”
目前主流的流形学习方法,如等距映射(Isomap)、拉普拉斯特征映射(Laplacian Eigenmaps)、扩散映射(Diffusion Maps)以及t-SNE和UMAP,其核心目标可以概括为:寻找一个从高维观测空间到低维表示空间的映射函数。
这个映射过程,无论设计得多么精巧,都不可避免地面临一个结构性矛盾: 表示空间的维度D,必须大于或等于流形的内在维度d (根据著名的Whitney嵌入定理,D至少需要2d)。但在实践中,为了可视化和计算简便,我们常常强行设定D等于d甚至更小(比如设为2或3)。当流形本身具有非平凡的拓扑结构(比如像克莱因瓶那样,是一个不可定向的闭合曲面)时,这种强行嵌入到一个低维欧氏空间的做法,必然会导致几何或拓扑信息的严重失真。
举个例子,Isomap试图保持流形上点之间的测地线距离(即曲面上的最短路径长度)。然而,对于一个弯曲的球面,你无法在不撕裂或扭曲的情况下将其完美展平到平面上并保持所有距离不变。因此,Isomap在复杂流形上的表现往往不佳。
更本质的问题是, 降维后的表示空间是一个“黑箱” 。数据点被映射为这个空间中的一个静态坐标,但流形本身的局部几何结构——比如某一点处的切平面方向、曲率——以及最重要的,在这个弯曲空间中进行微积分运算的能力(如计算梯度、进行优化迭代),在降维表示中几乎丢失殆尽。你无法在t-SNE产生的二维散点图上直接定义导数并进行梯度下降,因为那个二维空间只是原始高维流形的一个扭曲的、信息不完整的影子。
2.2 微分几何的启示:图册与流形
微分几何为我们提供了描述弯曲空间的完美语言。一个d维光滑流形,直观上就是一块块d维欧几里得空间(我们称之为“坐标卡”或“图表”)像补丁一样粘合起来的整体。每一块坐标卡都是一个局部区域,它和欧氏空间的一个开集之间存在一个一一对应且光滑的映射(称为坐标映射)。最关键的是,对于任意两张重叠的坐标卡,它们重叠区域上的坐标变换必须是光滑的。这一整套坐标卡的集合,连同它们之间的光滑转换关系,就构成了该流形的一个“微分图册”。
这种描述方式的强大之处在于, 它完全在流形自身的局部坐标系下工作 。我们不需要一个全局的、扁平的“上帝视角”坐标。在每一小块局部区域,我们都可以像在熟悉的欧氏空间里一样进行微积分运算。当我们需要从一个区域走到另一个区域时,只需要利用已知的光滑转换规则(转移映射)进行坐标变换即可。
我们的核心思路正是源于此: 为什么不直接为数据学习一个这样的微分图册呢? 与其费尽心思把流形嵌入到一个不自然的低维欧氏空间,不如承认它的弯曲本质,并为它构建一套本地的、可微的“地图”。这套地图(图册)将作为数据的基础设施,使得所有需要在流形上进行的操作——优化、积分、分类——都可以直接在图册定义的局部坐标系中,以欧氏空间的方式高效完成,再通过转移映射在全局协调。
2.3 Atlas数据结构:可微图册的工程实现
将微分几何的概念转化为可计算的代码,是我们工作的关键一步。我们设计了一个名为
Atlas
的核心数据结构,它是对数学上微分图册概念的一个具体实现,同时兼顾了计算效率和从数据中学习的灵活性。
Atlas
数据结构主要维护以下几个核心组件:
-
一组坐标卡
:每个坐标卡
i本质上是一个函数φ_i: V_i ⊆ R^d → R^D。它将流形上某个局部区域U_i(在嵌入空间R^D中)中的点,用一组d���的局部坐标ξ来参数化。V_i是R^d中的一个开集,代表局部坐标的定义域。这个函数及其微分Dφ_i(一个D×d的雅可比矩阵)是我们进行局部计算的基石。 -
一个图册图
:这是一个无向图
G,节点是各个坐标卡。如果两张坐标卡i和j的图像在流形上有重叠区域(即U_i ∩ U_j ≠ ∅),那么图中就存在一条边{i, j}。 -
转移映射
:对于图册图中的每一条边
{i, j},我们定义了一个转移映射ψ_ij: V_ij ⊆ V_i → V_j。这个函数告诉我们,如何将点从坐标卡i的局部坐标ξ,转换到坐标卡j的局部坐标ξ’。理想情况下,它应该满足φ_j(ψ_ij(ξ)) ≈ φ_i(ξ),即在嵌入空间中,通过两个坐标卡映射到的点应该是同一个点。
注意 :在严格的数学定义中,要求
φ_j(ψ_ij(ξ))严格等于φ_i(ξ)。但在从真实数据学习的场景下,由于噪声和近似误差,我们允许存在微小的“不一致性”。我们的Atlas数据结构弱化了这一严格等式要求,转而追求一种实用的、可计算的近似。只要不一致性足够小,并且我们在算法中谨慎处理跨图卡的运算,就能保证整体计算的稳健性。
这个数据结构的美妙之处在于它的模块化和通用性。对于已知解析形式的流形(如格拉斯曼流形),我们可以直接根据其数学定义实现精确的
φ_i
和
ψ_ij
。对于从点云数据中学习到的流形,我们可以通过后续介绍的
Atlas-Learn
启发式方法来构建近似的图册。
3. 核心算法:如何从点云数据中学习一个图册?
有了
Atlas
数据结构作为蓝图,下一个挑战就是:给定一堆高维空间中的离散点(点云),我们如何自动构建一个覆盖这些点的、可微的图册?这就是
Atlas-Learn
算法要解决的问题。
3.1 算法流程总览
Atlas-Learn
的输入是一个
N×D
的数据矩阵
X
(N个点,每个点D维),以及目标流形维度
d
(可通过多尺度SVD等方法预先估计)。输出则是一个完整的
Atlas
实例。整个过程可以分为四个主要步骤:
-
分区
:使用k-medoids聚类算法将点云
X划分为n个子集X_1, ..., X_n。每个子集将对应一个坐标卡的中心区域。选择k-medoids是因为它对噪声和异常值比k-means更稳健。 -
局部切空间估计
:对于每个子集
X_i,计算其中心点m_i。然后对该子集中心化后的数据执行主成分分析(PCA),提取前d个主成分。这d个主成分张成的空间,就是流形在m_i点处的 切空间 的近似。我们得到一个d×D的矩阵L_i,其行向量是切空间的一组标准正交基。同时,我们也能得到与切空间正交的 法空间 的基矩阵M_i(维度为(D-d)×D)。 -
二次曲面拟合
:这是构建局部坐标映射
φ_i的关键。我们将子集X_i中的每个点x投影到切空间得到其切坐标ξ = L_i (x - m_i),同时得到其法坐标η = M_i (x - m_i)。我们的目标是找到一个二次函数f_i: R^d → R^(D-d),使得η ≈ f_i(ξ)。这通过最小二乘回归完成。一旦得到f_i,局部坐标映射就可以定义为:φ_i(ξ) = m_i + L_i^T ξ + M_i^T f_i(ξ)。这个映射将切空间坐标ξ映射回原始高维空间,并且由于f_i是二次的,其雅可比矩阵Dφ_i(ξ)可以轻松解析求得。 -
定义图卡域与转移映射
:我们需要确定每个坐标卡的有效范围
V_i。我们采用 最小体积包围椭球 (MVEE)来定义V_i,即包含子集X_i在切空间投影{L_i (x - m_i) | x ∈ X_i}的最小体积椭球。这为每个图卡提供了一个紧凑的、凸的定义域。对于重叠的图卡i和j,转移映射ψ_ij可以近似定义为:ψ_ij(ξ) ≈ L_j^T [ φ_i(ξ) - m_j ]。直观上,这相当于将点从图卡i的坐标映射回嵌入空间,再投影到图卡j的切空间上。
3.2 关键细节与实操心得
-
图卡数量
n的选择 :这是一个权衡。n太小,每个图卡覆盖区域过大,二次拟合可能不准;n太大,图卡数量增多,管理转移映射的开销变大,且容易过拟合。我们的经验是,可以从一个较小的n(如sqrt(N))开始,然后检查每个图卡内二次拟合的残差。如果残差过大,则在该区域增加图卡密度。 - 二次拟合的合理性 :为什么用二次函数,而不是更高次或更简单的线性函数?从微分几何来看,流形在一点附近的局部近似,一阶项(切平面)由PCA给出,二阶项(曲率)则包含了流形弯曲的关键信息。二次函数恰好能捕捉到这一阶和二阶的局部几何。线性拟合(即只用切平面)会丢失曲率,导致在远离中心点时误差急剧增大;而更高次拟合则容易过拟合噪声,且计算更复杂。
-
处理图卡边界
:当一个点位于多个图卡的重叠区域时,选择哪个图卡进行计算?我们的策略是选择该点切坐标
ξ在其MVEE内“最中心”的那个图卡,通常通过计算ξ到MVEE中心的马氏距离来判断。这能保证计算的数值稳定性。 -
不一致性的管理
:由于
φ_i和ψ_ij都是近似学习得到的,它们之间必然存在不一致性,即φ_j(ψ_ij(ξ))不完全等于φ_i(ξ)。在算法实现中,我们需要监控这种不一致性误差。当进行需要跨越多张图卡的连续运算(如计算长距离测地线)时,这种误差可能会累积。一个实用的技巧是,在每次跨图卡转移后,执行一步简单的“投影校正”:将φ_j(ψ_ij(ξ))这个在嵌入空间中的点,重新投影到最近的数据点或流形估计上,以减小漂移。
实操心得 :在单细胞RNA-seq数据这类高维、高噪声的场景下,直接在全基因空间(~20,000维)运行
Atlas-Learn计算量巨大。一个非常有效的预处理步骤是,先使用PCA将数据降到50-100维(保留绝大部分方差),在这个降维后的空间中进行图册学习。这能极大加速计算,且由于PCA是线性变换,它保留了数据的全局欧氏结构,不会破坏我们想要学习的流形非线性几何。
4. 基于图册的黎曼优化:让梯度下降在弯曲空间奔跑
图册表示的核心价值在于它赋能了
黎曼优化
——直接在流形上进行梯度下降等优化算法。在欧氏空间中,梯度下降的更新规则很简单:
x_new = x_old - η * ∇f(x_old)
,即沿着负梯度方向走一步。但在流形上,你不能简单地把切空间(梯度所在的空间)中的向量加到流形上的点上,因为那会“掉出”流形。
4.1 收缩:指数映射的实用替代品
在黎曼几何中,将切空间中的一个向量
v
映射回流形上的对应点,是通过
指数映射
完成的。然而,对于大多数流形,指数映射没有闭式解,数值求解微分方程计算代价高昂。
为此,优化理论引入了
收缩
的概念。收缩
R_p(v)
是一个从点
p
的切空间
T_pM
到流形
M
的映射,它满足两个关键性质:1)
R_p(0) = p
;2) 其在
0
处的微分是恒等映射。这意味着在原点附近,收缩是一阶近似于指数映射的。收缩不唯一,许多简单操作都可以构造出有效的收缩。
我们的
Atlas
数据结构为实现收缩提供了一个极其优雅的方案,我们称之为
拟欧几里得更新
。假设当前点
p
位于图卡
i
中,��部坐标为
ξ
(即
p = φ_i(ξ)
),我们在
p
点处有一个切向量
τ
(在切空间
T_pM
中表示)。那么,收缩更新可以计算为:
R_p(τ) = φ_i( ξ + (Dφ_i(ξ))^{-1} τ )
这个公式的直观解释非常深刻
:
Dφ_i(ξ)
是坐标映射
φ_i
在
ξ
处的雅可比矩阵,它将局部坐标空间
R^d
中的向量映射到切空间
T_pM
中。因此,它的逆
(Dφ_i(ξ))^{-1}
就把切空间中的更新方向
τ
“拉回”到局部坐标空间。我们在局部坐标空间
ξ
上做一个简单的欧氏向量加法(
ξ + ...
),然后再通过
φ_i
映射回流形。
整个过程的核心在于,我们把复杂的流形上的更新,转化为了在局部欧氏坐标下的简单加法
。
4.2 算法实现与边界处理
基于上述收缩公式,实现一个流形上的梯度下降算法就变得非常直接:
-
初始化
:给定初始点
p_0,找到包含它的图卡i,并计算其局部坐标ξ_0(这通常需要求解φ_i(ξ) ≈ p_0,可用牛顿法等数值方法)。 -
迭代
:对于第
t步: a. 在当前点p_t(局部坐标ξ_t)计算目标函数f在流形上的梯度grad f(p_t)(这通常需要在嵌入空间中计算欧氏梯度,然后投影到切空间)。 b. 确定更新方向τ_t = -η * grad f(p_t),其中η是学习率。 c. 计算候选局部坐标ξ_candidate = ξ_t + (Dφ_i(ξ_t))^{-1} τ_t。 d. 边界检查 :检查ξ_candidate是否仍在当前图卡i的定义域V_i(即其MVEE)内。 * 如果在域内:直接更新,p_{t+1} = φ_i(ξ_candidate),ξ_{t+1} = ξ_candidate。 * 如果刚好超出边界一点:先按上述更新到p_{t+1},然后立即为p_{t+1}寻找新的所属图卡j,并计算在新图卡下的局部坐标ξ_{t+1}。同时,需要将剩余的更新向量(如果有)通过转移映射ψ_ji的微分转换到新图卡的切空间中。 * 如果大幅超出边界:我们需要进行“截断”。找到最大的标量c ∈ (0, 1),使得ξ_t + c * (Dφ_i(ξ_t))^{-1} τ_t仍在V_i内。执行这个截断后的更新,然后转移到新图卡,并将剩余的(1-c)*τ_t向量转换过去,在下一轮迭代中继续使用。 - 终止 :重复直到梯度范数小于阈值或达到最大迭代次数。
4.3 优势与效率分析
这种基于图册的优化方法,相比传统的“先降维,再在低维欧氏空间优化”的方法,有两大核心优势:
- 几何保真性 :优化路径被严格约束在估计的流形上。在生物动力学模拟等应用中,这能确保模拟的轨迹不脱离有生物学意义的状态空间。
-
计算效率
:对于许多流形,指数映射没有闭式解,需要数值积分,计算成本高。而我们的拟欧几里得更新,其核心运算是矩阵求逆和向量加法,在局部坐标维度
d很小(通常2-10)时非常高效。在我们的格拉斯曼流形实验中,这种方法比使用精确指数映射的经典方法(如MANOPT库中的某些算法)在运行时间上具有显著优势,且精度无损。
注意事项 :矩阵
Dφ_i(ξ)的求逆是算法中的关键步骤,需要保证其数值稳定性。当流形曲率很大或学习率设置不当时,(Dφ_i(ξ))^{-1} τ可能很大,导致更新步长失控。实践中,我们通常会对更新向量的范数进行裁剪,或者使用自适应学习率策略。此外,频繁的图卡转移会引入由转移映射近似误差带来的累积误差。在需要高精度优化的场景,可以定期执行“重投影”步骤,将当前点p_t重新拟合到最近的数据点或流形上,以校正漂移。
5. 实战应用一:格拉斯曼流形上的在线子空间学习
为了验证我们图册方法的通用性和效率,我们首先在一个具有已知解析结构的经典流形——格拉斯曼流形
Gr(n, k)
上进行了测试。格拉斯曼流形是所有
n
维线性空间中
k
维子空间的集合,在信号处理、计算机视觉中应用广泛。
5.1 任务:格拉斯曼归纳弗雷歇均值估计
我们选择的任务是格拉斯曼归纳弗雷歇均值估计。简单来说,就是有一系列从格拉斯曼流形上某个分布中采样得到的子空间(表示为
n×k
的列正交矩阵),我们需要在线地、迭代地估计出这些子空间的“平均”子空间(即弗雷歇均值)。这是一个经典的黎曼优化问题。
经典的GiFEE算法通过迭代使用指数映射和对数映射来更新均值估计。指数映射
Exp_M(V)
将切空间中的一个向量
V
映射为流形上的一条测地线;对数映射
Log_M(X)
是其逆,计算点
X
到点
M
的切向量。每一步迭代都涉及这些昂贵运算。
5.2 基于Atlas的优化实现
由于格拉斯曼流形有标准的埃雷斯曼图册,我们可以为它精确构建一个
Atlas
实例,无需学习。在这个图册中,每个坐标卡对应一个特定的“参考子空间”,坐标映射和转移映射都有明确的解析形式。
我们的优化算法完全基于第4章描述的拟欧几里得更新:
-
将当前均值估计
M_t表示为其所在图卡的局部坐标ξ_t。 -
对于新来的数据点
X_{t+1},我们利用Atlas提供的近似对数映射(基于局部坐标的差分)来计算“更新方向”向量τ。 -
使用拟欧几里得更新公式:
ξ_{t+1} = ξ_t + (Dφ_i(ξ_t))^{-1} (τ / (t+1))(这里除以t+1是GiFEE算法的学习率衰减)。 -
通过
φ_i(ξ_{t+1})得到新的均值估计M_{t+1}。
5.3 实验结果与对比
我们将基于
Atlas
的方法与三种主流方法进行了对比:
- 原始GiFEE算法 :使用格拉斯曼流形上精确的指数/对数映射闭式解。
- MANOPT :一个著名的黎曼优化工具箱,内部也使用了精确的几何运算。
- MANOPT-RET :MANOPT中使用了更高效收缩的变体。
在
(n,k)
分别为
(30,5)
,
(100,5)
,
(300,10)
的多种设置下,我们测试了算法收敛到真实弗雷歇均值所需的运行时间。
结果非常振奋人心:我们基于Atlas的方法在达到相同精度的情况下,运行时间显著短于其他几种一阶优化方法。
原因分析
:虽然GiFEE和MANOPT使用了“精确”的几何运算,但这些闭式解涉及大量的矩阵指数、对数、SVD分解等操作,对于较大的
n
和
k
计算开销很大。而我们的拟欧几里得更新,其核心是小型矩阵(
d×d
,这里
d
是格拉斯曼流形的维度
k(n-k)
)的求逆和向量运算,在
d
不是特别大时,速度优势明显。这证明了即使对于已知解析结构的流形,采用图册表示进行优化也能带来显著的性能提升。
6. 实战应用二:克莱因瓶图像块分类与几何保持性
第二个实验我们转向一个更富挑战性的场景:从点云数据中学习流形结构,并在此结构上进行机器学习任务。我们选择了经典的“高对比度自然图像块”数据集,其底层流形被证明同胚于克莱因瓶——一个不可定向的闭合曲面,具有非平凡的拓扑结构。
6.1 学习克莱因瓶的图册
我们使用
Atlas-Learn
算法,仅输入从克莱因瓶参数化模型上采样得到的点云(3x3的图像块,展平为9维向量,再通过PCA降到3维以聚焦主要变异),目标维度设为2(流形的内在维数)。算法自动生成了一个包含64个坐标卡的图册。
为了评估图册的质量,我们将其与PCA、Isomap、LLE、t-SNE、UMAP等经典降维方法进行对比。评估指标有两个:
- 测地线距离保持 :在流形上随机采样点对,计算其真实的测地线距离(通过原始参数化模型计算),再计算在各方法得到的表示中两点间的距离(对于Atlas,我们通过图册上的最短路径算法近似测地线)。理想情况下,这两个距离应该成线性关系。
-
拓扑结构保持
:计算各方法得到的低维表示的持续同调,并与真实克莱因瓶的持续同调(其1维同调群为
Z ⊕ Z_2)进行比较,使用瓶颈距离来量化差异。
6.2 结果:图册在几何与拓扑保持上的优势
实验结果清晰地表明:
-
在测地线距离保持上
,
Atlas表示的表现远优于其他方法。特别是Isomap,尽管其设计目标就是保持测地线距离,但在克莱因瓶这种非平凡拓扑和曲率的流形上,其二维嵌入严重扭曲了距离关系。而Atlas的散点图几乎沿着y=x对角线分布。 -
在拓扑结构保持上
,
Atlas几乎完美地复现了克莱因瓶的持续同调图。而其他所有降维方法,包括t-SNE和UMAP,都严重扭曲了拓扑信息,其持续同调与真实情况相去甚远。
这强烈说明 :传统的全局降维嵌入方法,为了将复杂的流形强行塞进低维欧氏空间,不得不牺牲其内在的几何和拓扑属性。而基于图册的表示,由于它忠实于流形的局部微分结构,并通过转移映射在全局进行协调,因此能够更好地保持这些本质特征。
6.3 黎曼主边界分类
为了展示在图册上直接进行机器学习的能力,我们实现并应用了 黎曼主边界算法 。这是一种黎曼几何上的支持向量机(SVM)推广,用于学习流形上的分类边界。
在我们的任务中,图像块根据其灰度模式可分为“凸”和“凹”两类。RPB算法通过在两类数据各自的“主流”(近似于类内均值曲线)之间进行插值,学习出一个一维的“主边界”曲线,作为分类器。
我们完全基于学习到的
Atlas
表示来实现RPB算法:
-
算法需要在流形上计算测地线、平行移动和弗雷歇均值。所有这些操作都通过我们
Atlas数据结构提供的基本原语(收缩、对数映射近似、向量传输)来实现。 - 使用欧拉法在流形上积分ODE,迭代更新主边界曲线。
分类结果 :RPB算法成功地在克莱因瓶流形上学习到了一个清晰、光滑的分类边界。这个边界完全由高对比度图像块构成,具有明确的视觉可解释性。相比之下,在PCA或t-SNE产生的二维嵌入上使用线性SVM或核SVM,得到的分类边界要么复杂扭曲,要么在原始图像空间中没有明确的含义。
这个实验有力地证明了,基于图册的表示不仅能够保持流形结构,还能为复杂的黎曼机器学习算法提供一个可操作、可解释的计算平台。
7. 实战应用三:单细胞RNA测序数据中的RNA速度场积分
最后,我们进入一个真实的生物信息学应用场景:单细胞RNA测序数据分析。这是一个典型的高维(数万个基因)、低内在维度(通常3-10维)的数据集,细胞分化过程被认为沿着一个低维流形进行。
7.1 问题:在转录组空间中整合速度场
近年来,RNA速度分析成为研究细胞动力学的强大工具。它通过比较新生RNA和总RNA的比例,为每个细胞估计一个“速度向量”,指向其可能的分化方向。这些速度向量共同定义了一个覆盖细胞状态空间的向量场。
一个关键任务是 整合这个速度场 :从一个起始细胞(如造血干细胞HSC)出发,沿着速度场的方向进行积分,以模拟和预测其分化的轨迹。传统方法(如Dynamo)在降维后的环境空间(如前30个主成分空间)中对速度场进行ODE积分。
这里存在一个隐含的假设:积分轨迹会保持在细胞分布的潜在低维流形附近。但这个假设是否成立?在弯曲的流形上,环境空间中的直线积分很容易“飘离”流形表面。
7.2 基于Atlas的约束积分
我们的方法提供了直接验证和解决这个问题的途径:
-
学习造血细胞图谱的Atlas
:我们使用
Atlas-Learn从一个公开的造血干细胞数据集(约数万个细胞)中学习一个5维的流形图册(使用30个图卡)。内在维度d=5通过多尺度SVD估计得到。 -
投影速度场
:将Dynamo估计的环境空间速度场
V_amb,在每个数据点处投影到Atlas学习到的局部切空间上,从而得到定义在流形切丛上的向量场V_atlas。 -
在流形上进行ODE积分
:从每个HSC起始点出发,我们同时进行两种积分:
-
环境空间积分
:在30维PCA空间中,使用欧拉法直接积分
V_amb。 -
流形约束积分
:在
Atlas表示上,使用拟欧几里得更新进行积分。每一步,我们根据当前点的切向量(来自V_atlas)和Atlas提供的收缩映射,计算出下一个点,并处理可能的图卡转移。
-
环境空间积分
:在30维PCA空间中,使用欧拉法直接积分
7.3 结果:更贴近真实数据的轨迹
我们比较了两种积分轨迹与原始观测数据点的接近程度。对于每个积分时间步,计算轨迹点到所有数据点的最近邻距离。
结果非常显著
:基于
Atlas
的流形约束积分轨迹,其到最近数据点的距离,在所有时间步上都
显著小于
环境空间积分轨迹的距离。并且,这个距离始终低于数据点到学习到的
Atlas
流形本身的平均距离。
这意味着什么?
- 环境空间积分轨迹确实会逐渐偏离细胞实际分布的密集区域(即潜在流形),其模拟的细胞状态可能对应着生物学上不存在或极罕见的基因表达模式。
-
基于
Atlas的积分轨迹则被有效地“约束”在了学习到的流形附近,模拟的细胞状态更贴近实际观测到的细胞,因此其预测的分化轨迹可能更具生物学可信度。
这个应用展示了我们方法在复杂、高维真实数据中的巨大潜力。它不仅仅是一个流形学习工具,更是一个 计算引擎 ,使得在数据固有的几何结构上进行动力学模拟和预测成为可能。
8. 局限、挑战与未来展望
尽管我们的方法在多个场景下展示了优势,但作为一个概念验证,当前的
Atlas
和
Atlas-Learn
实现仍有明显的局限性和改进空间。
8.1 当前方法的局限性
-
固定维度假设
:
Atlas数据结构假设流形是固定维数的。然而,真实世界的数据(如单细胞数据中不同细胞类型簇)可能具有变化的局部维度。未来的工作需要扩展到 变维流形 或 分层流形 的表示。 -
图卡构建的启发式性质
:
Atlas-Learn中图卡中心通过k-medoids聚类选择,图卡范围通过MVEE定义。这些启发式方法可能不是最优的。例如,在流形曲率变化剧烈的区域,可能需要更小、更密集的图卡;在平坦区域,则可以用更大的图卡覆盖。一个 自适应的图卡构建策略 ,根据局部拟合误差动态调整图卡大小和位置,将大有裨益。 - 误差累积与稳健性 :图卡间转移映射的近似误差,以及在流形上长时间积分/优化导致的误差累积,需要更严格的理论分析和数值稳定性控制。目前我们通过重投影等经验技巧缓解,但需要更系统的误差传播分析。
- 计算与存储开销 :对于非常大的点云(数百万以上)或较高内在维度(>10),构建和存储大量图卡(每个图卡包含二次函数系数、MVEE参数等)的开销会变得可观。需要开发更高效的图卡编码、稀疏化以及查询算法。
8.2 潜在的应用扩展与未来方向
- 与深度生成模型的结合 :扩散模型等生成模型正在向黎曼流形扩展。我们的图册表示可以为这些模型提供一个自然的、可微的流形参数化,可能简化在复杂流形上的采样和得分匹配过程。
- 动态流形学习 :许多生物过程(如发育、疾病进展)对应的流形本身是随时间演化的。可以探索 时变图册 的表示,用于刻画动态的细胞状态空间。
- 可解释性工具的基石 :由于图册提供了明确的局部坐标和全局拼接关系,它可以成为构建��解释机器学习模型的基础。例如,可以分析分类边界或回归函数在不同图卡上的局部表达式,从而全局理解模型决策机制。
-
算法优化
:
Atlas-Learn本身可以视为一个优化问题——寻找一组图卡和映射,使得整体重构误差和转移不一致性最小化。可以探索基于梯度的端到端学习框架来优化整个图册。
我个人在实际操作中的体会是 ,基于图册的流形表示最吸引人的地方在于它的“直接性”。它不回避流形的弯曲本质,而是提供了一套直接操作这种弯曲结构的语言和工具。这就像从使用二维地图导航,升级到了使用三维地球仪导航。虽然初期构建“地球仪”(图册)更复杂,但一旦建成,规划环球航线、计算最短路径等任务就变得直观而准确。这项工作只是一个起点,它为在数据科学中更严谨、更忠实地对待数据的几何结构,开辟了一条充满希望的道路。
更多推荐
所有评论(0)