从NeurIPS 2022看域泛化:大规模实验分析和模型平均

2022-10-27 20:13 543 阅读 ID:450
计算机视觉论文速递
计算机视觉论文速递

Domain generalization(DG: 域泛化)一直以来都是各大顶会的热门研究方向。DA假设本文有多个个带标签的训练集(源域),这时候我们想让模型在另一个数据集上同样表现很好(目标域),但是在训练过程中根本不知道目标域是什么,这个时候如何提升模型泛化性呢?核心在于如何利用多个源域带来的丰富信息。本文对NeurIPS 2022域泛化相关的部分文章进行了总结,主要集中在实验性的发现以及一些新的观点。

  • Assaying Out-Of-Distribution Generalization in Transfer Learning
  • On the Strong Correlation Between Model Invariance and Generalization
  • Ensemble of Averages: Improving Model Selectionand Boosting Performance in Domain Generalization
  • Diverse Weight Averaging for Out-of-Distribution Generalization
  • 发现&结论

Assaying Out-Of-Distribution Generalization in Transfer Learning

Out-of-distribution 这个概念包含了很多的目标,比如模型校准,对抗性鲁棒性,algorithmic corruptions,模型特征对于分布变化的不变性。尽管有着相同的理想目标,但这些方法从未在相同的实验条件下对真实数据进行过测试。本文采集了172个涵盖上述所有目标的数据集,微调了31k个网络(包含九种网络架构)来对上述所有目标进行统一的度量,以全面的对模型鲁棒性的定义提出新的见解。本文的主要结论包含如下

  1. The many facets of out-of-distribution generalizatio. ID和OOD精度仅在特定任务上呈线性趋势。如上图所示,本文观察到另外三个设置:不规范(垂直线)、无泛化(水平线)和随机泛化(大点云)。本文没有观察到准确性和鲁棒性之间的trade-off,即更精确的模型会过度拟合不泛化的“虚假特征”。鲁棒性方法必须在许多不同的设置中进行测试。目前,似乎没有一种方法在所有的OOD设置中都是优越的。
  2. Overall classification error is the best general predictor of OOD robustness? 这里回答了本文是否能通过使用一个代理度量来预测模型的鲁棒性。本文发现准确性是OOD鲁棒性最强的预测度量,在分布中泛化良好的模型往往也更鲁棒。在额外的OOD数据评估的准确性是一个更有力的预测指标。
  3. What can we learn from other metrics beyond accuracy? 这里测试了其他的一些度量指标与模型鲁棒性的关系,比如Calibration, adversarial robustness, Corruptions等。这些指标只能为OOD鲁棒性添加少量的附加信息。Calibration似乎可以预测ID精度,但不能转移到新的分布,而对抗鲁棒性似乎不能反映对自然分布偏移的鲁棒性。Corruptions在衡量自然分布变化的鲁棒性方面用处不大,不应被用作真正的hold - OOD数据的替代品。ImageNet上游性能提供了下游健壮性的信息。然而,对ImageNet常用移位的鲁棒性并不意味着下游鲁棒性高于上游的清晰精度。
  4. The effect of augmentations, fine-tuning strategy and few-shot learning 数据增强可以提高对各种分布偏移(人为和对抗性腐蚀,OOD泛化)的准确性和鲁棒性,特别是在数据稀缺的情况下。然而,它们似乎会损害模型校准。
  1. The effect of the model architecture 上表表明Vision Transformer的扩展在迁移学习和微调场景中提高了泛化性能,同时需要更少的数据。此外,本文注意到,OOD分类误差平均最低的模型并没有显示出最低的性能差距,即,当ID和OOD精度的性能提高时,ID数据和OOD数据的性能不一定更紧密地一致。鉴于之前的工作认为,domain generalization的方法对面向对象的鲁棒性影响甚微,本文鼓励对鲁棒架构进行更多的研究。

Future works

根据这些结果,本文提出了三个需要进一步研究的关键领域。(1)在评估和提高鲁棒性方面,创建人工干涉分布是手工制作的增强和破坏分布的一种有吸引力的替代方法。高保真生成模型可以用来识别模型不健壮的特定变化轴。虽然这已经在带有标记敏感属性的公平性背景下进行了研究,但发现这种变异因素仍然是一项未解决的任务,与解纠缠和因果表征学习有关。(2)虽然对OOD性能的细粒度研究可以揭示神经网络的特定泛化特性,但在解释这些特性时应谨慎。特别是,来自对抗构造的测试集的结论不应该推广到更广泛的设置。(3)还需要更多的工作来理解体系结构中的归纳偏差是否是解决一般性分布变化的有意义的工具。虽然本文确实观察到一些特定于体系结构的性能差异,但在训练前的许多混杂因素使本文很难对这个问题得出任何明确的结论。

