ICLR2025|MIM‑Refiner:利用预训练掩码图像建模中间表征提升对比学习

文章目录

  • [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 主要贡献

  1. 发现MAE的encoder中存在两种模式,一部分模块主要服务预训练重建目标,另一部分模块负责完成抽象语义提取。
  2. 利用ID实例判别的方法改进MAE的encoder后三分之一层,增强encoder的表征质量。

3 创新点

  1. 基于最近邻的对比学习思路,提出最近邻对齐(NNA)方法,NNA 只对正样本使用最近邻对齐,负样本直接使用当前批次样本。
  2. 首次清晰揭示 MIM 模型内部存在功能不同的模块。

4 方法

4.1 encoder中block的模式

在encoder的不同层后面接入对应的不同任务头,冻结encoder参数。

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

编码器模块可以分为三种工作状态:

  1. 早期模块:学习通用基础特征,重建损失与 k‑NN 分类准确率同步得到改善;
  2. 中间模块:完成语义抽象;重建损失提升幅度很小,但 k‑NN 准确率大幅提升;
  3. 后期模块 :特征服务重建任务;重建损失快速下降,但 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 个人声明

本文为作者对原论文的学习笔记与心得分享,受个人学识与理解所限,文中对论文内容的解读或有不够周全之处,一切以原论文正式表述为准。本文仅用于学术交流与传播,内容均由作者独立整理完成,如文中所涉文字、图片等内容存在版权争议,请及时与作者联系,作者将在第一时间核实并妥善处理

相关推荐
Young Doro1 小时前
从 KSG 到 InfoAtlas:互信息估计完整学习册
学习
Be for thing1 小时前
PyCharm安装与PyTorch项目配置|Jupyter Notebook与PyCharm使用对比
pytorch·学习·1024程序员节
java_nnnn3 小时前
Linux 学习第二篇:从零认识 Linux 文件系统、目录结构与基本命令
linux·运维·学习·1024程序员节
東隅已逝,桑榆非晚3 小时前
搜索二叉树
c++·笔记·学习·1024程序员节
Young Doro13 小时前
独立性检测学习任务
人工智能·学习·数据挖掘
卡卡~~15 小时前
“101计划”核心课程实践教材《数据实验结构指导-C++语言版》题目集
开发语言·c++·学习·算法
lengxuenong16 小时前
树状数组 · 信息学学习手册1-求和3个模板
c++·学习·算法·青少年编程
lanxiaoqing0216 小时前
演讲训练的第一步:先敢说,再会说
人工智能·学习·学习方法·口才