ERM++: AnImproved Baseline for Domain Generalization 阅读笔记

本文最后更新于 2025年3月31日 中午

没什么参考意义,就是tricks堆砌,不用看

ERM++: AnImproved Baseline for Domain Generalization 阅读笔记

作者为Piotr Teterwak,达特茅斯学院学士,波士顿大学博士,在谷歌、苹果都工作过,发表过6篇A会,作者的个人介绍页:Piotr Teterwak

文章发表于ICML 2023

了解到文章的途径

在师兄的指导下做实验验证一个方法,实验过程中接触并使用了DomainBed这一域泛化实验框架,其中包含该算法,DomainBed中很多模型的类都以ERM作为父类,而ERM++是个例外,所以对其产生兴趣,并深入阅读论文。

打算在组会上讲解这篇论文。

文章解决了什么问题

ERM++是文章提出的一个新基线(baseline),如上所述,DomainBed这一广泛使用的框架使用ERM作为baseline。

baseline:指一个经过充分调优的模型,一般是一个SOTA方法,不会显著劣于现有的所有方法,是新方法的对比对象。

[!TIP]

ERM:经验风险最小化,统计学习理论原则,由Vapnik提出,熟知的最小二乘法、极大似然法都是ERM的具体例子,在实际使用中,ERM就是“让loss最小”这个思想,也就是让损失函数最小化,这已经成为模型训练的底层逻辑了。

然而,文章发现这个baseline其实不够充分调优,似乎还有一些重要的超参数没有调,会导致过拟合和灾难性遗忘

过拟合:指在训练集上过分拟合,类似死记硬背,泛化能力大大降低,反而没有学到真正的特征,导致在测试集上效果极差,实际效果差

灾难性遗忘:在大规模数据上训练过的预训练模型对目标数据的泛化能力可能比微调之前更强,因为预训练数据的分布可能比源域数据的分布更接近目标数据的分布,如果在训练数据上进行微调,可能导致预训练模型忘记(也就是过拟合)先天的返泛化能力,导致灾难性遗忘。

所以文章从3个方面进一步调整了ERM的参数:

  • 训练数据使用:一改原本的28分区,采用两轮pipeline(不知道咋翻译,意会吧),第一轮用验证集来选训练长度(train length)、学习率(learning rate,LR),然后第二轮把验证集也拿去训练,用第一轮的超参数。具体方法见后。这样增加了训练数据。
  • 初始化模型权重:觉得ResNet-50的TorchVision权重太outdated了,于是试验了其他的权重。(这里没咋看懂,看实验部分吧)
  • 正则化:用MPA平均模型参数,再冻结预训练权重几百步(称为warm start)。对于ResNet,使用ubn(解冻批次规范,不懂);对于ViT,由于是transformer,用注意力调优。(没看懂怎么调优的,看代码吧)。来防止过拟合

28分区:80%训练集,20%验证集,验证集用于在中途的checkpoint做测试

学习率:梯度下降的权值,学习率高,梯度下降快,容易略过最优解;学习率低,梯度下降慢,收敛慢,容易陷入局部最优。一般采用先快后慢。

train length:这里指steps。理由:To determine the training length, we keep training a model until it does not improve performance on a validation set (held out from source domains) within the previous N steps.

MPA:Model Parameter averaging,也就是把训练过程中不同步数时的模型参数求个平均,平均值不会太极端,低可能位于一个局部最优解上,所以找到的解不尖锐,更平坦,受到扰动或者变化时的影响更小,从而鲁棒性更强,平坦的最小值对应更低的泛化误差

得到新的baseline方法,称之为ERM++。解决了ERM会过拟合以及灾难性遗忘的问题。

作者针对这个问题是如何构建解决思路的?如何想到可以这样解决的?

我是从DomainBed了解到这篇的

作者这篇已经加入到了DomainBed里面,最新的contributor都是这位作者

这篇文章后面基于ERM的实验全是用DomainBed做的,借鉴了很多DomainBed的内容

所以,我推断ERM++应该高度依赖于DomainBed那篇论文。

那么思路也由DomainBed而来,DomainBed论文中提出比ERM获得实质性的域泛化改进是有挑战的。(揭榜意图?)

DomainBed在最后提到BatchNorm会干扰域泛化算法,这可能是Unfreezing的来源。

意图分析尚不明朗,继续看

更多的材料并分析

代码有,还没看

从创新层面上,为什么能发表

虽然我没有觉得眼前一亮(是我太菜),但是感觉实验部分的数据挺重要,提出新baseline也很有意义,第一感觉就是工作量很足,数据很充分。

方法有什么缺点

这真不知道了。。


ERM++: AnImproved Baseline for Domain Generalization 阅读笔记
http://43.143.57.238/2025/03/05/25-3-5读论文记录/
作者
Leoo Yann
更新于
2025年3月31日
许可协议