ICLR 2023 Oral | Batch Norm层等暴露TTA短板,开放环境下解决方案来了(1)

简介: ICLR 2023 Oral | Batch Norm层等暴露TTA短板,开放环境下解决方案来了


测试时自适应(Test-Time Adaptation, TTA)方法在测试阶段指导模型进行快速无监督 / 自监督学习,是当前用于提升深度模型分布外泛化能力的一种强有效工具。 然而在动态开放场景中,稳定性不足仍是现有 TTA 方法的一大短板,严重阻碍了其实际部署。 为此,来自华南理工大学、腾讯 AI Lab 及新加坡国立大学的研究团队,从统一的角度对现有 TTA 方法在动态场景下不稳定原因进行分析,指出依赖于 Batch 的归一化层是导致不稳定的关键原因之一,另外测试数据流中某些具有噪声 / 大规模梯度的样本容易将模型优化至退化的平凡解。 基于此进一步提出锐度敏感且可靠的测试时熵最小化方法 SAR,实现动态开放场景下稳定、高效的测试时模型在线迁移泛化。 本工作已入选 ICLR 2023 Oral (Top-5% among accepted papers)。




什么是 Test-Time Adaptation?

传统机器学习技术通常在预先收集好的大量训练数据上进行学习,之后固定模型进行推理预测。这种范式在测试与训练数据来自相同数据分布时,往往取得十分优异的表现。但在实际应用中,测试数据的分布很容易偏离原始训练数据的分布(distribution shift),例如在采集测试数据的时候:1)天气的变化使得图像中包含有雨雪、雾的遮挡;2)由于拍摄不当使得图像模糊,或传感器退化导致图像中包含噪声;3)模型基于北方城市采集数据进行训练,却被部署到了南方城市。以上种种情况十分常见,但对于深度模型而言往往是很致命的,因为在这些场景下其性能可能会大幅下降,严重制约了其在现实世界中(尤其是类似于自动驾驶等高风险应用)的广泛部署。

图 1 Test-Time Adaptation 示意图(参考 [5])及其与现有方法特点对比

不同于传统机器学习范式,如图 1 所示在测试样本到来后,Test-Time Adaptation (TTA) 首先基于该数据利用自监督或无监督的方式对模型进行精细化微调,而后再使用更新后的模型做出最终预测。典型的自 / 无监督学习目标包括:旋转预测、对比学习、熵最小化等等。这些方法均展现出了优异的分布外泛化(Out-of-Distribution Generalization)性能。相较于传统的 Fine-Tuning 以及 Unsupervised Domain Adaptation 方法,Test-Time Adaptation 能够做到在线迁移,效率更高也更加普适。另外完全测试时适应方法 [2] 其可以针对任意预训练模型进行适应,无需原始训练数据也无需干涉模型原始的训练过程。以上优点极大增强了 TTA 方法的现实通用性,再加上其展现出来的优异性能,使得 TTA 成为迁移、泛化等相关领域极为热点的研究方向。

为什么要 Wild Test-Time Adaptation?

尽管现有 TTA 方法在分布外泛化方面已表现出了极大的潜力,但这种优异的性能往往是在一些特定的测试条件下所获得的,例如测试数据流在一段时间内的样本均来自于同一种分布偏移类型、测试样本的真实类别分布是均匀且随机的,以及每次需要有一个 mini-batch 的样本后才可以进行适应。但事实上,以上这些潜在假设在现实开放世界中是很难被一直满足的。在实际中,测试数据流可能以任意的组合方式到来,而理想情况下模型不应对测试数据流的到来形式做出任何假设。如图 2 所示,测试数据流完全可能遇到:(a)样本来自不同的分布偏移(即混合样本偏移);(b)样本 batch size 非常小(甚至为 1);(c)样本在一段时间内的真实类别分布是不均衡的且会动态变化的。本文将上述场景下的 TTA 统称为 Wild TTA。但不幸的是,现有 TTA 方法在这些 Wild 场景下经常会表现得十分脆弱、不稳定,迁移性能有限,甚至可能损坏原始模型的性能。因此,若想真正实现 TTA 方法在实际场景中的大范围、深度化应用部署,则解决 Wild TTA 问题即是其中不可避免的重要一环。

图 2 模型测试时自适应中的动态开放场景

解决思路与技术方案

本文从统一角度对 TTA 在众多 Wild 场景下失败原因进行分析,进而给出解决方案。

1. 为何 Wild TTA 会不稳定?

(1)Batch Normalization (BN) 是导致动态场景下 TTA 不稳定的关键原因之一:现有 TTA 方法通常是建立在 BN 统计量自适应基础之上的,即使用测试数据来计算 BN 层中的均值及标准差。然而,在 3 种实际动态场景中,BN 层内的统计量估计准确性均会出现偏差,从而引发不稳定的 TTA:

  • 场景(a):由于 BN 的统计量实际上代表了某一种测试数据分布,使用一组统计量参数同时估计多个分布不可避免会获得有限的性能,参见图 3;
  • 场景(b):BN 的统计量依赖于 batch size 大小,在小 batch size 样本上很难得到准确的 BN 的统计量估计,参见图 4;
  • 场景(c):非均衡标签分布的样本会导致 BN 层内统计量存在偏差,即统计量偏向某一特定类别(该 batch 中占比较大的类别),参见图 5;


