← 返回 2026-05-14

MC-RFM:基于混合曲率黎曼流匹配的少样本几何感知适配 MC-RFM: Geometry-Aware Few-Shot Adaptation via Mixed-Curvature Riemannian Flow Matching

Salim Khazem, Ibrahim Mohamed Serouis, Zakaria Ezzahed 📅 2026-05-08 👍 3 2026-07-13 08:36
几何深度学习 参数高效适配 双曲几何 少样本学习 流匹配 视觉骨干微调

在双曲+欧氏乘积流形上做流匹配适配冻结视觉骨干。

前置知识

Few-shot adaptation

指在只有少量标注样本(1-shot、4-shot、16-shot)的下游任务上,对预训练好的视觉骨干(如 ViT、ResNet)进行适配。本文固定骨干权重 $f_\psi$ 不变,只在缓存的特征 $h_i = f_\psi(x_i)$ 上学习一个轻量适配器,从而避免少样本场景下的灾难性过拟合。

整个 MC-RFM 的设计前提就是'冻结骨干 + 适配'这条范式,方法的输入是缓存特征而非原始图像,理解这一前提才能看懂为什么所有实验都在 5 个 frozen backbone 上做。

混合曲率流形(Mixed-curvature manifold)

指乘积流形 $\mathcal{M} = \mathbb{D}_c^{d_h} \times \mathbb{R}^{d_e}$,其中 $\mathbb{D}_c^{d_h}$ 是曲率为 $-c$ 的 Poincaré 球(双曲空间),$\mathbb{R}^{d_e}$ 是欧氏因子。双曲分支通过指数体积增长自然编码树状层级结构,欧氏分支保留局部判别性的纹理与外观变化。点到点的几何运算如 $\exp_0^c$、$\log_0^c$ 和 Poincaré 距离 $d_{\mathbb{D}_c}$ 都在该乘积流形上定义。

这是 MC-RFM 区别于 Euclidean-only 与 Hyperbolic-only 基线的核心结构。理解为什么'层级语义放双曲、局部变化放欧氏'能互补,是读懂全文 motivation 和 method 的关键。

Flow Matching(流匹配)

Lipman 等人提出的连续正规化流训练框架,用一个时变向量场 $v_\theta(z_t, t)$ 将源分布沿预设概率路径 $p_t$ 推到目标分布,训练时只需对目标速度 $u^\star(t) = (z_1 - z_t)/(1-t)$ 做平方误差回归,无需仿真。与 diffusion 的区别是 FM 直接在 ODE 上学习速度场、路径选择更灵活。

MC-RFM 把 flow matching 从生成建模迁移到'冻结特征到类别原型'的特征空间适配上,是本文最大的范式创新点。理解 FM 的损失形式 $\mathcal{L}_{FM} = \mathbb{E}\|v_\theta - u^\star\|^2$ 才能看懂第 3.4 节。

Poincaré ball 与指数/对数映射

Poincaré 球 $\mathbb{D}_c = \{x \in \mathbb{R}^d: \sqrt{c}\|x\|_2 < 1\}$ 是双曲空间的共形模型。$\exp_0^c(v) = \tanh(\sqrt{c}\|v\|/2) \cdot v/(\sqrt{c}\|v\|)$ 把切空间向量映回球内,$\log_0^c(x)$ 反之。MC-RFM 在 0 点切空间做向量场回归,再用 $\exp_0^c$ 回到球上,保证训练稳定。

本文第 3.2 节和 Proposition 1 反复用到这两个映射以及 'stays inside the ball' 的安全性证明,不熟悉就会卡在公式上。

研究动机

现有的参数高效适配方法(linear probing、prompt tuning、LoRA、AdaptFormer 等)虽然能在冻结视觉骨干上做少样本适配,但几乎都把 adaptation 视作对冻结表示的一次性欧氏扰动:选一组参数更新,但不去建模'特征应该沿什么几何、按什么动力学移动到任务相关区域'。这种视角在细粒度、层级结构明显的视觉任务上吃亏——比如 FGVC-Aircraft 上 ResNet-50 4-shot 只有 15.08%、Food-101 上只有 31.18%,远未饱和。作者在表 1 中显示,把基线换成 Hyperbolic-only 后这类任务反而掉点(Flowers102 从 67.96% 跌到 64.60%),说明单一几何并不能解决所有任务;同时 1-shot 时原型噪声大、少样本方差高,固定更新方式又容易把特征推到奇怪的位置。

