文章地址:https://doi.org/10.1109/TPAMI.2022.3195549
解决的问题
- 域泛化和域自适应(Domain Adaptation)相比,目标域数据未知。
- 机器对分布之外的数据(OOD)不敏感,因此不能在源于中学习到有关目标域数据的相关分布,因此当数据违背与源于同分布时,算法性能会大幅降低。
- 域偏移问题的本质是数据分布不同。
Abstract
- 域泛化旨在通过只使用源数据进行模型学习来实现对OOD的泛化。
- 常见的DG方法有domain alignment,meta-learning,data augmentation,ensemble learning。
- 文章正式定义DG问题,和DA联系起来,并对现有方法进行了全面回顾。
Introduction
- 深度神经网络面向OOD的问题的性能显著下降。
- 好的解决方式是拉一些目标域数据来进行训练,用于减小源域和目标域之间差异(DA方法的核心),但是在实际情况下,这种方案是不成立的。(实际场景下的目标域是位未知的)。
- 使用多个相关但分布不同的源域进行训练(目的让模型能够泛化不同分布的情况)
DG简史
- 领域泛化(DG)问题最初是由Blanchard[XX]等人作为机器学习问题正式引入的,而领域泛化这个术语后来由Muandet[XX]等人创造。
- DG的方法在不同环境下分为多源DG和单源DG。
- 多源DG有K个源域(K>1),通过在K个不同源域上的学习和优化,学习到不同域之间的知识能够在未知目标域上更好的泛化。(因为如果不能访问目标数据,源学习模型很难很好地泛化。因此,使用多个域允许模型跨源域发现稳定的模式,从而更好地泛化到未见的域。)
- 单源DG只有一个源域(K=1),模型在1个源域上进行学习,在不同目标域上泛化。(该问题与OOD鲁棒性密切相关,更加考验模型的鲁棒性。文章中提到:本质上,单源DG方法不需要域标签进行学习,因此也适用于多源场景。)
- 文章中 Table1 给出了计算机视觉不同任务的数据集(手写数字识别、目标检测、行为识别、语义分割、医学图像等,几乎全域),其中包括每个数据的样本量(samples)以及域个数(domains),见文章第3页。
- 语义分割数据中,面向自动驾驶任务时,尽管深度神经网络已经极大地推进了这一任务,但在新场景 (如新城市或未见的天气条件) 中部署训练有素的深度模型时,其性能仍远不能令人满意。(理解为不同场景性能受限)
如何评价DG性能?
- 主要采用 留一域(leave-one-domain-out) 方式,保证至少有一个作为目标域来衡量算法性能。
- 文章提到:值得注意的是,一些数据集包含标签移位,这意味着源和目标之间的标签空间发生了变化(称为标签移位),在这种情况下,源域学习到的表示可直接使用。
这里有点困惑,我理解的是说直接不用考目标域数据分布,直接用再源域中学习的表示,缓解标签位移带来的负迁移。可能理解有误,持续跟进
评价指标
- 平均性能(average):关注的是目标域的平均性能,在大多数域偏移场景中使用。
- 最差性能(worst-case):在sub-population shift 场景使用
相关话题
- 监督学习(Supervised Learning):SL和DG之间的关键区别在于,后者的训练和测试数据来自不同的分布,因此违反了独立同分布假设。DG更接近现实情况。
- 多任务学习(Multi-Task Learning):用1个模型学习多个相关任务,多个任务中没有domain shift。从本质上讲,MTL受益于参数共享带来的正则化效应,这可能在一定程度上解释了为什么MTL范式适用于DG。(在不同域间学习不同知识,提升模型泛化能力)
- 迁移学习(Transfer Learning):旨在将从一个(或多个)问题/领域/任务中学到的知识转移到不同但相关的问题/领域/任务中。典型例子fine-tuning:大规模数据集上进行预训练+下游任务微调 (由于与训练模型的高度可迁移,2020【xx】和2021【xx】的两篇和DG相关文献研究了在从源合成数据中学习新知识时,如何保留通过大规模预训练学到的可转移的特征,用于实际应用。)。
TL和DG的关键区别还是在于目标域数据是否可以访问。相似之处在于目标域的分布和源于分布不同。
- 零样本学习(Zero-Shot Learning):与DG相关,也是处理看不见的分布(目标域未知)。不同的是,ZSL中的分布移位主要是由标签空间的变化引起的(识别新类),在测试时同时考虑新类和旧类;而在DG中,域移位主要是由协变量移位引起的(类别相同)。为了识别ZSL中未见过的类别,一个常见的做法是学习输入图像空间和属性空间之间的映射,因为标签空间在训练和测试数据之间是不相连的。
可以理解属性是类别的通用表征?
- 域自适应(Domain Adaptation):可以访问部分目标域数据(边缘)
- 测试时训练(Test-Time Training):模糊了DA和DG之间的界限。TTT与DA的不同之处在于,只有单个或小批量测试数据用于模型调优,而模型调优通常以在线方式进行,没有人工监督。就性能而言,由于使用了测试数据进行参数更新,TTT很可能优于DG,但仅限于部署设备有足够计算能力的场景。此外,如果调谐时间太 “长”,TTT可能不适合实时应用。
方法综述
文章提到大部分的DG方法在过去十年中提出,并且主要都是基于多源的,其中无需领域标签的方法也适用于单源。
1. 域对齐(Domain Alignment)
- DA和DG中的主流方法。在DA中由于目标域已知,可以直接将源域和目标域的数据进行对齐;在DG中的目标域是未知的,所以只能考虑对齐不同源域之间的特征。
- 核心思想:最小化源域之间的差异,学习域不变表示。
- 动机:对源域转移不变的特征也应该对任何未见的目标域转移具有鲁棒性。
- 在设计有效的域对齐方法需要考虑对齐什么和如何对齐。
1. 对齐的是什么
- DG中一个常见的假设是:分布移位只发生在边缘,而后验分布保持相对稳定。所以大量的对齐方法集中于对齐边缘分布。
条件概率、边缘概率在迁移学习中的形象解读:https://blog.csdn.net/weixin_45648030/article/details/125122493
- 现有的域不变方法开始侧重于假设在标签的边缘分布不变的情况下对齐条件分布
2. 如何对齐
- 减小矩: 均值(一阶矩)、方差(二阶矩)。在非迁移中也常用来做Normalization。
- 减小对比损失:处理语义标签,对比正负。两个设计原则:
- 构建标准组。构建正样本组(positive group)和负样本组(negative group)
- 计算距离(例如使用L2或者softmax)。拉近正样本组和标注的距离,远离负样本组和标准的距离。
- 减小KL散度:域对齐的常用方法:对齐源域特征的高斯分布。
- 减小最大均值差异(MMD):通过将两个概率分布映射到Hilbert空间在计算均值,来衡量域间差异。文章中提到的两个例子:
- 自编码结构最小化源域隐藏层之间的MMD距离
- 通过对抗学习是特征分布与先验分布相似
- 域间对抗学习:不同与类似MMD的显示距离度量,通过极大极小博弈的方式最小化分布问题。
- 生成对抗学习相当于最小化真实分布和生成分布之间的Jensen-Shannon距离,也证明使用对抗性学习对齐分布是完全ok的
- 对抗学习在源域进行,学习在新域中可能未知的特征。学习的目标是特征混淆一个域鉴别器,使它可以变为一个多类域鉴别器,或在每个域基础上的二分类鉴别器。(理解为一个鉴别器从鉴别单个域变为能够鉴别多个不同域生成器生成的特征)
- 为了增强域对齐,结合域对抗学习与显式距离度量(如矩最小化)或一些正则化约束(如熵)。
GAN思想:
1. 生成器通过随机噪声输入生成逼真图像
2. 能够生成逼真图像的原因是:通过鉴别器来区分真实和生成的假图像(是或否,最小化二分类损失),同时鼓励生成器“欺骗”判别器(最大化二分类损失)。
- 多任务学习:不同域的网络共享参数,保证模型在不同域上能够泛化。
- 编解码结构。在编码是共享参数,解码阶段独立处理各域分支。该模型训练有两个目标:一个是自域重构,另一个是跨域重构,目的是迫使隐藏表示尽可能通用。(能够的学习到的特征仅限于已知域)
认为最小化源与目标之间的分布发散对降低目标误差的上界有很大的影响
元学习(Meta-learning)(综述:【XX】)
- 元学习也被称为学习到学习,旨在从相关任务中抽样学习,从而有利于未来的学习,可以理解为由人为设置参数到自己学习参数
元学习通俗理解:https://blog.csdn.net/c9Yv2cf9I06K2A9E/article/details/121413057
- 文章中举了一个和DG最相关的元学习方法:MAML。将训练数据分为元训练集和元测试集,在训练集上训练模型,以提高测试集上的性能。但是MAML式的训练通过基模型进行二阶微分,因此对于大型的神经网络的效率和内存消耗并不友好。
- 将元学习应用于DG的动机是在训练过程中将模型暴露于域转移,希望模型能够更好地处理不可见域的域转移。
- 现有的元学习DG方法只能应用于提供域标签的多源DG。
- 基于DG的元学的问题在于:在不同的源域(元学习中则是元训练集和元测试集)偏移中才能够有效的保证模型的相对鲁棒性。(也就是源域差异越大,可获得的不同源域越多,泛化性越强)。如果源域在多样性上有限,模型泛化性能差的问题会更加突出。
Episodes Construction(集构建)
- 多数基于DG的元学习方法都遵循该范式:将源域划分为不重叠的元源域和元目标域,模拟域偏移。学习的目标是使用元源域更新模型,从而减少元目标域上的测试误差,通常通过两级优化来实现。
元表示(Meta-Representation)
- 定义为元学习中的模型参数
- 大多数深度学习方法对整个神经网络模型进行元学习
数据增强(Data Augmentation)
- 数据增强的本质是对输入数据进行变换,这种变换在DG中可以被视为模拟域偏移的一种方式
- 数据增强的方式分为4种:Image transformations,Adversarial gradients,Model-based augmentation,Feature-based augmentation。
Image transformations
- 手工设计的图像转换:传统的图像变换:旋转,反转,裁剪,颜色增强等
- 原则是从任务出发进行变换,避免与下游任务发生冲突。例如降低图像分辨率,添加遮挡和改变头部姿势,解决了人脸识别中的普遍特征学习问题。
Adversarial gradients
- 基于Task:该类型主要针对单源DG。受对抗攻击启发,获得的对抗梯度来扰动输入图像,拓展数据分布。
- 基于Domain:针对多源DG。通过域对抗梯度来合成域不可知图像,学习更多的域不变表示。
- 劣势:1. 由于基于对抗梯度的扰动被有意设计为视觉上难以察觉,基于对抗梯度的方法经常被批评不能模拟真实世界的域偏移,这比椒盐噪声要复杂得多;2. 梯度需要进行正向和反向两次传播,效率下降。
Model-based augmentation
- Random augmentation networks:通过随机初始化的单层神经网络,并且每次的权重在高斯分布中随机抽样,不需要继续学习,将图像转化为“新域”。变换后的图像主要包含颜色失真。文章提到:最好在传递给任务网络之前与原始图像混合(感觉正常手法也要这样做的呀)。
- off-the-shelf style transfer models: 利用风格迁移的优势。本质上是将图像从一个源域映射到另一个源域来实现数据增强。也是使用源域之外的外部样式丰富训练数据。
- learnable augmentation networks: 学习增强神经网络合成新域。可以通过最大化相对于图像生成器的域分类损失来生成域无关(新域)图像。(感觉本质上是使现有域和新域之间的域偏移最大化)
Feature-based augmentation
- 基于模型的增强方法效率一般,毕竟还是要进行训练。受CNN特征统计中提取图像风格的启发,可以通过混合不同域实例之间的CNN特征统计来实现风格增强(特征级)。
集成学习(Ensemble Learning)
- 通常以不同的初始化权重或使用不同的训练数据划分来学习同一模型的多个副本,集成进行预测
Exemplar-SVMs(机器学习方法)
- 多个SVM分类器,每个分类器使用一个正样本和所有负样本进行学习
Domain-specific neural networks
- CNN代替手工设计的SVM分类器。
- 每个CNN进行特定领域(源域)的学习,不同的CNN之间共享浅层的通用特征。在测试阶段:1. 可以简单地使用对所有具有相同权重的样本进行平均预测;2. 采用加权平均,其中权重由源域分类器估计,旨在衡量目标样本与每个源域的相似性。
Domain-specific batch normalization
- 由于不同源域的统计信息通常不同,因此可以认为,混合多个源域的统计信息不利于学习可泛化的表示。
- 每个源域一个,用于收集特定域的统计信息。这等价于构建特定于领域的分类器,但模型的大多数部分除了规范化层之外的参数共享。
- 有学者使用测试数据的实例级特征统计量和源域BN统计量之间的距离作为权重来聚合特定领域的预测。
Weight Averaging
- 本质是将多个模型聚合为单个模型:权重平均聚合训练过程中不同时间步长的模型权重,以在测试时形成单个模型。
- 与需要训练多个模型(或模型部分)的显式集成学习不同,加权平均是一种更有效的解决方案,因为模型只需要训练一次。
自监督学习(Self-Supervised Learning)(综述:【xx】)
自监督解读:https://zhuanlan.zhihu.com/p/108906502
- 不考虑目标任务,在前置任务(pretext)中学习通用特征,减少对特定域偏差的过拟合。
- 常见的学习方法是自编码器(encoder-decoder结构)。
- 基于自监督学习的DG方法仅在目标识别任务上进行了评估。目前还不清楚他们是否会在更广泛的OOD泛化任务中工作?
- 现有的前置任务没有一个是通用的,并且前置任务的选择是针对特定问题的。例如,当目标域偏移与旋转相关时,通过旋转预测任务学习到的模型将捕获旋转敏感信息,不利于泛化。
- 最近最先进的自监督学习方法大多是基于对比学习与数据增强相结合。关键思想:是将经历不同变换的相同实例(图像)拉在一起(例如,随机翻转和颜色失真),同时将不同的实例推开,以学习实例感知的表示。
学习解离化表示(Learning Disentangled Representations)
正则化策略(Regularization Strategies)
- 通常基于启发式方法设计正则化策略。
- 【xx】可泛化的特征应该捕捉物体的全局结构/形状,而不是依赖于局部块/纹理,提出抑制辅助块级cnn的预测能力(最大化其分类错误),由1×1卷积层实现。
- 【xx】迭代地用大梯度掩盖过度主导的特征,从而迫使模型更多地依赖剩余的特征。
- 上述两个方法不需要域标签进行学习,并且与其他的DG方法正交所以可以结合起来使用。
强化学习(Reinforcement Learning)(综述:【xx】)
- 强化学习中的域偏移不仅发生在视觉外观(颜色/风格变化等)上,还发生在其他方面,如动态(过渡函数)或奖励
- 数据增强+强化学习,自监督+强化学习
理论研究
- 核方法
- 假设法
- 假设所有可能域(包括源域和目标域)的潜在特征空间具有线性相关性,每一个域都可以由其他域线性表示。基于此的秩正则化方法,与分布对齐相结合
- 假设源域形成一个凸包,使源域内的最大成对距离最小化将导致凸包中任何两个域之间的距离减小
- …
未来研究方向
三个角度:模型、学习、基准
模型角度
动态架构
- CNN作为特征检测器,从源域学习后,权重通常是固定的。这可能导致CNN的表示能力仅限于可见域,而当未见域中的图像统计有显著差异时,泛化能力很差。
- 动态过滤网络和条件卷积
自适应归一化层(Adaptive normalization layer)
- 现有的归一化无论在每个实例中计算还是基于一个mini-batch计算,它们都只能表示训练数据的分布(均值和方差)。
- 在归一化层中的可学习参数也只是针对源域
- 参数自适应未知域是不错的方向
学习角度
没有域标签下学习(Learning without domain labels)
- 大多数现有的方法在模型中利用域标签,但是面向实际任务时,域标签往往是未知的。
- 目前处理域标签缺失的方法仍然很少,并且与利用域标签的方法相比没有竞争力。
- 优势在于没有领域标签的学习更加有效和可扩展
学习合成新域(Learning to Synthesize Novel Domains)
- 增加源域的多样性
避免捷径学习(Avoiding learning shortcut)
- 避免模型只学习一些简单的表示,在DG中的泛化性能非常有限
- 在多源域中,尽可能多的学习不同域的特征,当然要在目标域未知的前提下
因果表征学习(Causal representation learning)
- 对潜在的因果变量进行建模(自编码器,有点无监督或自监督的味道),变量不能直接被观察到,但是在域偏移的情况下更稳定和鲁棒
探索其他信息(Exploiting side information)
- side information有时也成为元数据(meta-data)
- 利用属性标签(颜色、形状、纹理,一般对域偏移不敏感)
- 属性已被广泛用于零样本学习中以识别未见过的类别
- 可迁移的特征/较难迁移的特征?
半监督DG
- 为未标记的源数据分配伪标签,并使用现成的风格迁移模型来扩充域数据
- 混合标记和伪标记源数据的特征统计信息以实现数据增强
开放域泛化(Open DG)
- 从具有不同标签集(有重叠)的异构源域学习一个模型,并将其部署在未见过的域中,以识别已知类别,同时能够拒绝未知类别
- 侧重于分类应用,并强调检测(拒绝)未知类的能力
基准角度
增量学习+DG(Incremental learning)
- 在实践中,源域可能是增量引入的,因此需要增量学习
- 如何在不使用所有可用数据集从头开始训练的情况下,有效地对新数据集上的模型进行微调
- 如何确保模型不会过度拟合新数据集并忘记以前学习的特征
- 新数据集对目标域上的DG性能是有利还是不利文章来源:https://www.toymoban.com/news/detail-575430.html
异构域偏移(Heterogeneous domain shift)
- 现有的数据集中大多以同构域偏移为主,但是面向实际场景中这种情况是未知的
- 例如,源域可能是照片、艺术和素描,但目标域可能是新视角的图像文章来源地址https://www.toymoban.com/news/detail-575430.html
到了这里,关于【域泛化综述-2022 TPAMI】Domain Generalization: A Survey的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!