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范围内。具体提出三种实现方案,可在训练阶段或推理阶段灵活应用。
关键设计¶
-
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范围不超过零样本基线,从而保持校准特性
-
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
-
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方案实用性强
相关论文¶
- [ECCV 2024] MarvelOVD: Marrying Object Recognition and Vision-Language Models for Robust Open-Vocabulary Object Detection
- [ECCV 2024] Vary: Scaling up the Vision Vocabulary for Large Vision-Language Models
- [ECCV 2024] Attention Prompting on Image for Large Vision-Language Models
- [ECCV 2024] SQ-LLaVA: Self-Questioning for Large Vision-Language Assistant
- [ECCV 2024] NavGPT-2: Unleashing Navigational Reasoning Capability for Large Vision-Language Models