引言

在计算机视觉领域,Vision Transformer (ViT) 已然成为当前的霸主。通过在 ImageNet 等海量数据集上进行预训练,ViT 学会了识别从金毛寻回犬到跑车等各种事物,准确率惊人。但这里有个问题: 这些模型非常“数据饥渴”。当你尝试将预训练的 ViT 应用于专门的下游任务——比如检测胸部 X 光片中的罕见疾病或分类农作物害虫——而你只有极少量的训练样本时,模型往往会表现挣扎。

这种场景被称为跨域少样本学习 (Cross-Domain Few-Shot Learning, CDFSL) 。 挑战是双重的: 不仅数据稀缺 (少样本) ,而且新领域与原始训练数据截然不同 (跨域) 。

我们如何弥合训练于狗狗照片的模型与涉及卫星图像的任务之间的差距?一篇题为 《Revisiting Continuity of Image Tokens for Cross-Domain Few-shot Learning》 的研究论文提出了一个违反直觉的解决方案: 破坏图像。

研究人员发现,在训练过程中故意破坏图像的“连续性”——打乱 Patch (图块) 顺序或扰乱其纹理——实际上有助于模型更好地泛化到遥远的领域。在这篇博客文章中,我们将拆解这个迷人的现象,解释为什么“破坏”图像会有所帮助,并详细介绍作者提出的 ReCIT 方法。

连续性的奥秘

要理解这篇论文的贡献,我们首先需要了解 Vision Transformer 是如何观察世界的。与在图像上滑动窗口的卷积神经网络 (CNN) 不同,ViT 将图像切割成固定大小的正方形,称为“Patch” (或 Token) 。这些 Token 以序列的形式输入到模型中。

通常,我们认为这些像素的顺序和平滑度 (连续性) 非常重要。毕竟,一只狗的定义是从鼻子到口鼻再到耳朵的平滑过渡。

然而,研究人员偶然发现了一个奇怪的现象。他们尝试通过打乱 Patch 或干扰其频率分量来破坏这种连续性。

四种用于破坏图像 Token 连续性的方法。

如上图 Figure 1 (a) 所示,他们测试了四种策略:

  1. Remove Pos (移除位置编码): 移除告诉模型哪个 Patch在哪里的位置嵌入。
  2. Shuffle Patches (打乱 Patch): 随机打乱图像 Patch 的网格。
  3. Shuffle Patch Amplitude (打乱 Patch 幅度): 在频域中交换“风格” (幅度) 信息。
  4. Shuffle Patch Phase (打乱 Patch 相位): 交换“结构” (相位) 信息。

结果: 请看 Figure 1 (b) 。 灰色条代表源域 (ImageNet 风格的数据) 。当连续性被破坏时,性能显着下降。这很有道理;如果你把一只狗打乱了,它就更难识别了。

但是请看目标域 (橙色条) 。 性能几乎没有下降。在某些情况下,破坏连续性对模型处理下游任务的能力几乎没有任何负面影响

这就引出了一个关键问题: 如果连续性对源域如此重要,为什么它对目标域似乎无关紧要?

解释现象: 大模式与小模式

为了解开这个谜团,我们需要看看模型实际上在学习什么样的特征。

作者假设连续性有助于模型学习大型空间模式 。 想象一下鱼的整体形状或汽车的轮廓。这些模式需要跨越许多 Patch 的平滑过渡。当你打乱 Patch 时,你就破坏了这些大模式。

然而, 小模式——完全包含在单个 Patch 内部的特征,如鳞片的纹理或眼睛的曲线——即使在 Patch 被打乱后仍然保持完整。

解释模式识别的被破坏的鱼类图像示例。

正如 Figure 3 所示,即使鱼的图像被打乱,你仍然可以识别出 Patch 内部的各个部分,如鳍和眼睛。

领域差距的关联

这里有一个重要的洞察: 大型空间模式 (比如金毛寻回犬的形状) 很少能迁移到遥远的领域 (比如 X 光片或卫星地图) 。 肺部阴影看起来一点也不像狗的耳朵。

然而, 较小的模式 (边缘、纹理、局部梯度) 则更加通用。皮毛的纹理在数学上可能与卫星图像中森林的纹理有相似之处。

当研究人员破坏连续性时,他们迫使模型停止依赖大型的、不可迁移的模式,转而专注于 Patch 内部较小的、可迁移的模式。这就解释了为什么源域性能下降 (它失去了它所依赖的大模式) ,而目标域性能保持稳定 (它本身就依赖小模式) 。