On the Strong Correlation Between Model Invariance and Generalization

  学习对于环境不变的特征以得到更好的泛化结果,一直以来都是Domain generalization/adaptation的重要研究课题,因此了解这泛化性和不变性两个属性之间的关系将有利于动态环境下的模型决策分析。现有的研究表明了一种正向的关系:泛化性良好的模型应该不受某些视觉因素的影响。然而,目前对泛化与不变性之间的关系缺乏定量和系统的分析。现有的大部分作品都是定性的。例如,在模型中加入旋转不变性可以提高模型的分布内(ID)分类精度;位移不变的模型对扰动具有鲁棒性。此外,现有的研究仅限于少数分布内数据集和分类器体系结构。因此,在许多其他场景中,如分布外泛化和大规模测试数据,以及其他类型的模型上,这二者的关系仍然是未知的。  

其次,本文测试了8个具有不同类型分布变化的数据集,150个模型,涵盖了从传统卷积网络到vision transformer的多种架构。最终得到了以下结论

对于各种模型,它们在分布内和分布外数据集上的准确性和不变性之间存在很强的相关性。这个发现对于无监督模型选择是有用的,因为EI不需要ground truth。具体而言,以上12张图显示了部分结果,其中展示了模型的精度(%)和旋转不变性(EI),灰度不变性(EI),之间的相关性。每个图都是从不同的ImageNet测试集上的测试中获得的。在每张图中,每个点表示一个模型,直线通过鲁棒线性拟合。每个图中的阴影区域是线性拟合的95%置信区域。可以清楚地观察到一个很强的线性关系,这里的r是pearson相关系数,ρ是spearman相关系数。

1.在各种out-of-distribution数据集上,模型的准确性和EI评分也有很强的相关性。这一观察结果可用于预测非分布数据集的模型精度,而无需访问ground truth。如上图所示,在各种OOD测试集上,模型的不变性和准确性之间的相关性也可以很明显的观测到。这里的每张图中,一个数据点对应于来自ImageNet-C的一个测试集,测试了旋转不变性(上)和灰度不变性(下)。每一行中分别使用vitv - base - patch16、ResNet-152和DenseNet-121。在所有的图中,我们观察到不变性和准确性之间存在很强的相关(皮尔逊相关r和斯皮尔曼秩相关ρ均大于0.930)。

与数据增强相比,使用更多数据的训练更有效地提高了不变性和泛化能力。如上图所示,数据增强带来的benefit使用没有使用更大量的数据来的好。

Ensemble of Averages: Improving Model Selectionand Boosting Performance in Domain Generalization

Model selection对于Domain generalization任务的的可靠性很重要,但对它的研究还不多。正如在下图中所演示的,在训练过程中,域外(OOD)性能沿着模型的优化轨迹变化很大,即使域内(IID)性能没有变化。因此,这种不稳定性损害了模型选择的可靠性,并可能在测试域数据不可用的现实设置中成为一个问题,因为它导致域内验证精度和域外测试精度之间的秩相关性很弱。而简单的模型平均就可以降低域外性能的不稳定性,使测试曲线与验证曲线具有更好的相关性,使得在优化过程中使用域内验证集进行模型选择更加可靠。

模型平均提高了域外性能的稳定性。左:使用ERM训练模型时的域内验证精度和域外测试精度。右:与左相同,不同的是,验证和测试预测是使用被优化模型的简单移动平均,沿着优化路径进行的。详细信息:这些图用于TerraIncognita数据集,域L38用作测试域,其他域用作训练/验证数据,以及ResNet-50。实线表示精度,虚线表示训练损失,最上方的虚线表示训练和所有运行期间达到的最佳精度。每种颜色表示使用不同随机种子和训练/验证分割的不同运行结果。

下图展示了在使用model ensembling的时候,model averaging也会带来稳定性的大幅度提升。