为进一步验证上述分析,本文考虑 3 种广泛应用的模型(搭载不同的 Batch\Layer\Group Norm),基于两种代表性 TTA 方法(TTT [1] 和 Tent [2])进行分析验证。最终得出结论为:batch 无关的 Norm 层(Group 和 Layer Norm)一定程度上规避了 Batch Norm 局限性,更适合在动态开放场景中执行 TTA,其稳定性也更高。因此,本文也将基于搭载 Group\Layer Norm 的模型进行方法设计。

图 3 不同方法和模型(不同归一化层)在混合分布偏移下性能表现

图 4 不同方法和模型(不同归一化层)在不同 batch size 下性能表现。图中阴影区域表示该模型性能的标准差,ResNet50-BN 和 ResNet50-GN 的标准差过小导致在图中不显著(下图同)

图 5 不同方法和模型(不同归一化层)在在线不平衡标签分布偏移下性能表现,图中横轴 Imbalance Ratio 越大代表的标签不平衡程度越严重

(2)在线熵最小化易将模型优化至退化的平凡解,即将任意样本预测到同一个类:根据图 6 (a) 和 (b) 显示,在分布偏移程度严重(level 5)时,在线自适应过程中突然出现了模型退化崩溃现象,即所有样本(真实类别不同)被预测到同一类;同时,模型梯度的 范数在模型崩溃前后快速增大而后降至几乎为 0,见图 6(c),侧面说明可能是某些大尺度 / 噪声梯度破坏了模型参数,进而导致模型崩溃。

图 6 在线测试时熵最小化中的失败案例分析


相关文章
|
16天前
|
机器学习/深度学习 自然语言处理 物联网
NeurIPS 2024 Oral:小参数,大作为!揭秘非对称 LoRA 架构的高效性能
近期,一篇题为《\model~: 非对称LoRA架构实现高效微调》的论文被NeurIPS 2024接收为口头报告,该研究提出了一种创新的非对称LoRA架构,旨在解决大型语言模型(LLMs)在保持高性能的同时提高训练和部署效率的问题。通过引入共享A矩阵和多个B矩阵,\model~不仅提高了参数效率,还在多个数据集上展示了超越现有PEFT方法的性能,尤其是在多任务域和复杂数据集上的表现尤为突出。此架构还有效减少了训练能耗和延迟,为LLMs的高效应用提供了新思路。
21 4
|
5月前
|
缓存 人工智能
字节跳动、浙大推出Coin3D:用几何代理,控制3D模型生成
【7月更文挑战第29天】字节跳动与浙江大学合作开发了Coin3D框架,利用几何代理实现3D模型生成的精确控制与交互。该框架通过3D适配器、代理限制编辑策略、渐进式体积缓存及体积-SDS等技术,支持用户实时调整3D模型的全局与局部特征。实验表明,Coin3D在保证高质量的同时,显著提升了生成过程的灵活性与可控性。[论文](https://arxiv.org/abs/2405.08054)
75 5
|
7月前
|
机器学习/深度学习 存储 数据可视化
【AAAI2024】M2SD:通过特征空间预构建策略重塑小样本类增量学习
小样本类增量学习代表了机器学习领域中一个高度挑战性的议题,其核心目标在于能够在仅有限的数据支持下识别新类别,同时保留对已学习类别的认知,而无须重新训练整个模型。这一目标在模型需适应新类别的同时使用有限训练数据的情况下尤为艰巨。针对上述挑战,我们提出了一种创新性策略,称为多重混合自蒸馏。旨在为类增量学习阶段准备一个具有高度可扩展性和包容性的特征空间。
|
7月前
|
机器学习/深度学习 编解码 数据可视化
即插即用 | 清华大学提出Focused Linear Attention取代Self-Attention成为ViT的新宠
即插即用 | 清华大学提出Focused Linear Attention取代Self-Attention成为ViT的新宠
253 0
|
7月前
|
存储 机器学习/深度学习 人工智能
极智AI | 从部署的角度看bn和in算子
本文介绍一下从部署角度来看 bn 和 in 的实现与对比。
134 1
|
7月前
|
人工智能 PyTorch 算法框架/工具
极智AI | 讲解TensorRT怎么实现torch.select层
大家好,我是极智视界,本文讲解一下 TensorRT 实现 torch.select 层。
108 0
|
7月前
|
存储 人工智能 PyTorch
极智AI | 谈谈caffe的bn和scale算子
本文聊一聊 caffe 的 bn 和 scale 算子。
112 0
|
数据可视化 算法 流计算
ICLR 2023 Oral | Batch Norm层等暴露TTA短板,开放环境下解决方案来了(2)
ICLR 2023 Oral | Batch Norm层等暴露TTA短板,开放环境下解决方案来了
168 0
|
机器学习/深度学习 编解码 自然语言处理
超简单高效方法 | 谷歌提出MOAT Backbone,base+tiny版本实现全方位超越(一)
超简单高效方法 | 谷歌提出MOAT Backbone,base+tiny版本实现全方位超越(一)
101 0
|
计算机视觉
超简单高效方法 | 谷歌提出MOAT Backbone,base+tiny版本实现全方位超越(二)
超简单高效方法 | 谷歌提出MOAT Backbone,base+tiny版本实现全方位超越(二)
147 0