领域自适应和领域泛化
Domain Generalization | 域适应、域泛化、OOD、开放集问题定义 (opens new window)
在实际场景中,训练集和测试集往往存在分布差异,导致模型不work。领域自适应是解决这类问题的一种方法,但是它需要测试数据的一些先验知识。但是很多时候,在测试数据到来前我们往往对它们是一无所知的,因此近年来很多人开始考虑一种更有实际意义的研究场景,也就是领域泛化。
下面我们先就来梳理一下领域自适应(Domain Adaptation, DA),领域泛化(Domain Generalization, DG),分布外泛化(Out-of-Distribution Generalization, OODG),分布外检测(Out-of-Distribution Detection, OODD),**开放集(Open Set, OS)**这几个概念的定义。
在迁移学习中,我们通常称训练模型的数据集,即训练集,为源域,称模型在应用时遇到的数据,即测试集,为目标域。
领域自适应
DA解决的是源域和目标域存在分布差异的问题。根据是在特征空间还是标签空间存在分布差异,DA可以分为以下几类。
特征空间不同,标签空间相同——同构DA
- 边际分布不同,有的也称为covariate shift:
- 条件分布不同:
- 联合分布不同:
特征空间不同,条件空间也不同——异构DA
除了满足前面特征空间的分布差异外,标签空间也存在差异:
领域泛化
DG的分布差异类型和DA完全一样,也是源域和目标域存在Domain Shift。DG与DA的最大区别是:在模型训练集阶段,DG没有目标域的任何先验信息,通俗来说就是DA在训练时可以拿到少量目标域数据,这些目标域数据可能是有标签的(有监督DA),也可能是无标签的(无监督DA),但是DG在训练时看不到目标域数据。
现在对DG的研究主要分为单源域DG和多源域DG,一般定义多源域DG每个源域内部的数据是同分布的。
现有的很多DG方法都是仅利用源域的特征信息进行模型学习。
分布外泛化
OODG的提出其实是跟I.I.D.的定义相对,也就是源域和目标域数据不是独立同分布的,且要求在训练时不知道目标域的数据。因此OODG和DG研究的应该是同一个问题。
分布外检测
OODD研究的问题是检测出在I.D.数据集中存在Semantic Shift的样本,也就是检测测试集中在训练集中没出现的标签的样本
因此OODD和OODG的差别主要有两点:
- OODG研究的是泛化问题,OODD研究的是检测问题
- OODG在特征空间和标签空间都可能存在Domain Shift,OODD一般研究的是标签空间存在差异

OODD根据源域的数量,源域和目标域标签空间的重叠程度分为:Anomaly Detection, Novelty Detection, Open Set Recognition, Out-of-Distribution Detection这几类。
开放集域适应
OS主要也是研究分布差异的问题,但它关注的是标签空间分布差异的问题。与它相对的概念是Close Set。Close Set也就是源域和目标域标签空间完全重叠,OS源域的标签空间可能包含于目标域的标签空间
相关综述
推荐几篇这些领域的综述和文章
- DG | Domain Generalization in Vision: A Survey (opens new window)
- DG | Generalizing to Unseen Domains: A Survey on Domain Generalization (opens new window)
- OODG | Towards Out-Of-Distribution Generalization: A Survey (opens new window)
- OODD | Generalized Out-of-Distribution Detection: A Survey (opens new window)
- OS | Open Set Domain Adaptation (opens new window)
入门推荐一篇公认的比较好的 【Survey】: A Survey on Transfer Learning,Sinno JialinPan, Qiang Yang,IEEE Trans (opens new window)另外,戴文渊的硕士学位论文也可以看一下:基于实例和特征的迁移学习算法研究 (opens new window)