文章目录
- [1 论文信息](#1 论文信息)
- [2 主要贡献](#2 主要贡献)
- [3 创新点](#3 创新点)
- [4 方法](#4 方法)
-
- [4.1 encoder中block的模式](#4.1 encoder中block的模式)
- [4.2 NNA](#4.2 NNA)
- [5 实验](#5 实验)
- [6 结论](#6 结论)
- [7 个人声明](#7 个人声明)
1 论文信息
标题:MIM-REFINER: A CONTRASTIVE LEARNING BOOST
FROM INTERMEDIATE PRE-TRAINED MASKED IMAGE
MODELING REPRESENTATIONS
代码:https://github.com/ml-jku/MIM-Refiner

2 主要贡献
- 发现MAE的encoder中存在两种模式,一部分模块主要服务预训练重建目标,另一部分模块负责完成抽象语义提取。
- 利用ID实例判别的方法改进MAE的encoder后三分之一层,增强encoder的表征质量。
3 创新点
- 基于最近邻的对比学习思路,提出最近邻对齐(NNA)方法,NNA 只对正样本使用最近邻对齐,负样本直接使用当前批次样本。
- 首次清晰揭示 MIM 模型内部存在功能不同的模块。
4 方法
4.1 encoder中block的模式
在encoder的不同层后面接入对应的不同任务头,冻结encoder参数。

MAE 编码器的表征质量(以 k-NN 准确率衡量)在中间若干 block 处达到峰值,随后当靠后的 block 接管了部分解码器任务时便开始下降。多种 MIM 模型以及一个语义分割任务都遵循这一规律.


编码器模块可以分为三种工作状态:
- 早期模块:学习通用基础特征,重建损失与 k‑NN 分类准确率同步得到改善;
- 中间模块:完成语义抽象;重建损失提升幅度很小,但 k‑NN 准确率大幅提升;
- 后期模块 :特征服务重建任务;重建损失快速下降,但 k‑NN 准确率反而下降。
直接拿编码器最后模块输出做特征,拿到的是更适合重建、而不是适合下游任务的表征。如果标签充足,微调可以修复后期模块;但标签不足,或者不对后期模块做微调时,下游性能就会受损。
4.2 NNA
给定一批特征 Z = { z 1 , ... , z N } Z=\{z_{1}, \dots, z_{N}\} Z={z1,...,zN} 和队列 Q \mathcal{Q} Q,NNA 损失定义为:
L i N N A = − log exp ( N N ( z i , Q ) ⋅ z i / τ ) exp ( N N ( z i , Q ) ⋅ z i / τ ) + ∑ j = 1 N exp ( S G ( z j ) ⋅ z i / τ ) i ≠ j \mathcal{L}{i}^{\mathrm{NNA}} = -\log \frac{\exp\left(NN\left(z{i}, \mathcal{Q}\right) \cdot z_{i} / \tau\right)}{\exp\left(NN\left(z_{i}, \mathcal{Q}\right) \cdot z_{i} / \tau\right) + \sum_{j=1}^{N} \exp\left(SG\left(z_{j}\right) \cdot z_{i} / \tau\right)\lefti \\neq j\\right} LiNNA=−logexp(NN(zi,Q)⋅zi/τ)+∑j=1Nexp(SG(zj)⋅zi/τ)i=jexp(NN(zi,Q)⋅zi/τ)
其中最近邻定义为:
N N ( z i , Q ) = argmax q ∈ Q ( z i ⋅ q ) NN\left(z_{i}, \mathcal{Q}\right) = \underset{q \in \mathcal{Q}}{\operatorname{argmax}}\left(z_{i} \cdot q\right) NN(zi,Q)=q∈Qargmax(zi⋅q)
- z i z_{i} zi:锚点样本;
- N N ( z i , Q ) NN\left(z_{i}, \mathcal{Q}\right) NN(zi,Q):从队列中检索到的锚点最近邻,作为正样本;
- z j z_{j} zj:批次内负样本;
- τ \tau τ:温度系数;
- S G SG SG:停止梯度(stop-gradient)操作;
- i ≠ j \lefti \\neq j\\right i=j:艾弗森括号,当 i ≠ j i \neq j i=j 时取值为 1,当 i = j i = j i=j 时取值为 0;
- 所有向量均做 L2 归一化。
实验中,队列仅在前向传播运行,反向传播不需要;队列带来的时间开销很小。设置队列大小 65K,top‑20 检索,各规模模型单样本耗时仅有小幅上涨。

图 4:左图:不同预训练方案的对比。ID 方案只使用单个 ID 头,而 MIM 模型则借助一个轻量级解码器来训练编码器。MIM-Refiner 在预训练 MIM 编码器后三分之一的 block 上接入多个 ID 头。右图:最近邻对齐(NNA)。锚点样本被其最近邻吸引,同时被批次内其他样本排斥。该最近邻从由先前批次样本构成的先进先出队列中检索得到。
5 实验
表 1:对 data2vec 2.0(Baevski 等,20模型进行精炼的消融实验。(H、L表示模型规模的large和high,16、14表示patch size)

表 2:近期自监督学习(SSL)模型在 ImageNet-1K 上的低样本(low-shot)与特征评估。MIM-Refiner 显著优于 MIM 模型以及此前最先进的自监督学习模型。附录表 10 将这一比较扩展到更多方法,以及使用更多数据训练的模型(如 DINOv2),在这些基准上 MIM-Refiner 在部分任务中超越了 DINOv2-g。

表 6:将峰值表征所在的 block 复制到后续 block,同时把最后一个注意力/MLP 投影层的权重与偏置置为 0,可以减少所需的批归一化层数量,从而提升对更大规模分布式训练的可扩展性。该方法("Copy Blocks")在较小模型上可与多个 ID 头集成("MIM-Refiner")相媲美,但在较大模型上表现更差。


表 22:MIM-Refiner 同样能显著提升 ViT-B 模型。那些在预训练阶段就引入 ID 来改进 MIM 的方法,与 MIM-Refiner 是正交的------MIM-Refiner 的精炼过程同样能显著提升这些模型的表征质量。

6 结论
MIM‑Refiner,用于精炼已经预训练完成的 MIM 模型。观察到 MIM 模型编码器表征质量峰值出现在中间层;因此把一组实例判别头挂载到编码器后段多个模块(包含表征质量峰值层),做短时训练,提升分类、聚类、语义分割等下游任务的表征能力。
7 个人声明
本文为作者对原论文的学习笔记与心得分享,受个人学识与理解所限,文中对论文内容的解读或有不够周全之处,一切以原论文正式表述为准。本文仅用于学术交流与传播,内容均由作者独立整理完成,如文中所涉文字、图片等内容存在版权争议,请及时与作者联系,作者将在第一时间核实并妥善处理