伪 Patch 大小与性能及域相似度的关系。

Figure 4 证实了这一点。研究人员将图像分成大小递减的“伪 Patch”。

  • 图表 (a): 随着 Patch 变小 (破坏了更多的连续性) ,性能下降。
  • 图表 (b): 然而, 域相似度 (由 CKA 衡量,一种特征相似度指标) 实际上增加了。

通过破坏图像,源域的模型表示变得与目标域更相似,因为两者现在都由局部的纹理特征而非全局形状来表示。

方法: ReCIT

基于这些发现,作者提出了 ReCIT (Revisiting Continuity of Image Tokens,重访图像 Token 连续性) 。 其目标是设计一个训练流程,故意破坏连续性,以迫使模型学习这些鲁棒的、可迁移的小模式。

该方法主要包括两个步骤: 预热阶段的空间域破坏均衡的频域破坏

展示两个破坏步骤的 ReCIT 方法图解。

第一步: 预热阶段的空间域破坏

由于预训练的 ViT 习惯于看到完美的图像,立即向它们展示完全混乱的噪声可能会使训练变得困难。作者引入了一个“预热”阶段。

在这一步中,图像被分成随机数量的 Patch,然后这些 Patch 被打乱。这在 Figure 5 的上方分支中直观地表现出来。

在数学上,输入序列 \(z_0\) 被改变了。我们输入的不再是按顺序排列的 Patch 流,而是一个打乱的序列:

\[ z _ { 0 } = \Big [ x _ { \mathrm { c l a s s } } ; x _ { p } ^ { 1 ^ { \prime } } E ; x _ { p } ^ { 2 ^ { \prime } } E ; \cdot \cdot \cdot ; x _ { p } ^ { L ^ { \prime } } E \Big ] + E _ { \mathrm { p o s } } , \]
  • (注意: 撇号符号 \(x'\) 表示打乱后的顺序。) *

这迫使模型开始关注 Patch 内部的内容,而不仅仅是它们的邻居。

第二步: 均衡的频域破坏

第二步更加精细。研究人员发现仅仅打乱 Patch 是不够的。他们希望进一步破坏“风格”和“纹理”的连续性。为此,他们利用傅里叶变换 (FFT) 转向了频域

在图像处理中,傅里叶频谱的幅度 (Amplitude) 通常包含风格/纹理信息,而相位 (Phase) 包含空间结构 (形状) 。通过打乱幅度,你可以混合纹理,同时保持几何形状在某种程度上的完整。

然而,简单的打乱并不总是有效的。如果你有一张海洋中水母的图像,大多数 Patch 只是深色的水。将一个“深色水域”的幅度换成另一个“深色水域”的幅度并不会破坏任何东西。

为了解决这个问题,ReCIT 使用了均衡聚类 (Balanced Clustering)

1. Patch 聚类

首先,该方法将外观相似的 Patch 分组。它计算 Patch 之间的余弦相似度:

\[ c o s ( x _ { p } ^ { i } , x _ { p } ^ { j } ) = \frac { x _ { p } ^ { i } \cdot x _ { p } ^ { j } } { | | x _ { p } ^ { i } | | \cdot | | x _ { p } ^ { j } | | } , \]

相似的 Patch (例如所有的水 Patch) 被归为一个聚类 \(Cluster_{x_p^i}\):

\[ C l u s t e r _ { x _ { p } ^ { i } } = \{ x _ { p } ^ { j } \mid c o s ( x _ { p } ^ { i } , x _ { p } ^ { j } ) \geq s i m , x _ { p } ^ { j } \in x _ { p } \} , \]

2. 建模幅度分布

聚类完成后,算法会查看这些 Patch 的幅度 (\(A\))。它将每个聚类中的幅度分布建模为高斯分布 (由均值 \(\mu\) 和方差 \(\sigma\) 定义) :

\[ \begin{array} { l l } { \displaystyle \mu ( C l u s t e r _ { A _ { p } ^ { i } } ) = \frac { 1 } { M _ { i } } \sum _ { j = 1 } ^ { M _ { i } } A _ { p } ^ { j } , \quad } & { { A } _ { p } ^ { j } \in C l u s t e r _ { A _ { p } ^ { i } } , } \\ { \displaystyle \sigma ( C l u s t e r _ { A _ { p } ^ { i } } ) = \frac { 1 } { M _ { i } } \sum _ { j = 1 } ^ { M _ { i } } \left[ A _ { p } ^ { j } - \mu ( C l u s t e r _ { A _ { p } ^ { i } } ) \right] ^ { 2 } , } \end{array} \]

3. 均衡重组

最后,模型生成新的幅度。它不是简单地挑选现有的幅度,而是从这些分布中采样。至关重要的是,它平衡了采样,使得稀有的纹理 (像水母触手) 相对于它们的大小有更高的概率被选中,从而确保了破坏的多样性。

新的幅度 \(\mathcal{A}_p^j\) 是通过不同聚类样本的加权和构建的:

\[ \begin{array} { l } { { \displaystyle { \cal A } _ { p } ^ { j } = \sum _ { i = 1 } ^ { N } p _ { A _ { p } ^ { i } } * \epsilon _ { C l u s t e r _ { A _ { p } ^ { i } } } , } } \\ { { \displaystyle p _ { A _ { p } ^ { i } } = \frac { \epsilon _ { p r o _ { A _ { p } ^ { i } } } } { \sum _ { i = 1 } ^ { N } \epsilon _ { p r o _ { A _ { p } ^ { i } } } } , \epsilon _ { p r o _ { A _ { p } ^ { i } } } \sim N ( 0 , \alpha ) } } \end{array} \]

这创建了一组新的 Token,它们在统计上是多样化的,并且没有原始的平滑连续性,从而迫使 ViT 学习极其鲁棒的局部特征。

实验与结果

这个理论在实践中站得住脚吗?研究人员在四个具有挑战性的目标域上测试了 ReCIT,并使用 miniImageNet 作为源域。

目标数据集的样本。

Figure 10 所示,目标域与标准照片截然不同:

  • CropDiseases: 树叶的特写。
  • EuroSAT: 航空地形视图。
  • ISIC2018: 皮肤病变。
  • ChestX: X 光成像。

定量性能

结果与跨域少样本学习中的最先进 (SOTA) 方法进行了比较。

Table 1: 与 SOTA 方法的比较。

观察 Table 1 , ReCIT (Ours) 在所有方面都实现了最高的平均准确率。

  • 5-shot 设置中 (模型每类看到 5 个示例) ,ReCIT 达到了 68.06% 的准确率 , 优于之前的方法,如 StyleAdv 和掩码自编码器方法。
  • 在纹理比形状更重要的“困难”领域,收益尤为显著。

提高域相似度

作者还验证了他们的核心假设: 这种方法实际上是否让源域和目标域对模型来说看起来更相似?

域相似度和标准差图表。

Figure 7 (b) 展示了 CKA 域相似度 。 灰色条是基线。橙色条代表 ReCIT。在所有数据集上,ReCIT 都增加了源域表示和目标域表示之间的相似度。这证实了通过破坏连续性,模型学习到了更通用的特征。

可视化影响

数字固然重要,但眼见为实。作者使用注意力图来可视化模型正在关注什么。

基线和 ReCIT 之间的热力图比较。

Figure 8 中,比较 Baseline (中间列) 与 Ours (右侧列) 。

  • Baseline: 注意力通常集中在一个大的区域。它在寻找一个“形状”。
  • ReCIT: 注意力是分散的。模型正在观察散布在图像上的多个小细节——皮肤病变的边缘、叶子上的特定纹理,或卫星视图中的各种建筑物。

这种“分散”的注意力证明,模型已经学会识别小的、局部的模式,而不是依赖单一的大物体,这使得它在迁移到“大物体”完全不同的新领域时更加鲁棒。

结论

论文《Revisiting Continuity of Image Tokens》为迁移学习提供了一个令人耳目一新的视角。它挑战了“保持训练图像完整性总是最好的”这一假设。

主要收获:

  1. 连续性是一根拐杖: 对于源域 (如 ImageNet) ,连续性有助于识别大物体。但对于跨域泛化,这种对大物体的依赖变成了弱点。
  2. 小模式最易迁移: 局部纹理和梯度比全局形状更通用。
  3. 不破不立: 通过使用 ReCIT (空间打乱和频率平衡) 智能地破坏图像连续性,我们可以迫使 Vision Transformer 学习这些鲁棒的、可迁移的特征。

这项研究为医学和农业等专业领域的高效 AI 铺平了道路,证明了有时为了构建得更好,你必须先把东西打破。