本文的目标是设计一个轻量、骨干无关、且只作用于缓存冻结特征的少样本适配器 MC-RFM,把 adaptation 重写为'在混合曲率乘积流形 $\mathcal{M} = \mathbb{D}_c^{d_h} \times \mathbb{R}^{d_e}$ 上做任务条件流匹配'的连续几何传输任务。目标是在 7 个 benchmark、5 个 frozen backbone、1/4/16-shot 共 18×7=126 个 (backbone, dataset, shot) 单元上整体优于 Euclidean-only 和 Hyperbolic-only 两个对照组,且不增加推理时对 ODE 求解器的负担(默认 NFE=3)。

与已有工作不同的是,已有工作的切入角度要么是'该更新哪些参数'(PEFT 路线),要么是'用单一几何(hyperbolic 或 Euclidean)做静态表示学习',要么是'在数据空间做流匹配做生成'。本文的独特切入是把 adaptation 显式建模成 (1) 几何自适应的——同时利用双曲的层级归纳偏置与欧氏的局部判别能力;(2) 动态的——通过任务条件向量场让 frozen 特征沿混合曲率路径连续迁移到支持集原型,而不是一次性加偏移;(3) 自门控的——通过可学习的 branch gate 让模型自行决定每个样本该多用哪一支几何,避免单一几何在不适配任务上的退化。

核心方法

MC-RFM 的整体直觉可以一句话讲清楚:把预训练骨干看成'特征生成器',少样本 support set 看成一组'目标锚点',那么 adaptation 就是设计一个轻量 ODE 把每个 frozen 特征 $h$ 沿一条平滑路径送到它所属类别的 prototype $p_y$。为同时容纳层级语义和外观变化,这条路径被定义在 Poincaré 球(双曲)+ 欧氏空间的乘积流形上:双曲分支用 Poincaré geodesic 插值,欧氏分支用线性插值。一个 task-conditioned 向量场 $v_\theta(z_t, t, c_\mathcal{S})$ 学习这条路径的速度,并配合 cross-entropy 分类损失一起训练;推理时只需对每个 query 用 3 步 Euler 求解该 ODE,再用混合 prototype-linear 分类器给出预测。

和已有方法的本质区别在于:(1) 把 adaptation 从'参数更新问题'重新定义为'几何传输问题',并且传输路径和速度场是学习的,不是固定差分;(2) 引入可学习的 branch gate $g(z, c_\mathcal{S}) \in [0,1]$,把双曲和欧氏两支的贡献变成样本相关的,公式上以 $m_h = 2g$、$m_e = 2(1-g)$ 同时加权 flow-matching 损失项和分类器分支,避免单一几何在不适配任务上的硬性失效;(3) 配合 prototype shrinkage($\tilde\mu = (1-\tau)\mu + \tau \bar\mu$, $\tau \in [0,1]$)和 task context $c_\mathcal{S} \in \mathbb{R}^{d_c}$(聚合 prototype 距离、norm、类数等),让向量场随任务变化,而不是任务无关的固定场。

方法步骤详情

