1.背景
1.1域偏移
大数据背景下,我们有大量的数据需要访问,并且数据比较复杂,需要更高超的处理技巧,因此推动了机器学习*(Mechine Learning)*的发展。一般情况下,如果我们拥有大量的数据,非常精确的数据标注,那就可以得到一个相对好的模型。但是在现实中,标注数据是非常耗时耗力的工作,所以大多数的数据是没有注释(或者注释不精确)。
那顺其自然的想,我们已经拥有部分标注好的数据集,可不可以利用已经标注好的数据集训练出来的模型在其他未标注好的数据集上面执行任务呢?可以但还不够。因为传统的机器学习中假设训练数据和测试数据是在一个相同的数据分布下。而现实中,训练数据与测试数据在不同的数据分布下,会存在偏差,即域偏移 (domain shift)。
数据分布 (data distribution),可以理解成一个场景/空间下采集的数据的分布属性,例如,同样是给马拍照,从侧面拍只看到一只眼睛,从正面拍可以看到两只眼睛,两个场景的数据分布不同。若我都从侧面拍,拍到的都只有一只眼睛,可见同个场景内数据分布相同。其中,在同一个数据分布中采集的数据组成**域 (domain) **,需要模型做啥就是 任务 (Task),比如预测、分类,见图1。
图1 数据分布和域的理解
1.2迁移学习
1.2.1定义
为了解决域偏移的问题,有个主流的方向就是**迁移学习*(Transfer Learning)* **。从广义上讲,只要我们利用了已有的知识、模型、结构来帮助我们达成在目标数据上的学习目标,那么这一过程就可称之为迁移学习[2]。
再直观理解就是,人类容易利用先前的经验解决类似的任务,比如学过自行车就很容易学会摩托车,学会打羽毛球也能帮助学会打网球,也就是把一个领域上学习的知识迁移到另一个领域上。迁移学习就是希望让计算机具备举一反三的能力,或者是去尝试充分利用已经训练过的某个领域的知识来解决当前的任务(这样可以解决数据少,注释困难的问题)。
在这里,需要强调源域*(Source Domain,训练数据组成的域)* 、源任务(Source Task)、目标域(Target Domain,测试数据组成的域)和目标任务(Target Task) 的概念。
在传统机器学习方法里,源域和目标域是一样的,就是训练的是什么数据,测试的也是这个领域的数据(比如“摄像头捕捉的马图片”);源任务和目标任务也是一样的,即希望模型能做什么事情,训练的就是做这件事(比如“分类不同种类的马”)。而迁移学习需要源域-目标域、源任务-目标任务至少有一对不同,也就有了三种情形(至少一对不同和都不同)。[3]
1.2.2预训练-微调
由于迁移学习中源域与目标域一般是不同但相关*(different but releated),所以假设源域数据和目标数据可以共享一些模型的参数,则可以使用预训练-微调(Pre-train and fine-tune)*方法。它指的是我们在源域训练好一个模型,直接将其用于目标域的数据,并在目标域数据上进行微调。该范式长久以来一直被认为是迁移学习最重要的表现形式。
我们通过该范式的过程来延伸迁移学习的方向(图2):
- 低资源学习 (Low-resource learning):训练数据比较少的情况下,如何去训练一个好的模型
- 域适应 (Domain adaptation/DA) :为了将用源域数据下训练的模型可以应用到目标域数据上,需要对模型进行怎样的调整
- 域泛化 (Domain generalization/DG):如何保证模型在没有见过的域上有很好的表现
- 安全迁移 (Safe transfer):迁移学习中有没有泄露隐私等等
图2 迁移学习的方向
2.域适应
在迁移学习中,做的工作最多的就是域适应了。
2.1简述
域适应*(Domain adapation)*是一种源任务和目标任务一样,但是源域和目标域的数据分布不一样,并且源域有大量标记好的样本,目标域则没有(或者只有非常少的)有标记的样本的迁移学习方法。也就是怎么把源域上大量有标记的样本中学习的知识迁移到目标域上,来解决相同的问题,其中,目标域上能利用的大多只有没有标记的样本。
因此,域适应的基本思想是把分布不同的源域和目标域的数据,映射到一个特征空间(简单理解就是将原始数据提取特征,由特征组成的就是特征空间)中,使其在该空间中的距离尽可能近。于是在特征空间中对源域训练的目标函数,就可以迁移到目标域上,提高目标域上的准确率。最终,域适应希望达成图3的效果,适应后卡通马的形体趋近于真实马的情况。
学术化的表述[9]:给定一个有标签的源域 D s = { x i s , y i s } i = 1 n s D_s=\{x^s_i,y^s_i\}^{n_s}_{i=1} Ds={xis,yis}i=1ns和一个无标签的目标域 D t = { x j s } j = 1 n t D_t=\{x^s_j\}^{n_t}_{j=1} Dt={xjs}j=1nt,假设它们的特征空间相同,即 X s = X t X_s=X_t Xs=Xt,它们的标签空间也相同,即 Y s = Y t Y_s = Y_t Ys=Yt 并且条件概率分布也相同, 即 p ( y s ∣ x s ) = p ( y t ∣ x t ) p(y^s|x^s)=p(y^t|x^t) p(ys∣xs)=p(yt∣xt)。 但是这两个域的边缘分布不同, 即 p ( x s ) ≠ p ( x t ) p(x^s) \neq p(x^t) p(xs)=p(xt)。 域适应算法的任务就是利用有标签的源域数据 D s D_s Ds学习一个分类器来预测目标域数据 D t D_t Dt的标签 y t ∈ Y t y_t \in Y_t yt∈Yt。
图3 域适应前后对比
2.2研究方向
在域适应里面也会细分出很多方向(图4)。如果源域和目标域距离太大(比如源域是文字,目标域是图像),就可能需要进程多步的迁移,将这个非常大的迁移划分成一步一步的小段迁移,这就是下图中的多步领域自适应*(Multi-step DA)* ** 通过选择合适的中间域(桥梁)来转换成一个个单步领域自适应*(One-step DA)* **,这样就只要去研究单步迁移怎么做。
而单步迁移又可以根据源域和目标域数据情况可以分成以下两种:
- 同质 (Homogeneous):特征空间一样,数据分布不一样
- 异质 (Heterogeneous) :特征空间都不同
接下来,在同质或者异质的DA中又分别可以根据目标域数据的标注情况分为监督的、半监督的、无监督的DA。学术界研究最多的是无监督的DA,这个比较困难而且价值比较高。[4]
图4 领域自适应的细分方向
2.3域适应的误差界
在讲到方法之前,先补充域适应中的一个经典理论[5],也就是要知道实现什么样的条件才能完成这个任务。该理论就给出了域适应的目标域泛化误差(可以理解成错误率)
ε
t
(
h
)
\varepsilon^t(h)
εt(h)的上界,即误差界,其中,
h
h
h是我们训练得到的泛化性预测函数,如下式:
ε
t
(
h
)
≤
ε
s
(
h
)
+
d
H
Δ
H
(
P
X
S
,
P
X
t
)
+
λ
H
\varepsilon^t(h) \leq \varepsilon^s(h) + d_{H\Delta H}(P^S_X,P^t_X)+\lambda_H
εt(h)≤εs(h)+dHΔH(PXS,PXt)+λH
式子清晰的告诉了我们目标域泛化误差是由三项去构成的,第一项
ε
s
(
h
)
\varepsilon^s(h)
εs(h)源域泛化误差,第三项
λ
H
\lambda_H
λH是这个模型的复杂度,通常认为他是常量,最重要的是第二项
d
H
Δ
H
(
P
X
S
,
P
X
t
)
d_{H\Delta H}(P^S_X,P^t_X)
dHΔH(PXS,PXt),它是衡量源域和目标域之间的差异。具体可看[8]。
那为了解决域适应的问题,就是要降低目标域的泛化误差/误差界。第三项 λ H \lambda_H λH通常堪称常量,暂且忽略,再看第一项 ε s ( h ) \varepsilon^s(h) εs(h),一般来说给了有标注的数据就拿去训练模型了,不容易下降,那就看第二项 d H Δ H ( P X S , P X t ) d_{H\Delta H}(P^S_X,P^t_X) dHΔH(PXS,PXt)。为了降低源域和目标域的差异,主要有以下两个方法:
- 调整实例权重:选出代表性的权重使得两个域的差异最小,即基于实例的自适应 (Instance Adaption)
目前方法有:Tradaboost,KMM,Distant TL - 提取域不变特征:假设所有数据都有同等贡献,那我们就要找到那个特征空间,在特征空间里面可以使得差异最小,即基于特征的自适应 (Feature Adaption)
目前方法有:TCA,DANN,DDC
还有一种是基于模型参数的自适应*(Model Adaption)*——通过参数的迁移使得模型能更好的在目标域上工作
2.4常见的域适应方法
单步域适应有三种基本技术:
- 基于差异/分布/散度的方法 (Discrepancy-based methods)
- 基于对抗的方法 (Adversarial-based methods)
- 基于重建的方法 (Reconstruction-based methods)
注:都是属于基于特征的自适应方法
2.4.1基于散度的方法
基于散度的方法 (Discrepancy-based methods)原理是最小化源与目标分布之间的散度准则,从而得到域不变特征。常用的分布准则有对比域描述、相关对齐、最大平均差异(MMD),Wasserstein等。[13]
通俗的讲,域适应要做的事是把源域和目标域都映射到一个特征空间(映射 f f f不同,提取的特征就不同,空间也不同),如果我们可以找到某个特征空间下,利用某种标准计算出来的源域和目标域特征相差距离最小,那这个就是我们要找的特征空间,里面的特征被认为是域不变性特征
为了更好地理解这个方法,该篇主要以最大平均差异作为引入,其他方法只是在不同应用下提出的分布准则,可自行学习。
最大平均差异
1)定义
在最大平均差异(MMD)中,我们将两个分布之间的距离定义为平均嵌入特征之间的距离。如果我们在集合
X
=
{
x
1
,
.
.
.
,
x
m
}
X=\{x_1,...,x_m\}
X={x1,...,xm}和
Y
=
{
y
1
,
.
.
.
,
y
n
}
Y=\{y_1,...,y_n\}
Y={y1,...,yn}上的分布p和q,通过一个特征映射函数
f
∈
F
f \in F
f∈F将集合X和Y中的样本映射到对应的函数值,再分别计算它们的均值做差,这就是MMD。MMD的公式如下:
M
M
D
[
F
,
p
,
q
]
=
s
u
p
f
∈
F
(
E
x
∼
p
[
f
(
x
)
]
−
E
y
∼
p
[
f
(
y
)
]
)
MMD[F,p,q]=sup_{f \in F}(E_{x\sim p}[f(x)]-E_{y \sim p}[f(y)])
MMD[F,p,q]=supf∈F(Ex∼p[f(x)]−Ey∼p[f(y)])
所以可以看出主要就是需要寻找到那个函数集合 F F F,通过一系列数学证明[12],这个 F F F就是在再生核希尔伯特空间(Hilbert),该空间中的每一个函数都由一个核函数来线性表示。我们再来看具体应用DDC。
2)Deep Domain Confusion方法(MMD)-2014
经典的的DDC方法主要用于无监督DA,它是使用MMD ,即找一个核函数,将源域和目标域都映射到一个再生核的Hilbert空间上,在这个空间上取这个两个域数据分别作均值之后的差,然后将这个差作为距离。用这个方法训练网络的Loss是:
L
=
L
C
(
X
s
,
y
)
+
λ
∑
l
∈
L
L
M
(
D
s
l
,
D
t
l
)
L=L_C(X_s,y)+\lambda \sum_{l\in L}{L_M(D^l_s,D^l_t})
L=LC(Xs,y)+λl∈L∑LM(Dsl,Dtl)
其中,右侧第一项就是源域之前的模型的Loss(比如分类任务就是分类Loss),然后第二项是在指定层
l
l
l上的MMD距离之和,并乘上重要性系数
λ
\lambda
λ。在训练时有两个网络,一边是源域的,一边是目标域的,它们共享参数,然后在较深的某些层去计算MMD距离,然后按上面的公式那样加在一起作为整个模型的Loss。
这个DDC方法有很多改进,比如DAN(ICML 2015) 就是用了多个核函数的线性组合,并且在多个层上计算MMD距离。
2.4.2基于对抗的方法
这个方法主要就是利用对抗训练的思想。对抗训练的思想非常直接,就是将生成的对抗样本加入到训练集中做一个数据增强,让模型在训练的时候就先学习一遍对抗样本。所以需要引入判别器,并引入对抗损失来使得源域和目标域难以分辨(也就是混淆域判别器),那么源域和目标域就靠的足够近了。
最基础的基于对抗学习的域适应方法是Unsupervised Domain Adaptation by Backpropagation(ICML 2015)。它的基本思路就是用GAN去让生成器生成特征,然后让判别器判别它是源域的还是目标域的特征,如果判别不出来就说明在这个特征空间里源域和目标域是一致的。DAN模型的主体结构如图6,主要包括特征提取器(Feature Extractor,绿色)、判别器(Discriminator,红色)、分类器(Classifier,紫色) 三个部分。模型训练过程中,输入来自源域或目标域的数据,经过特征器后生成特征表示。一方面,对于有标签的源域数据,特征表示会进入分类器进行分类任务学习,损失函数为交叉熵损失。另一方面,源域和目标域的特征表示都会进入判别器,判别器根据特征表示预测该样本是来自源域还是目标域。
图6 GAN模型
基于它的基础上,还有其他优化方法,包括生成任务相关的一致性表示、学习域特征表示辅助域一致表示。
2.4.3基于重建的方法
这是基于图像到图像的转换,为了保证域适应过程中图片信息的完整性,通常将数据重建(保证重建误差最小)作为域适应过程中另一辅助任务。
一个简单的方法是学习从目标域图像到源域图像的转换,然后在源域上训练一个分类器。其中,图像到图像转换的最简单模型可以是基于编码器-解码器的网络,并使用判别器强制编码器-解码器网络生成与源域相似的图像。具体方法如DSN(NIPS,2016) 。
由图7,将源域和目标域的样本分别拆分成两部分,一部分是两个域私有的编码器 (Encoder),即尝试编码各自域中特定的信息,另一部分是两个域共有的编码器,显然想到得到的就是这种共有特征。在分类时尽量让私有的特征和共有的特征正交,这样体现出它们更不相关。并保证私有特征和共有特征通过解码器 *(Decoder)*尽可能还原出之前的样本,还要保证两个域生成的共有特征尽可能相像。训练好后,用源域样本(生成的共有特征)训练一个分类器,这个分类器在目标域上也有较好的性能。
图7 DSN模型图
2.5应用
跨领域迁移: 在现实世界中,我们经常需要将机器学习模型从一个领域迁移到另一个领域。例如,将一个在城市环境中训练的图像分类模型应用于农田图像分类任务。域适应技术能够帮助我们充分利用源域数据的知识,并将其迁移到目标域上,提升模型的性能和泛化能力。
数据获取成本降低: 在某些情况下,目标域的数据很难获得或者获取成本较高。通过域适应,我们可以利用已有的源域数据来提升目标域上的模型性能,减少对目标域数据的需求,从而降低数据获取的成本。[7]
2.6未来展望
- 时间序列上的迁移学习/OOD[11]: 绝大部分迁移学习算法都假定学习任务为图像分类。然而实际应用中并非只有图像这一种数据类型,实际的任务也并非只有分类。可能还有时间呢。
- 与 domain adaptation 联系紧密的半监督学习: 即使大模型大行其道,在下游任务微调时,仍然不可避免要遇到标签数据稀少的问题,而半监督学习旨在只有少量标注数据的时候利用大量无标注数据提升模型的泛化性,所以仍然很有研究价值
- 个性化联邦学习: 它研究的问题是在保护数据隐私安全 的前提下,聚合分散数据中的信息,学习强大鲁棒的模型。
- 老问题、新办法: 我们在尝试将元学习与domain adaptation结合起来,使DA不依赖于定义好的分布度量函数,而是自动地从数据中学习。
- 新的理论视角: 与因果推断等新的理论进行结合,统一地解决DA和DG问题。
3.域泛化
大家在了解域适应的过程中,会不会想域适应中我们需要计算源域和目标域的差异,如果已经计算出来他们之间的差异就需要将源域数据和目标数据都给到模型(只是分两次),那我们测试时不就算是事先知道了目标数据集吗?一般来说,模型是无法预知目标数据/测试数据的,也基于这个点,引入了 域泛化(domain generalization)** 。
3.1简述
域泛化也是一种源任务和目标任务一样,但是源域和目标域的数据分布不一样的迁移学习方法,其目标是从一个或几个不同但相关的域(源域/训练集)学习一个模型,在未知的目标域上得到很好的泛化。也就是说,在域泛化的每一个域中,所包含的类别是相同的,但是它们的联合分布不同,也就是获取每个域S的采样分布不同。直观的体现如下图8[6]
学术化的表述:给定M个有标签的源域 S t r a i n = { S i ∣ i = 1 , . . . , M } S_{train}=\{S^i|i=1,...,M\} Strain={Si∣i=1,...,M},其中 S i = { ( x ∗ i j , y j i ) } j = 1 n i S^i=\{(x*i_j,y^i_j)\}^{n_i}_{j=1} Si={(x∗ij,yji)}j=1ni。每两个域的联合分布不同: P X Y i ≠ P X Y j , 1 ≤ i ≠ j ≤ M P^i_{XY} \neq P^j_{XY},1 \leq i \neq j \leq M PXYi=PXYj,1≤i=j≤M。域泛化的目的就是从M个源域学习一个耐用和泛化的预测函数 h : X → Y h:X\rightarrow Y h:X→Y去测试目标域 S t e s t S_{test} Stest得到最小的预测误差,其中 S t e s t S_{test} Stest不可以用于训练并且 P X Y t e s t ≠ P X Y i , i ∈ { 1 , . . . , M } P^{test}_{XY} \neq P^i_{XY},i \in \{1,...,M\} PXYtest=PXYi,i∈{1,...,M}。
图8 来自数据集PACS的域泛化例子
从简述就可以看出来,域泛化与域适应最大的不同,就是目标域是未知的(无法用于训练)。
3.2研究方向
根据源域的数量,分为:
- 单源DG:最近的研究重点。单一域提供的训练样本和场景信息有限,限制了单源DG方法的改进。
- 多源DG:利用不同分布的多个数据集,提供了更多包含多种变化和环境因素的训练数据。
3.3域泛化的误差界
既然前面已经讲了域适应的误差界,那域泛化也应该有他的误差界,公式如下:
ε
t
(
h
)
≤
∑
i
=
1
M
π
∗
ε
i
(
h
)
+
γ
+
ρ
2
+
λ
H
,
(
P
X
t
,
P
X
∗
)
\varepsilon^t(h) \leq \sum^M_{i=1}{\pi^* \varepsilon^i(h)} +\frac{\gamma+\rho}{2}+\lambda_{H,(P^t_X,P^*_X)}
εt(h)≤i=1∑Mπ∗εi(h)+2γ+ρ+λH,(PXt,PX∗)
其中,
h
h
h是我们训练得到的泛化性预测函数。
这个也很清晰啦,左边
ε
t
(
h
)
\varepsilon^t(h)
εt(h)就是在目标域上的泛化误差,右边有三项来决定这个误差的上界。首先,是第一项
∑
i
=
1
M
π
∗
ε
i
(
h
)
\sum^M_{i=1}{\pi^* \varepsilon^i(h)}
∑i=1Mπ∗εi(h)就是每个源域i的泛化误差都有一个权重
π
\pi
π,将所有源域做一个线性组合;第二项的
γ
\gamma
γ是目标域和源域最优组合的最小距离,
ρ
\rho
ρ就是任意两个源域组合之后构成的最大距离,取它们的中值;第三项的
λ
H
,
(
P
X
t
,
P
X
∗
)
\lambda_{H,(P^t_X,P^*_X)}
λH,(PXt,PX∗)仍然可以先看出一个假想的常数,根据这三项也延申出了不同的方法。
3.4域泛化的方法
域泛化的方法种类主要分为三大类[14],分别是数据操作*(Data manipulation)* ,表征学习(Representation learning),学习策略(Learning strategy),见图9
图9 域泛化的方法
3.4.1数据操作
从数据层面上调整使得模型更强。这一类包括数据增强和数据生成两大部分。
(1)数据增强: 数据增强基于输入数据的增强、随机化和转换来增加样本,又分为以下两种:
1)域随机化 (Domain randomization):也是改变形状、位置、视角等等,或者有所章法来生成数据
2)对抗的数据增强 (Adversarial data augmentation) :我们不定义好的范式数据增强,而是在训练过程中,有意识地以我们梯度减少地反方向去做训练或者学习最坏的分布。下面是学习最坏分布的式子:
m
i
n
i
m
i
z
e
θ
∈
Θ
s
u
p
P
{
E
P
[
l
(
θ
;
(
X
,
Y
)
)
]
:
D
θ
(
P
,
P
0
)
≤
ρ
}
minimize_{\theta \in \Theta}\ sup_P\{E_P[l(\theta;(X,Y))]:D_\theta (P,P_0) \leq \rho\}
minimizeθ∈Θ supP{EP[l(θ;(X,Y))]:Dθ(P,P0)≤ρ}
过程就是在
ρ
\rho
ρ领域内去采样分布点,我们找到的最坏的分布,把最坏的分布最小化,就可以认为他是任何形式都可以泛化了[15]。
(2)数据生成:单纯增强数据远远不够,那就需要数据生成。数据生成通过VAE或GAN等生成不同的样本以帮助泛化。
3.4.2表征学习
(1)学习域不变特征(Domain-invariant representation learning) **
表征学习主要目的在于学习域不变特征,以使得模型对不同领域都能进行很好地适配。范式如下:
m
i
n
f
,
g
E
x
,
y
l
(
f
(
g
(
x
)
)
,
y
)
+
λ
l
r
e
g
min_{f,g} \ E_{x,y}l(f(g(x)),y)+\lambda l_{reg}
minf,g Ex,yl(f(g(x)),y)+λlreg
其中,
g
(
x
)
g(x)
g(x)是特征,
f
(
x
)
f(x)
f(x)是分类器,
l
r
e
g
l_{reg}
lreg是正则项。
领域不变特征学习主要包括四大部分:核方法、显式特征对齐、领域对抗训练、以及不变风险最小化。
1)核方法(kernel methods):这个想法就很像2.4.1节基于散度的方法中提到的核函数将数据映射到更高维的空间,从而减少源域与目标域的差距。
2)显式特征对齐(Explicit feature alignment):这个想法就是2.4.1节基于散度的思想,其中DDC就是一种特征对齐的方法。
3)域对抗学习(Domain adversarial learning):这个就类似于2.4.2节的基于对抗的方法,同样可以在域泛化中应用。
4)不变风险最小化(Invariant Risk Minimiation, IRM):核心思想是在模型训练过程中强制要求模型对混淆变量不敏感,即使混淆变量在不同的域中有所改变,模型也能够保持稳定的预测能力。
(2)特征解耦 (Feature disentanglement)
此外,还有单独的一类方法叫特征解耦(特征比较复杂,中间很多特征纠缠不清,要把他们解开来,所以叫解耦)。它与领域不变特征学习的目标一致都是通过学习领域不变表征来进行泛化,但学习方法不一致,试图将特征分解为领域共享或领域特定的部分,以更好地泛化。它的范式如下:
m
i
n
g
c
,
g
s
,
f
E
x
,
y
l
(
f
(
g
(
x
)
)
,
y
)
+
λ
l
r
e
g
+
μ
l
r
e
c
o
n
(
[
g
c
(
x
)
,
g
s
(
x
)
]
,
x
)
min_{g_c,g_s,f} \ E_{x,y}l(f(g(x)),y)+\lambda l_{reg}+\mu l_{recon}([g_c(x),g_s(x)],x)
mingc,gs,f Ex,yl(f(g(x)),y)+λlreg+μlrecon([gc(x),gs(x)],x)
虽然说我们的源域很多,它们有一些私有的特征,但一定有一些公共特征是不变的,我们要区分开哪些私有,哪些是共有(体现在
μ
l
r
e
c
o
n
(
[
g
c
(
x
)
,
g
s
(
x
)
]
,
x
)
\mu l_{recon}([g_c(x),g_s(x)],x)
μlrecon([gc(x),gs(x)],x)这个项上)。
以前的工作有UndoBias等,深度学习兴起后,很多人就用VAE的方式解耦,例如DIVA(ICML 2019)。
3.4.3学习策略
用其他领域的范式来解决域泛化问题。这一部分主要包括基于元学习和集成学习的方法。
(1)元学习 (Meta-learning):已有的源域分成若干个任务,然后模型从这若干个任务中学习泛化知识,例如MLDG(AAAI 2018),Feature Critic training(ICML 2019)。
(2)集成学习 (Ensemble learning):有若干个源域,如何最大限度地利用,那就需要做个集成。
此外,还有一些方法,比如自监督学习通过构建pretext任务来学习泛化表征,以及度量学习。
3.5应用
领域泛化问题在众多领域都得到了广泛应用(图4)。大多数已有工作偏重于设计更好的DG方法,因此,其往往都在图像分类数据上进行评估。除此之外,DG方法还被应用于行人再识别(Re-ID)、语义分割、街景识别、视频理解等计算机视觉的主流任务中。
特别地,DG方法被广泛应用于健康医疗领域,例如帕金森病识别、组织分割、X光胸片识别、以及震颤检测等。
在自然语言处理领域,DG被用于情感分析、语义分割、网页分类等应用。
DG也在强化学习、自动控制、故障检测、语音检测、物理学、脑机接口等领域中得到了广泛应用。
3.6未来展望
- 连续领域泛化: 一个系统应具有连续进行泛化和适配的能力,目前只是离线状态的一次应用。
- 新类别的领域泛化: 目前我们假定所有的领域具有相同的类别,未来需要扩展到不同类别中、乃至新类别中。
- 可解释的领域泛化: 尽管基于解耦的方法在可解释性上取得了进步,但是,其他大类的方法的可解释性仍然不强。未来需要对它们的可解释性进行进一步研究。
- 大规模预训练与领域泛化: 众所周知,大规模预训练(如BERT)已成为主流,那么在不同问题的在规模预训练中,我们如何利用DG方法来进一步提高这些预训练模型的泛化能力?
- 领域泛化的评价: 尽管有工作在经验上说明已有的领域泛化方法的效果并没有大大领先于经验风险最小化,但其只是基于最简单的分类任务。我们认为DG需要在特定的评测,例如行人再识别中才能最大限度地发挥其作用。未来,我们需要找到更适合DG问题的应用场景。[4]
4.总结
域适应 | 域泛化 | |
---|---|---|
分布差异 | 源域和目标域的数据分布不同 | 源域和目标域的数据分布不同 |
模型训练 | 训练过程可以拿到少量的目标域数据 | 训练过程无法拿到目标域数据 |
思想 | 把分布不同的源域和目标域的数据,映射到一个特征空间中,使其在该空间中的距离尽可能近 | 从一个或几个不同但相关的源域学习一个模型,在未知的目标域上得到很好的泛化 |
目标 | 减少域偏移 | 学习域无关的特征表示 |
方法 | 基于实例; 基于特征(常见); 基于模型参数 | 数据操作;表征学习;学习策略 |
应用 | 跨领域迁移;数据量少/数据成本高 | 图像分类、医疗、大语言模型 |
优点 | 使用了目标域数据性能好 | 模型只需训练一次 |
缺点 | 不够高效,一个新域训练一次;假设强,实际情况无法满足 | 泛化性能不足 |
学习ing,会不断修改完善~
参考资料:
[2]https://zhuanlan.zhihu.com/p/428097044
[3]https://blog.csdn.net/SHU15121856/article/details/106874558
[4]https://zhuanlan.zhihu.com/p/354740610
[5] S. Ben-David, J. Blitzer, K. Crammer, A. Kulesza, F. Pereira, andJ. W. Vaughan, “A theory of learning from different domains,”Machine learning, vol. 79, no. 1-2, pp. 151–175, 2010
[6]https://blog.csdn.net/DUDUDUTU/article/details/130782169
[7]https://blog.csdn.net/KongDere/article/details/132163130
[8]https://zhuanlan.zhihu.com/p/50710267
[9]范苍宁, 刘鹏, 肖婷, 赵巍, 唐降龙. 深度域适应综述: 一般情况与复杂情况. 自动化学报, 2021, 47(3): 515−548 doi: 10.16383/j.aas.c200238
[10]https://zhuanlan.zhihu.com/p/272508224
[11]https://www.zhihu.com/question/337731079/answer/772663385
[12] Gretton A, Borgwardt K M, Rasch M J, et al. A kernel two-sample test[J]. JMLR, 2012, 13(1): 723-773.
[13]https://cloud.tencent.com/developer/article/1746543
[14]https://www.bilibili.com/video/BV1ro4y1S7dd
com/p/272508224
[11]https://www.zhihu.com/question/337731079/answer/772663385
[12] Gretton A, Borgwardt K M, Rasch M J, et al. A kernel two-sample test[J]. JMLR, 2012, 13(1): 723-773.
[13]https://cloud.tencent.com/developer/article/1746543
[14]https://www.bilibili.com/video/BV1ro4y1S7dd
[15]Volpi, et al. Generalizing to Unseen Domains via Adversarial Data Augmentation. NeurlPS 2018