仔细分析分配的转变!
三个要点
✔️ 提出了一个分布式转变的框架
✔️ 定义了三个重要的分配转变
✔️ 不同方法的综合比较评价
A Fine-Grained Analysis on Distribution Shift
written by Olivia Wiles, Sven Gowal, Florian Stimberg, Sylvestre Alvise-Rebuffi, Ira Ktena, Krishnamurthy Dvijotham, Taylan Cemgil
(Submitted on 21 Oct 2021 (v1), last revised 25 Nov 2021 (this version, v2))
Comments: ICLR2022.
Subjects: Machine Learning (cs.LG); Computer Vision and Pattern Recognition (cs.CV)
code:![]()
本文所使用的图片要么来自论文、介绍性幻灯片,要么是参考这些图片制作的 。
简介
为了使机器学习模型在应用中得到广泛应用,重要的是它们对分布的变化具有鲁棒性。例如,在一组医院的图像上训练的模型在另一组医院的图像上可能表现不佳。因此,提高对分布性变化的鲁棒性,或者知道某个特定模型对分布性变化的鲁棒性如何,是一个非常重要的问题,而领域概括是解决此类问题的一个活跃的研究领域。
然而,在定义实践中可能出现的分布性转变,或评估算法对几种不同分布性转变的稳健性方面,几乎没有做什么工作。
为了解决这一重要问题,本文介绍了一个框架,允许对分布变化进行精细分析,并定义了三种可能对现实世界产生影响的分布变化(虚假相关、低数据漂移和看不见的数据转变)。我们还定义了三种可能产生现实世界后果的分布性转变(假性相关、低数据漂移和看不见的数据转变)。此外,我们引入了两个额外的条件(标签噪声、数据集大小),并在真实和合成数据上评估了19种现有方法。(为了表彰这些贡献,本文已被ICLR2022接受(口头)。
建议的方法
评估通用化的框架
首先,让输入为$x$,相应的属性为$y^1,y^2,。,y^K$($y^{1:K}$)。这里,其中一个属性是标签,我们用$y^l$表示。例如,对于医学图像,$y^l$可能是良性/恶性的,$y^i(i\neq l)$可能是关于拍摄图像的医院的信息,等等。让$p$为$x$和$y^{1:K}$的联合分布。在这种情况下,模型的训练目标是构建一个分类器$f$,使风险最小化$R(f)=E_{(x,y^l)~p}[L(y^l,f(x))]$,其中L是损失函数。在实践中,由于输入和属性的大小是一个有限的数字$n$,我们改为最小化经验风险$hat{R}(f;p)=\frac{1}{n}\sum_{{(y^l_i,x_i)~p\}^n_{i=1}L(y^l_i,f(x_i))$ 。
在可能发生分布偏移的条件下,在模型的训练和测试过程中,数据$p_{train},p_{test}$的分布可能不同。例如,$p_{train}$和$p_{test}$可能是在不同医院拍摄的图像,或者用于拍摄图像的设备可能不同。在这种情况下,模型的训练是为了最小化$hat{R}(f;p_{train})$,但在实践中,最好是在测试时减少经验风险$hat{R}(f;p_{test})$。
这里值得注意的是,$p_{train},p_{test}$与真实分布$p$($x$和$y^{1:K}$的联合分布)有关,即使它们是不同的分布。因此,为了表达这种关系,我们用潜伏因子$z$来分解。让我们假设以下关系对$z$来说是成立的。
那么,对于真实分布$p(y^{1:K},x)$,我们可以将其因子化如下
也就是说,真实分布可以表示为围绕属性$y^{1:K}$的分布$p(y^{1:K})$与条件生成模型$p(x|y^{1:K})$的积。
有鉴于此,我们做了一个重要的假设。也就是说,我们认为,分布性转变是由周围的属性分布变化引起的。
换句话说,我们认为当$p(y^{1:K}) \neq p_{train}(y^{1:K}) \neq p_{test}(y^{1:K})$发生分布转移时,而条件生成模型$p(x|y^{1:K})$没有变化,对所有分布共享。
也就是说,$p_{test}(y^{1:K}, x) = p_{test}(y^{1:K}) int p(x|z)p(z|y^{1:K})dz$ 而$p_{train}(y^{1:K}, x) = p_{train}(y^{1:K}) int p(x|z)p(z|y^{1:K)})dz$成立。
关于分配上的转变
按照上述框架,我们将考虑现实世界中可能发生的三种典型的分配变化类型。作为一个实际的例子,在dSprites数据集的情况下,分布性转变的情况如下图所示。
在这种情况下,属性$y^1$是一种颜色(红、绿、蓝),$y^2$是一种形状(心形、椭圆形、矩形)。
关于测试分布$p_test$。
在测试分布$p_test$中,我们假设属性$y^{1:K}$是均匀分布的。也就是说,$p_{test}(y^{1:K})=frac{1}{prod_i}|A^i|$。
这相当于所有属性的数据的均匀和无偏分布,如上图(d)所示。
虚假的关联性
首先,我们考虑属性在$p_train$有关联,但在$p_test$没有关联的情况。根据上述框架,当两个属性$y^a,y^b$在训练时是相关的(不是独立的),就会出现这种伪相关。
具体来说,$p_{train}(y^a|y^1,.)。,y^b,...,y^K) > p_{train}(y^a|y^1,...),y^{b-1},y^{b+1},。,y^K)$ 是真的。当两个相关的属性之一是一个标签时,这种伪相关就特别有问题。
在上图(a)的例子中,如果标签是一个形状($y^2$),模型可能会根据颜色来预测形状,比如如果$y^1=红色$,则$y^2=心脏$,如果$y^1=绿色$,则$y^2=卵形$,以此类推。在这种情况下,属性之间没有关联的$p_test$将无法通过泛化。
低数据漂移
当属性值在$p_{train}$中出现偏差,但在$p_{test}$中没有偏差时,就会出现低数据漂移(见上图(b))。当数据集的收集受到属性值的影响时,就会发生这种分布偏移。根据上述框架,当$p_{train}(y^a=v) << p_{test}(y^a=v)$时,就是这种情况。
看不见的数据转移
低数据漂移的一个特殊情况是,在一次训练中,某个特定属性值的数据缺失。根据上述框架,这可以用以下公式表示
对于更复杂的分布转变
围绕标签$p(y^l)$的分布可以分解为两个项,由特定属性值$p(y^a)$的概率和条件概率$p(y^l|y^a)$构成,表示为$p(y^l)=sum_{y^a}p(y^l|y^a)p(y^a)$。
在这种情况下,伪相关控制着$p(y^l|y^a)$,而低数据漂移/不可见的数据转移控制着$p(y^a)$。因此,更复杂的分布转移可以用这三种分布转移作为组成部分来描述。
额外条件
除了这些分布变化外,在实际环境中还可能出现两个附加条件
标签噪音
当注释者存在分歧或错误时,就会产生标签噪音。这被模拟为观察到的属性(如标签)被噪声破坏。这表示为$hat{y}^i~c(y^i)$,其中$hat{y}^i$是被破坏的标签,$y^i$是真实标签。
数据集大小
该模型的性能可能会因训练数据集的大小限制而有所不同。
在最初的论文中,这些条件是在实验中引入的,以评估该模型。
提高稳健性的方法
在模型训练期间获得$p_train$的条件下,降低真实分布$p$和测试分布$p_{test}$的风险是为了提高对分布偏移的鲁棒性。为了实现这一目标,可以采用以下方法
1.加权重抽样
对于训练集,使用重要性权重$W(y^{1:K})=p(y^{1:K})/p_{train}(y^{1:K})$进行重新取样。
在这种情况下,第i$个数据点$(y^{1:K}_i,x_i)$被选中的概率为$W(y^{1:K}_i)/sum^n_{i'=1} W(y^{1:K}_{i'})而不是1/n$。
在实践中,并不总是能够获得真实的分布$p(y^{1:K})$,所以通常假设所有的属性组合都是均匀地随机出现。
2.启发式数据增强
加权重采样通过执行启发式数据增强来减少过度拟合,因为相同的样本可能被多次重复使用。
3.了解到的数据扩增
基于真实分布可以表示为围绕属性$y^{1:K}$的分布$p(y^{1:K})$与条件生成模型$p(x|y^{1:K})$的乘积,我们从训练数据中学习条件生成模型$hat{p}(x|y^{1:K)$,并创建一个新的合成数据采样。
然后,我们在从增强的数据分布中得到的数据集上训练监督分类器,$p_{aug}=(1-α)p_{train}+α hat{p}(x|y^{1:K})p(y^{1:K})$。
4.表征学习
另一个可能的分解是$p_{train}(y^{1:K}, x) = int p(z|x)p_{train}(y^{1:K}|z)dz$。
在此基础上,我们可以从训练数据中对$p(z|x)$进行无监督的表示学习,并学习分类器头$p{train}(y^l|z)$,它根据潜变量$z$做出预测。如果可以适当地进行表征学习,就可以实现对$p_test,p$的泛化,而不会受到特定属性分布的影响。
实验设置
在实验中,对19种算法进行了评估,以寻找提高模型对分布性转变的稳健性的方法。
建筑学
实验中使用的模型架构如下
- 18号网,50号网,101号网
- 薇特
- MLPs
在训练过程中,我们还进行了加权重采样,从$p_{train}$的低概率部分进行超额采样。
启发式数据增强
为了提高稳健性,对以下数据增强方法进行了分析
- 标准的ImageNet扩增
- 不含JSD的AugMix
- 兰德隆
- 自动增强
训练有素的数据扩增
我们对一个条件生成模型$p(x|y^{1:K})$进行近似,并使用生成的图像作为数据的增强。
CycleGAN被用于近似计算。
领域泛化
领域泛化方法旨在恢复$z$的属性无关的表示,我们试验了以下方法
- IRM
- DeepCORAL
- 域名混合
- DANN
- SagNet
适应性方法
作为我们适应性方法的一部分,我们将尝试使用以下方法
- JTT
- BN-Adapt
表达性学习
作为一种表征学习方法,我们将尝试使用以下方法
- β-VAE
- 在ImageNet上进行预训练(使用$D_{train}$的额外数据)。
数据集和模型选择
对于我们的实验,我们使用六个图像分类数据集。
- ǞǞDSPRITES
- MPI3D
- 小诺B
- SHAPES3D
- CAMELYON17
- IWILDCAM
在这里,我们用ResNet18来处理简单的合成数据集(DSPRITES、MPI3D、SHAPES3D、SMALLNORB),用ResNet50处理复杂的真实世界数据集(CAMELYON17、IWILDCAM)。实验是针对五个种子值运行的。
实验结果
虚假相关、低数据漂移和看不见的数据转移的结果如下。
在存在标签噪声和数据大小限制的情况下,其结果也显示如下。
总的来说,获得的结果可以总结如下
- 没有一种方法总是能提供最好的性能。
- 预训练是一个强大的工具,跨越一系列的数据转移和数据集。
- 启发式数据增强并不总是能改善结果。
- 训练有素的数据增强在一系列条件和分布转变中都是有效的。
- 领域泛化对性能的提高是有限的。
- 最佳算法可能会因详细条件而有所不同。
- 考虑到的属性对结果有直接影响。
关于实验结果的更详细描述,请参考原始论文。
对于实用信息,该文件还推荐了以下提示
- 如果启发式数据增强能促进不变性,就使用它。
- 如果启发式数据增强没有用,就使用学习式数据增强。
- 利用先前的学习。
- 通过复杂方法进行的改进是有限的。
最后,本文对实验结果进行了讨论,内容如下
- 仅从数据集上不可能预先确定最佳方法。
- 如果对分配的变化有了解,这应该是重点。
- 在各种条件下评估该方法是至关重要的。
摘要
在这篇文章中,我们提出了一篇论文,提出了一个全面的分布式转变的框架,并对不同的方法进行了详细的实验分析。该框架和基准可以成为评估与分配转变有关的方法的有用工具。
与本文相关的类别