移动平均集合(EoA)(右)比单一模型(左)具有更好的域外测试性能稳定性,域内验证精度。每个集成都有6个不同的模型,它们来自独立实验,具有不同的随机种子、超参数和训练/验证分割。

超参数调整。虽然模型平均技术上需要两个超参数——平均频率和开始迭代,但通过实证分析,将频率设置为1,并将开始迭代设置为接近0,在多个数据集和架构上都能很好地工作,因此实际中基本不引入额外的超参数。

Ensemble of Averages (EoA) 指使用多个独立训练的模型(例如:具有不同的超参数和种子)。当这些模型中的每一个都是从其相应运行的移动平均模型时,我们将这个集合简称为平均模型的集合(EoA)。与对传统系综进行预测相同,EoA对输入x预测的y类由以下公式给出:

下图展示了加入ensemble之后,各个数据集性能提升的情况, 其中显示了 i)平均模型的集合(左图实线)始终优于未平均的模型集合(左图虚线); ii)平均集合持续地提高平均模型的性能(右图中大小为1的集合)

左图:在ImageNet上预训练的resnet -50中,有和没有移动平均(MA)参数的模型的集合大小(集合中的模型数量)对域外性能(平均值和标准误差)的影响。右图:以规模为1的集合(如左图所示)的表现为参考,右图显示了规模为>1的集合的百分比提高;

文中的方法在各个domain generalization数据集中的具体效果如下所示

由上表所示,SWAD和SMA之间的比较表明SWAD略好。有趣的是,传统集成和SMA的性能相似(分别为66.8%和66.5%)。最后,EoA优于所有现有结果:比ERM高出4%,SWAD(之前的SOTA)高出1:1%。在大规模的预训练模型上,提升更为明显一些。

Diverse Weight Averaging for Out-of-Distribution Generalization

  目前,DomainBed上最先进的策略是沿着训练轨迹平均获得的权重WA(Weight averaging)SWAD认为这种加权平均(WA)在OOD中是成功的,因为它找到了更平坦的损失情况的解决方案。本文展示了这种基于损失空间平坦性分析的局限性,并提供了一个新的解释来回答为什么WA在OOD中能成功。它基于WA与集成学习的相似性,对来自各种模型的预测进行平均。基于此,本文提出了WA期望误差的偏差-方差-协方差-局部分解。它包含四个术语:首先,本文显示的偏差在标签后验分布的位移下增加(即相关位移 correlation shift);其次,本文所展示的方差在输入边际分布的偏移(即多样性偏移 diversity shift )下增加;三是模型多样化时协方差减小;最后,给出了平均模型权重的局部性条件。  

虽然已经有工作SWAD显示了weight在OOD场景下取得了巨大的成功,并提供了理论上的分析,即WA使损失空间趋于平缓。然而,他的理论解释在近期受到了质疑,因为如果我们直接去平滑损失空间,最终得到的结果并不如WA这么好。本文在WA的基础上提出了一个新的方法,即多元权重平均(DiWA) 方法试图通过减少模型间的协方差来减少OOD期望误差。具体来说,DiWA的权重是从Μ个不同的运行中获得的,具有不同的学习过程:这些有不同的超参数(学习率、权重衰减)、批顺序、数据增强(例如,随机裁剪、水平翻转、颜色抖动、灰度缩放)、随机噪声和训练步骤数。因此,当训练参数差距较大时,相应的模型更加多样化。

本文的最终结果如下所示,其中random,LP是两种不同的参数初始化策略。

发现&结论

这四篇论文主要集中在大规模的实验验证去发现新的现象,以及对多个模型权重的充分利用。总的来看,目前Domain generalization问题还有很大的发展空间,loss design 类的方法很难去得到一个压倒性的结果,反而新型的框架,更大的预训练模型影响更大。除此之外,基于模型平均与ensembling的方法也越来越多,但是这些方法看起来大部分泛化能力都是ensembling带来的,文中提出的技巧能带来的提升都很有限。

最后,欢迎大家关注github,聚合了OOD,causality,robustness,optimization以及一些前沿研究方向的一些阅读笔记,非常欢迎大家补充完善。

GitHub - yfzhang114/Generalization-Causality: 关于domain generalization,domain adaptation,causality,robutness,prompt,optimization,generative model各式各样研究的阅读笔记

免责声明:作者保留权利,不代表本站立场。如想了解更多和作者有关的信息可以查看页面右侧作者信息卡片。
反馈
to-top--btn