步骤一:给定冻结特征 $h = f_\psi(x)$,用一个轻量瓶颈投影分成两支 $u_h^{raw} = W_h h + b_h$、$u_e^{raw} = W_e h + b_e$,双曲支做归一化与边界保护后映射到 Poincaré 球 $z_h = \exp_0^c(\alpha_h \bar u_h)$,欧氏支直接 $z_e = \alpha_e \mathrm{LN}(u_e^{raw})$,得到 latent 状态 $z = (z_h, z_e) \in \mathcal{M}$。步骤二:对 support set 同样过 projector,计算每类双曲与欧氏 prototype,做 shrinkage $\tilde\mu_{h,k} = (1-\tau)\mu_{h,k} + \tau \bar\mu_h$,得到乘积 prototype $p_k = (\exp_0^c(\tilde\mu_{h,k}), \tilde\mu_{e,k})$。步骤三:用 task context encoder 把所有 prototype 编码为 $c_\mathcal{S} = E_\eta(\{p_k\}_{k=1}^K)$,包含分支 norm、prototype 间距、类别数等。步骤四:定义乘积路径 $z_t = (\gamma_{\mathbb{D}_c}(z_{h,0}, z_{h,1}; t), (1-t)z_{e,0} + t z_{e,1})$,目标速度 $u^\star_h(t) = (\log_0^c z_{h,1} - \log_0^c z_{h,t})/(1-t)$,$u^\star_e(t) = (z_{e,1} - z_{e,t})/(1-t)$。步骤五:向量场网络 $v_\theta$ 接收 $[\log_0^c z_{h,t}; z_{e,t}; \phi(t); c_\mathcal{S}]$ 预测分支速度 $v_{\theta,h}, v_{\theta,e}$,flow matching 损失为 $\mathcal{L}_{FM} = \mathbb{E}[w_h(t) m_h \|v_{\theta,h} - u^\star_h\|^2 + \lambda_e m_e \|v_{\theta,e} - u^\star_e\|^2]$,其中 $m_h = 2g, m_e = 2(1-g)$ 来自可学习 gate。步骤六:训练完做 ODE 积分得到 $z_T$,由混合 prototype-linear 分类器 $\ell(z) = \beta(z,c_\mathcal{S})\ell^{proto}(z) + (1-\beta)\ell^{lin}(z)$ 输出 logits,总损失 $\mathcal{L} = \mathcal{L}_{FM} + \lambda_{cls}\mathcal{L}_{CE}$。步骤七:推理时重新用 support set 算 prototype 与 $c_\mathcal{S}$,query 用 NFE=3 的 Euler 求解器积分后分类。

技术新颖性

技术新颖性体现在三个层面:第一,把'流匹配'从数据空间的生成任务迁移到'frozen feature → class prototype'的特征空间适配,这是首个把 Riemannian flow matching 用在 few-shot adaptation 上的工作(区别于 [19,40] 等仍停留在 Euclidean 的 ODE-based feature refinement);第二,提出 dual-level 自适应门控:branch gate $g$ 控制 flow matching 损失项与分类器分支,$\beta$ 控制 prototype head 与 linear head 的混合,二者都以 $(z, c_\mathcal{S})$ 为条件,可逐样本切换;第三,给出 Proposition 1 的 interior-stability 保证(每个 ODE 步后用 $\Pi_\varepsilon$ 投影到闭球内),把'双曲边界爆炸'这种常见数值风险用归纳法证掉,Proposition 2 进一步说明 origin-chart 内的 FM 损失仍保持 standard regression consistency。

Overview of the proposed MC-RFM architecture.
Figure 1: Overview of the proposed MC-RFM architecture.
Detailed task context encoder.
Figure 2: Detailed task context encoder.
Detailed task-conditioned vector field.
Figure 3: Detailed task-conditioned vector field.

实验结果

