跳转至

Robust Calibration of Large Vision-Language Adapters

会议: ECCV 2024
arXiv: 2407.13588
代码: https://github.com/Bala93/CLIPCalib (有)
领域: 多模态VLM
关键词: CLIP适配, 模型校准, 分布外泛化, logit范围约束, 不确定性估计

一句话总结

本文发现CLIP适配方法(Adapter/Prompt Learning/TTA)在OOD场景下严重损害了零样本基线的校准能力,揭示logit范围增大(而非logit范数增大)是误校准的根本原因,并提出三种简单且模型无关的logit范围约束方案(ZS-Norm、Penalty、SaLS),有效缓解误校准同时保持判别性能。

研究背景与动机

  • 领域现状: CLIP等大规模VLM通过预训练展现了强大的零样本泛化能力。为适配下游任务,社区发展了三大类方法:Prompt Learning(CoOp、CoCoOp等)、黑盒Adapter(CLIP-Adapter、TIP-Adapter等)和测试时适配(TPT)
  • 现有痛点: 这些适配方法虽然提升了判别准确率,但作者发现它们严重破坏了模型的校准能力——适配后的模型预测往往过度自信,即使预测错误时也给出高置信度。这在医疗等安全敏感领域尤其危险
  • 核心矛盾: 现有CLIP适配文献几乎完全聚焦于提升判别性能,却忽略了校准(不确定性估计的准确性)这一可靠部署的关键指标
  • 关键洞察: 前人工作(如LogitNorm)认为全监督模型误校准源于logit范数的增大,但本文通过理论推导和实验证明——在CLIP适配场景中,logit范围(max - min)的增大才是误校准的真正原因。增加常数偏移可以增大范数但不改变softmax概率,而缩放logit向量会同时增大范围和softmax概率

方法详解

整体框架

作者提出一个通用的约束优化框架:在最小化适配目标函数\(\mathcal{H}\)的同时,约束每个样本的logit值在其零样本预测的logit范围内。具体提出三种实现方案,可在训练阶段或推理阶段灵活应用。

关键设计

  1. ZS-Norm(零样本logit归一化): 在训练时对适配模型输出的logit进行重归一化,将其范围缩放到对应零样本预测的logit范围。核心公式:\(\mathbf{l}_i' = \frac{l_i^{\text{ZS-max}} - l_i^{\text{ZS-min}}}{l_i^{\text{max}} - l_i^{\text{min}}}(\mathbf{l}_i - l_i^{\text{min}}\mathbf{1}) + l_i^{\text{ZS-min}}\mathbf{1}\)。动机是直接在前向传播中强制logit范围不超过零样本基线,从而保持校准特性

  2. Penalty(显式惩罚项): 将约束转化为ReLU惩罚项添加到主损失中:\(\lambda\sum_{i}\sum_{k}(\text{ReLU}(l_{ik} - l_i^{\text{ZS-max}}) + \text{ReLU}(l_i^{\text{ZS-min}} - l_{ik}))\)。当logit值超出零样本范围时产生梯度信号进行修正。\(\lambda\)固定为10

  3. SaLS(样本自适应logit缩放): 在推理时使用ZS-Norm公式对每个测试样本的logit进行缩放。相当于一种无监督的逐样本temperature scaling,不需要额外验证集,且天然适应分布漂移。这是最简单也最有效的方案

理论支撑

  • 命题1: 对logit向量加正常数\(a\),范数增大但softmax概率不变 → 范数增大≠校准变差
  • 命题2: 对logit向量乘以\(a>1\),范围增大且最大类softmax概率增大 → 范围增大→过度自信→误校准

损失函数 / 训练策略

  • ZS-Norm和Penalty在训练时集成,修改适配过程的学习目标
  • SaLS是推理时后处理,完全不修改训练流程
  • 三种方法均与具体适配策略无关,可直接嫁接到CoOp、CLIP-Adapter、TPT等任意方法上

实验关键数据

主实验(OOD域泛化,ImageNet→4个OOD数据集平均)

方法 Backbone ACC ECE ECE改善
Zero-Shot ViT-B/16 57.15 4.78 baseline
TIP-Ad(f) ViT-B/16 25.86 63.63 +58.85↑
TIP-Ad(f)+Penalty ViT-B/16 49.23 40.98 -22.65↓
TIP-Ad(f)+SaLS ViT-B/16 25.86 44.37 -19.26↓
TaskRes ViT-B/16 58.01 7.52 +2.74↑
TaskRes+SaLS ViT-B/16 58.01 6.21 -1.31↓
CoOp+ZS-Norm ViT-B/16 58.75 4.35 -2.26↓
CoCoOp+Penalty ViT-B/16 60.20 3.89 -0.94↓

测试时适配(11个细粒度数据集,RN50)

方法 ACC ECE ECE改善
Zero-Shot 56.03 5.04 baseline
TPT 58.03 7.67 +2.63↑
TPT+SaLS 58.03 5.69 -1.98↓
C-TPT+SaLS 57.54 6.79 -0.88↓

消融实验

配置 关键指标 说明
Logit Norm约束 ECE降低有限 验证了范数非误校准主因
Logit Range约束 ECE显著降低 验证了范围是误校准主因
SaLS vs TS SaLS更优 逐样本适应优于全局温度缩放

关键发现

  • CLIP适配后logit范数实际减小了,但ECE反而增大——直接否定了"范数增大导致误校准"的传统观点
  • logit范围与ECE之间存在明显正相关
  • SaLS作为推理时后处理,在几乎所有设置下都能有效降低ECE且不损害ACC
  • Penalty方法在某些Adapter上甚至能同时提升ACC和降低ECE

亮点与洞察

  • 理论贡献突出: 通过两个命题清晰区分了logit范数和logit范围对校准的不同影响,纠正了领域内的错误认知
  • SaLS极其实用: 零成本、无需训练、模型无关的推理时方案,可直接部署到任何CLIP适配方法
  • 问题定义有价值: 首次系统性地揭示了CLIP适配方法在OOD场景下的校准退化问题

局限与展望

  • ZS-Norm在某些Adapter上反而恶化性能,说明训练时的归一化可能导致过拟合
  • 仅考虑了分类任务,未探索检测、分割等下游任务的校准
  • 假设零样本模型的校准是较优的,但在某些特殊领域零样本模型本身可能校准不佳
  • 可以探索将SaLS与其他后处理校准方法(如混合策略)结合

相关工作与启发

  • LogitNorm(ICML 2022)提出约束logit范数以改善校准,本文指出在CLIP适配场景下应约束logit范围
  • Temperature Scaling需要验证数据且为全局参数,SaLS实现了逐样本无监督的温度自适应
  • 可启发将logit范围约束应用到其他迁移学习场景(如domain adaptation)

评分

  • 新颖性: ⭐⭐⭐⭐ 理论洞察(范围vs范数)有新意,但解决方案相对简单
  • 实验充分度: ⭐⭐⭐⭐⭐ 覆盖三大类适配方法、两种backbone、两种任务设置
  • 写作质量: ⭐⭐⭐⭐⭐ 问题定义清晰、理论推导严谨、实验组织系统
  • 价值: ⭐⭐⭐⭐ 揭示了被忽视的重要问题,SaLS方案实用性强

相关论文