领域自适应
迁移学习的核心思想在于,一个任务上训练得到的模型所包含的知识可以部分或全部地转移到另一个任务上。这种知识转移可以是网络参数、特征表示、数据间的关系等。通过迁移学习,我们可以利用已有的知识和经验来加速新任务的学习过程,降低模型训练的难度和成本。而领域自适应和领域泛化是迁移学习的两个重要分支。
一、定义
领域自适应(Domain Adaptation, DA)是迁移学习的一个热门研究方向,它主要关注于如何缩小源领域(source domain)和目标领域(target domain)之间的差异,以便将源领域中的知识有效地迁移到目标领域中。这通常涉及到对源领域和目标领域的数据分布进行建模,并通过特征选择、特征变换、重标定等操作来减小领域间的差异。领域自适应的目标是使模型在目标领域上也能表现出良好的性能,即使目标领域的数据分布与源领域不同。
解释一下“领域的数据分布不同”是什么意思?左边数据是通过2D渲染所形成的,如左边的飞机,自行车,公交车,汽车,马等等;右边的数据是真实世界的数据,如飞机,自行车,公交车,马等等。虽然说都是马这种生物,但是数据分布却不相同,有真实世界中的马,也有通过2D渲染所形成的马,即 P ( x , y ) ≠ Q ( x , y ) P(x,y)\neq Q(x,y) P(x,y)=Q(x,y)。
领域自适应(Domain Adaptation)是一种源任务和目标任务一样,但是源域和目标域的数据分布不一样,并且源域有大量的标记好的样本,目标域则没有(或者只有非常少的)有标记的样本的迁移学习方法。这样就是怎么把源域上从大量的有标记样本中学习的知识迁移到目标域上,来解决相同的问题,而目标域上能利用的大多只有没有标记的样本。它关注的是如何缩小源域和目标域之间的数据分布差异,从而实现模型的迁移。
二、常用方法
1、最大均值差异化
最大均值差异化(Maximum Mean Discrepancy, MMD)的基本思想是最小化源领域和目标领域之间的均值差异。MMD 是一种非参数的度量方式,用于评估两个数据分布之间的差异。在领域自适应的上下文中,MMD 通常被用来衡量源领域和目标领域之间的分布差异,并尝试通过优化模型来减小这种差异,从而提高模型在目标领域上的性能。
MMD 的核心思想是,在再生核希尔伯特空间(Reproducing Kernel Hilbert Space, RKHS)中,如果两个数据集的均值表示(或嵌入)在这个空间中的差异很小,那么可以认为这两个数据集在某种程度上是相似的。MMD 通过计算这两个数据集在RKHS 中的均值嵌入之间的最大距离来量化它们之间的差异。
MMD的应用
TCA是一种边缘分布自适应方法,它假设存在一个特征映射ϕ,使得映射后数据的分布 P ( ϕ ( x s ) ) ≈ P ( ϕ ( x t ) ) P(ϕ(xs)) ≈ P(ϕ(xt)) P(ϕ(xs))≈P(ϕ(xt)),其中 x s 和 x t x_s和x_t xs和xt分别代表源领域和目标领域的数据。TCA的目标是最小化源领域和目标领域之间的距离,而在这个过程中,MMD常被用作度量两个领域之间分布差异的工具。MMD通过计算两个数据集在(RKHS)中的均值嵌入之间的距离来量化它们之间的差异。
在TCA的框架下,MMD被用来衡量源领域和目标领域在映射后的特征空间中的分布差异。通过优化模型以最小化MMD损失,TCA能够找到一个特征映射ϕ,使得映射后的数据在两个领域之间的分布差异尽可能小。这样,原本在源领域上训练的模型就能够更好地适应目标领域的数据分布,从而提高在目标领域上的性能。
2、领域自适应SVM
领域自适应SVM(Domain Adaptation SVM)是一种常用的领域自适应方法,其基本思想是在源领域和目标领域之间共享一个SVM模型,并通过特征变换来实现源领域到目标领域的映射。通过特征变换、实例加权或模型微调等方法,使在源领域上训练的SVM模型能够更好地适应目标领域的数据分布,从而提高模型的泛化能力。
工作原理
1、特征表示:首先,需要为源领域和目标领域的数据定义适当的特征表示。这些特征应该能够捕捉到数据的关键信息,并有助于区分不同的类别。
2、领域差异度量:接下来,需要一种方法来度量源领域和目标领域之间的差异。这可以通过计算两个领域数据在特征空间中的某种统计量(如均值、协方差等)的差异来实现,或者使用更复杂的度量方法,如最大均值差异(MMD)。
3、领域自适应策略:根据度量的领域差异,选择合适的领域自适应策略来调整SVM模型。这可以包括特征变换(将源领域的数据映射到一个新的特征空间中,使其更接近目标领域的数据分布)、实例加权(为源领域的训练样本分配不同的权重,以强调那些与目标领域更相似的样本)、或者模型微调(在目标领域的数据上进一步训练已经用源领域数据预训练的SVM模型)。
4、模型训练与评估:最后,使用调整后的特征表示和领域自适应策略来训练SVM模型,并在目标领域的数据上评估其性能。如果性能不够理想,可能需要调整领域自适应策略或重新考虑特征表示。
3、深度领域自适应
深度领域自适应的基本思想是,在源领域和目标领域之间建立一个共享的深度神经网络模型,并通过特征变换和模型微调来实现源领域到目标领域的迁移。深度领域自适应通常包含以下几个步骤:
特征提取:使用一个预训练的深度神经网络模型,提取源领域和目标领域的特征。
特征变换:学习一个从源领域到目标领域的特征变换函数,将源领域的特征映射到目标领域的特征空间中。
模型微调:使用目标领域的数据对模型进行微调,进一步提高模型在目标领域上的性能。
常用方法
1、基于批归一化的迁移学习
批归一化(Batch Normalization,BN)已经被广泛应用于深度网络中。BN在深度网络的每一层里将输入数据进行归一化,使其变化为0均值和1方差的数据。此举减小了一个批次内的数据之间的分布差异、同时可以大大加快网络的收敛速度。我们令 μ 和 o ² μ和o^² μ和o²分别表示均值和方差。对于一个批次的数据 B = { ( x i , y i ) } i = 1 m B={\{(xi,yi)}\}^m_{i=1} B={(xi,yi)}i=1m,BN的目标是将每一个样本都归一化成如下的形式:
计算均值: μ B = 1 m ∑ i = 1 m x i \mu_{\mathcal{B}} = \frac{1}{m} \sum_{i=1}^{m} x_i μB=m1∑i=1mxi ,计算方差: σ B 2 = 1 m ∑ i = 1 m ( x i − μ B ) 2 \sigma_{\mathcal{B}}^2 = \frac{1}{m} \sum_{i=1}^{m} (x_i - \mu_{\mathcal{B}})^2 σB2=m1∑i=1m(xi−μB)2
归一化 x ^ i = x i − μ B σ B 2 + ϵ \hat{x}_i = \frac{x_i - \mu_{\mathcal{B}}}{\sqrt{\sigma_{\mathcal{B}}^2 + \epsilon}} x^i=σB2+ϵxi−μB, 缩放和平移 y i = γ x ^ i + β y_i = \gamma \hat{x}_i + \beta yi=γx^i+β
在深度学习中,随着网络层数的增加,输入数据的分布会逐渐发生变化,这种现象被称为“内部协变量偏移”(Internal Covariate Shift)。批归一化通过归一化每一层的输入数据,有助于稳定数据的分布,从而改善模型的训练效果。在领域自适应中,源领域和目标领域的数据分布往往存在差异,这会导致在源领域上训练的模型在目标领域上表现不佳。为了缩小这种分布差异,提高模型在目标领域上的性能,可以采用基于批归一化的迁移学习方法。
一种有效的方法是自适应的批归一化(Adaptive Batch Normalization, AdaBN)。AdaBN的思想是首先在源领域数据上使用批归一化操作,然后在新的目标领域数据上重新计算批归一化的统计量(均值和方差)。通过这种方法,AdaBN能够针对不同领域的数据进行归一化处理,从而大大减少数据分布的差异。实验表明,AdaBN在多个领域自适应任务中都取得了显著的性能提升。
优点:
- AdaBN简单易行,只需要在目标领域数据上重新计算批归一化的统计量即可。
- 它能够有效地缩小源领域和目标领域之间的分布差异,提高模型在目标领域上的性能。
局限性:
- AdaBN主要关注于数据层面的分布差异,对于特征层面的差异可能无法完全解决。
- 当源领域和目标领域之间的差异非常大时,仅通过AdaBN可能无法完全实现领域自适应。
2、基于多表示学习的迁移网络结构
在迁移学习中,传统的领域自适应方法通常使用单一的结构将两个领域(源领域和目标领域)的数据提取到同一个特征空间,并在这个特征空间下使用不同方式(如对抗、MMD等)衡量两个领域分布的差异,通过最小化这个分布差异来实现分布对齐。然而,单一结构提取的特征表示往往只能包含部分信息,无法全面反映原始数据的特性。
多表示学习的迁移网络结构优势
为了更全面地表示原始数据,多表示学习的迁移网络结构被提出。这种结构通过多个子结构将原始数据映射到不同的特征空间(即多种表示),并在这些特征空间中分别进行特征对齐。这样做的好处是可以捕捉到原始数据的多个方面信息,从而提高迁移学习的效果和泛化能力。
大多数领域自适应的方法使用单一的结构将两个领域的数据提取到同一个特征空间,之后在此特征空间下使用不同方式(对抗学习或MMD等)最小化此分布的差异实现分布对齐。然而,单一结构提取的特征表示通常只能包含部分信息。例如,原始图像如图(a)所示。通过单一结构提取的特征表示可能仅包含部分信息,如图(b)饱和度、图©亮度、和图 (d) 色调。
从图像中提取的特征通常只包含原始图像的部分信息,导致只在单一结构提取的特征上做特征对齐也只能关注到部分信息。因此,需要提取多种表示以更全面地表示原始数据。MRAN使用一种混合结构将原始图像提取到不同的特征空间(多种表示)以在不同的特征空间分别进行特征对齐。
多表示领域自适应是一种通用的结构。其可以使用不同的方法进行特征对齐。文献中使用CMMD(Center MMD)进行特征对齐。研究者可根据自己的问题设定以便灵活修改此结构。
MRAN方法如图所示。此框架相对简单,通过多个子结构将特征映射到多个特征空间,在多个特征空间中分别进行特征对齐。此处的多个子结构可以是不同的结构。
CMMD 损失:
其中
D
s
(
c
)
和
D
t
(
c
)
D^{(c)}_s和D^{(c)}_t
Ds(c)和Dt(c)分别表示源域和目标域中属于第c类的样本集合,
n
s
(
c
)
n^{(c)}_s
ns(c)和
n
s
(
c
)
n^{(c)}_s
ns(c)则分别表示其样本个数。
最后的损失函数包含两个部分:一个是分类的损失(交叉熵),另一个是不同表示下的CMMD损失之和。可以看到,优化目标和大多数迁移学习的方法相比非常简单、且具有很强的可扩展性(CMMD损失可以替换为任意自适应损失 )。
结构特点
- 多子结构映射:该结构包含多个子结构(如不同的神经网络层或模块),每个子结构负责将原始数据映射到一个特定的特征空间。这些特征空间可能关注于数据的不同方面(如颜色、纹理、形状等)。
- 特征对齐:在每个特征空间中,使用适当的方法(如对抗训练、MMD等)进行特征对齐,以减小源领域和目标领域之间的分布差异。由于存在多个特征空间,因此可以在多个层面上进行特征对齐,从而更全面地考虑数据的特性。
- 灵活性和可扩展性:多表示学习的迁移网络结构具有高度的灵活性和可扩展性。研究者可以根据自己的问题设定和需求,选择合适的子结构和特征对齐方法,并可以根据需要进行调整和优化。
3、知识蒸馏
知识蒸馏(KnowledgeDistillation,KD)是图灵奖获得者、深度学习三巨头之一的Geoffrey Hinton在2014年提出的用于知识迁移和深度模型压缩的技术。知识蒸馏的原理如图所示。其核心是,一个训练好的复杂模型(教师网络)中蕴含的知识可以被“提纯(蒸馏)”到另一个小模型中。小模型拥有比大模型更简单的网络结构、同时其预测效果也与大模型相近。因此,知识蒸馏也可以被视为一种模型压缩技术。
知识蒸馏要求首先训练好复杂的教师网络模型,然后训练学生模型使其预测无限接近教师模型。令p和q分别表示学生网络和教师网络的预测,则知识蒸馏的学习目标为
L
K
D
=
L
(
y
,
p
)
+
λ
L
(
p
,
q
)
L_{KD}=L(y,p)+{\lambda}L(p,q)
LKD=L(y,p)+λL(p,q)
其中y为真实样本的标签,L(·,)为损失函数,例如交叉熵。式中第一项表示学生网络的训练误差,第二项则表示学生网络与教师网络输出的接近程度。直接将网络的输出(即softmax后的概率)作为评价标准可能会使得网络的信息由于softmax的存在变得难以传递。因此,Hinton团队提出了带有温度(Temperature)的softmax 函数: softmax ( x i , T ) = e x i T ∑ j e x j T \text{softmax}(x_i, T) = \frac{e^{\frac{x_i}{T}}}{\sum_{j} e^{\frac{x_j}{T}}} softmax(xi,T)=∑jeTxjeTxi
知识蒸馏在领域自适应中的优势
1、提高模型性能:通过知识蒸馏,目标领域的模型可以学习到源领域复杂模型的关键特征和结构信息,从而提高其在新任务上的性能。
2、减少计算成本:与直接在目标领域上训练复杂模型相比,使用知识蒸馏训练简单模型可以显著降低计算成本和存储需求。
3、增强模型泛化能力:知识蒸馏有助于模型学习到更加泛化的知识表示,从而提高模型在不同领域和任务上的泛化能力。
4、域对抗神经网络
生成对抗网络(Generative Adversarial Network,GAN)受到自博弈论中的二人零和博弈(Two-player game)思想的启发而提出。它一共包括两个部分:生成网络(Generative Network)负责生成尽可能以假乱真的样本,这部分称为生成器(Generator);判别网络(Discriminative Network)负责判断样本是真实的还是由生成器生成的,这部分称为判别器(Discriminator)。生成器和判别器互相博弈,便完成了对抗训练。
DANN,全称是Domain-Adversarial Neural Network(域对抗神经网络),是一种用于领域自适应(Domain Adaptation)的深度学习框架。在机器学习和计算机视觉领域,领域自适应是一种技术,旨在将一个或多个源域(source domain)中学习的知识迁移到目标域(target domain)中,尽管这两个域在数据分布上存在差异。
DANN的核心思想是通过引入一个域分类器(domain classifier)来最大化领域之间的差异,同时利用一个特征提取器(feature extractor)和一个标签预测器(label predictor)来最小化标签预测的损失。这两个过程在训练过程中是相互竞争的,形成了一种对抗关系:
1、特征提取器:它的目标是从输入数据中提取出对于域差异不敏感但对分类任务有用的特征。这意味着特征提取器试图欺骗域分类器,使其无法区分数据来自哪个域。
2、域分类器:它的任务是判断一个输入样本是来自于源域还是目标域。它的目标是与特征提取器相抗衡,即尽可能准确地分辨出样本的域标签。
3、标签预测器:在源域数据上训练,目标是正确预测输入样本的标签。其性能是评估DANN是否有效将源域知识迁移到目标域的关键指标。
在训练过程中,通过反向传播算法同时更新这三个组件的参数。具体地,会交替进行两个步骤:
- 最小化标签预测损失:这一步通过标准的分类损失函数(如交叉熵损失)来优化特征提取器和标签预测器,使其能在源域数据上更好地进行标签预测。
- 最大化域分类损失:这一步通过梯度反转层(Gradient Reversal Layer, GRL)来实现,该层在正向传播时保持不变,但在反向传播时将其梯度的符号反转。这样,在优化域分类器以最小化其分类损失的同时,实际上是在促使特征提取器学习能够欺骗域分类器的特征,即使得源域和目标域的数据在特征空间中的分布更加接近。