在 7 个数据集、5 个 backbone、3 档 shot 上,MC-RFM 在多数设定下优于 Euclidean-only 与 Hyperbolic-only 两个受控基线。具体到表 1 的 4-shot 设置:FGVC-Aircraft 上 ViT-B/16 从 Euclidean 12.92%、Hyperbolic-only 11.06% 提升到 13.15%($\Delta=+0.23$);EuroSAT 上 ViT-B/16 从 61.33%、62.06% 提升到 63.76%($\Delta=+1.70$);Food-101 上 ResNet-50 从 31.18%、26.00% 提升到 32.77%($\Delta=+1.59$);Flowers102 上 ViT-B/16 从 95.52%、94.20% 提升到 95.63%($\Delta=+0.11$);CIFAR-100 ResNet-50 上 $\Delta=-0.04$ 几乎平手,全文最大正负贡献分别约 +2% 和 -3.07%。整体趋势有三:(1) Transformer 类骨干(ViT、DeiT、Swin)在 75% 的设定上超越最强基线,卷积骨干(ResNet-50、ConvNeXt)只 45%,存在结构性差异;(2) 按任务分,细粒度+高层级组(FGVC-Aircraft、Flowers102、Food-101)的正贡献率最高,Transformer 上达 83.33%(20/24),scene/texture(DTD、EuroSAT)次之 72%,粗粒度(CIFAR-10/100)最低 66.66%;(3) 1-shot 时 MC-RFM 仍有 64.28% 正贡献,Transformer 上 80.95%,16-shot 上卷积模型在细粒度任务才显著获益(83%)。表 2 的 ablation 显示交叉熵项贡献最大(-5.6 pp),混合曲率头替换为纯 linear 损失 -2.4 pp、纯 prototype 损失 -1.5 pp,去掉 branch gate / β / prototype shrinkage / task context 各损失 0.8–1.3 pp;Figure 4 的敏感性测试显示曲率和 NFE 改动几乎不影响性能,维度分配 $d_h/d_e = 192/64$ 反而一致掉点(最大 -6.06 pp),说明'紧凑双曲子空间 + 大欧氏子空间'是最优设计。

Main 4-shot results on representative frozen backbones.
Table 1: Main 4-shot results on representative frozen backbones.
Component ablation summary for MC-RFM in the 4-shot setting.
Table 2: Component ablation summary for MC-RFM in the 4-shot setting.
Sensitivity ablations of MC-RFM in the 4-shot setting.
Figure 4: Sensitivity ablations of MC-RFM in the 4-shot setting.
查看结构化数据
任务指标本文基线提升
CIFAR-10, ResNet-50, 4-shot Top-1 Accuracy (%) 64.19 ± 1.27 Euclidean 63.19 ± 1.12 / Hyperbolic-only 63.88 ± 0.99 +0.31 vs 最强基线(Δ=+0.31)
CIFAR-10, ViT-B/16, 4-shot Top-1 Accuracy (%) 81.28 ± 3.11 Euclidean 78.20 ± 3.16 / Hyperbolic-only 81.24 ± 2.93 +0.04 vs 最强基线(Δ=+0.04)
EuroSAT, ViT-B/16, 4-shot Top-1 Accuracy (%) 63.76 ± 4.68 Euclidean 61.33 ± 3.79 / Hyperbolic-only 62.06 ± 3.42 +1.70 vs 最强基线(Δ=+1.70,全文较大单点提升)
FGVC-Aircraft, ViT-B/16, 4-shot Top-1 Accuracy (%) 13.15 ± 1.02 Euclidean 12.92 ± 1.04 / Hyperbolic-only 11.06 ± 0.57 +0.23 vs 最强基线(Δ=+0.23)
Flowers102, ViT-B/16, 4-shot Top-1 Accuracy (%) 95.63 ± 0.35 Euclidean 95.52 ± 0.33 / Hyperbolic-only 94.20 ± 0.42 +0.11 vs 最强基线(Δ=+0.11)
Food-101, ResNet-50, 4-shot Top-1 Accuracy (%) 32.77 ± 0.49 Euclidean 31.18 ± 0.49 / Hyperbolic-only 26.00 ± 0.63 +1.59 vs 最强基线(Δ=+1.59)
CIFAR-100, ResNet-50, 4-shot Top-1 Accuracy (%) 38.47 ± 1.13 Euclidean 38.51 ± 1.21 / Hyperbolic-only 35.68 ± 0.68 −0.04 vs Euclidean(Δ=−0.04,几乎平手)

局限与改进

作者明确承认三点局限:(1) 当下游类已经分得很开、或任务本质上是欧氏的,简单变体就能竞争,混合几何带来的边际收益有限;(2) 依赖 support-set prototype,极端 1-shot 场景下 prototype 噪声大,纯 prototype transport 会变脆;(3) 引入双曲特有的超参(曲率 $c$、特征尺度 $\alpha_h$、维度分配 $d_h/d_e$),需要一些调参经验。从我的视角补充两个观察:第一,Figure 4 的 $d_h/d_e = 192/64$ 配置在 Food-101-RN50 上掉点 -6.06 pp,说明'双曲容量过载'反而破坏欧氏支的判别能力,目前缺乏自动选择 $d_h/d_e$ 的机制;第二,branch gate 只调制 loss 和分类器权重,并未真正切换不同 ODE 架构,文中自承'current gate does not yet route through different ODE architectures',意味着若双曲/欧氏需要完全不同的积分路径,现有方法无法支持;第三,论文报告均值提升约 1%,最大 +2%,但 CIFAR-100、CIFAR-10 上多个 (backbone, shot) 单元是负贡献(最大 -3.07%),说明并非通用涨点,需要根据任务类型选择使用。

独立分析的弱点

独立分析后我认为有四个可改进点:(1) 超参敏感性——$d_h/d_e$、曲率 $c$、shrinkage 系数 $\tau$、warmup $w_h(t)$ 都是手工设定的,Figure 4 显示 $d_h/d_e = 192/64$ 一致掉点,改进方向是引入可学习维度分配(如 AutoML 风格路由)或基于任务统计数据自适应;(2) branch gate 粒度太粗——目前 $g$ 只在 loss 加权和分类器混合两个层面起作用,没有路由到不同 ODE 子结构,改进方向是设计 multi-expert ODE 架构,让 gate 真正切换不同积分路径;(3) prototype noise 在 1-shot 没解决——作者承认原型在 1-shot 时噪声大,但仅靠 shrinkage 不够,改进方向可以引入 prototype 的不确定性估计(如贝叶斯化)或用 data-dependent 的局部 prototype 而非全局均值;(4) 缺乏跨任务迁移——adapter 是每个 task 单独训练的,没有 meta-learning 阶段,shot 数越低越吃亏,改进方向是引入 episode-level meta-training 让 adapter 学会'如何在 N-shot 下生成稳定的 prototype'。

未来方向

作者在文中给出几个方向:(a) 把 mixed-curvature transport 推广到 dense prediction(检测、分割)而不只是分类;(b) 探索与 hyperbolic/Euclidean retrieval 系统的结合;(c) 研究 gate 与 ODE 结构的更深耦合。基于此我可以再延伸:(i) 把 MC-RFM 与 Adapter/LoRA 等 PEFT 范式正交结合——适配器更新 backbone 残差,RFM 在适配器输出上再做几何传输,可能在 ConvNeXt 等卷积骨干上把 45% 正贡献率拉到 70% 以上;(ii) 把 flow matching 路径换成更优的概率路径(如 Riemannian optimal transport 的 displacement interpolation),缩短 geodesic 长度的同时保留层级语义;(iii) 探索文本/多模态 backbone(CLIP、BLIP)上的 MC-RFM,因为这些 backbone 的特征天然更接近双曲结构;(iv) 引入 ODE neural process 框架,让 task context $c_\mathcal{S}$ 通过 latent variable 形式采样以应对小 support set 的高方差。

复现评估

复现性总体良好。论文明确给出实验配置:单个 NVIDIA RTX 6000 Ada (49GB) + 两张 RTX 5000 (32GB),Intel Xeon w5-3435X,3 个 seed {42,43,44},固定 support 索引、deterministic PyTorch;AdamW, lr=5e-4, weight_decay=1e-4, batch=64, 5 warm-up epoch + cosine decay, grad clip 1.0, Euler 求解器 NFE=3, 50 epoch;backbones 全部冻结,特征缓存到磁盘。代码已开源(https://github.com/salimkhazem/MC-RFM)。复现难度中等偏低:单卡 49GB 显存足够,但因为涉及 Poincaré ball 投影、Flow Matching ODE、prototype shrinkage 等多个组件,自行实现容易踩'边界爆炸'坑;建议优先用作者开源代码再用本文超参;Appendix A 还提供训练和推理细节。唯一不透明之处是 task context encoder 内部 attention pooling 的具体 token 数与 head 数,需要从代码核对。