Partial Adversarial Domain Adaptation学习笔记
Partial Adversarial Domain Adaptation学习笔记
tip
对目标域的样本预测值进行基于源域类别重要性权值的平均化。
Abstract
作者首先提出部分域适应的问题设定,即目标域的类别空间是源域的类别空间的子集。之后提出 Partial Adversarial Domain Adaptation (PADA),能在源域分类器以及域对抗部分的训练中自动把对属于非共享类别中样本的权重降低,来减轻负迁移问题;并通过对齐共享类别空间中样本的特征分布来促进正向迁移。
Introduction
作者提出的PADA是一个端到端的框架,并在很大程度上扩展了域对抗适应方法的能力以解决新的部分域适应情况。PADA在共享类别空间中对齐源域样本和目标域样本的特征分布,更重要的是,识别属于非共享类别的无关源域样本,并自动降低它们的重要性权值。与以前的方法相比,关键的改进是能够同时促进相关源域数据的正向传输和减轻不相关源数据的负向传输。
Partial Adversarial Domain Adaptation
本文作者提出部分域适应,源域表示为\(D_s=\{(x_i,y_i)\}^{n_s}_{i=1}\),其中\(n_s\)表示源域样本的数量,源域拥有类别的个数为\(|C_s|\)。目标域表示为\(D_t=\{x_i\}^{n_s+n_t}_{i=n_s+1}\),其中\(n_t\)表示目标域未标注样本的数量,目标域拥有类别的个数为\(|C_t|\)。目标域的类别空间是源域类别空间的子集:\(C_t\sub C_s\),即\(|C_s|>|C_t|\).源域与目标域的概率分布分别由p与q表示,且$p_{C_t}\neq q \(,其中\)p_{C_t}\(表示源域中属于目标域类别空间\)C_t\(的样本的分布。本文的目标就是设计一个深度神经网络模型,通过学习可迁移的特征\)f=G_f(x)\(以及适应分类器\)y=G_y(f)$来减小域间差异。
在部分域适应中存在两大难点:
- 由于目标域的样本未标注,源域域目标域的概率分布不同,所以在源域\(D_s\)训练的分类器\(G_y\)不能直接运用到目标域\(D_t\)。
- 无法得知源域类别空间\(C_s\)中的哪部分与目标域类别空间\(C_t\)共享,因为\(C_t\)在训练中是无法访问的。
一方面,该方法要减轻由源域中非共享类别\(C_s/C_t\)造成的负迁移;另一方面,减少\(p_{C_t}\)和\(q\)之间的分布差异,促进正向迁移,实现共享类别空间\(C_t\)中的知识迁移。
Domain Adversarial Neural Network
对抗网络能够有效地提取可迁移特征,其中包括一个域分类器\(G_d\)来区别源域与目标域,还有一个特征提取器经过微调后来欺骗域分类器。
为了得到域不变性特征\(f\),通过最大化域分类器\(G_d\)的损失来学习特征提取器\(G_f\)的参数\(\theta_f\),通过最小化域分类器的损失来学习\(G_d\)的参数\(\theta_d\)的参数。同时还要最小化标签分类器\(G_y\)的损失。
则对抗网络的目标函数为:
其中的\(\lambda\)参数为权衡参数。当训练收敛后,参数\(\hat{\theta}_f,\hat{\theta}_y,\hat{\theta}_d\)表达公式(1)的鞍点:
Partial Adversarial Domain Adaptation
在部分域适应问题中,由于目标域的类别空间是源域类别空间的子集,所以直接进行迁移的话会造成一部分目标域的样本被强迫与源域非共享类别中的样本对齐,从而造成负迁移。由于在显示情况中,我们使用非常大的数据集作为源域的样本,而目标域的数据集较小,所以\(|C_t|<< |C_s/C_t|\)。于是要想方法减小甚至消除非共享类别样本造成的负迁移的影响。
本文提出PADA方法,它的主要思想就是在源域分类器以及域对抗网络的训练中降低源域属于非共享类别样本的重要性权值。作者发现源域分类器对于每一个源域样本\(x_i\)输出的\(\hat{y}_i=G_y(x_i)\)很好地表征了样本\(x_i\)属于源域\(|C_s|\)个类别中的某一类的概率。
因为源域非共享类别空间和目标类别空间是不相交的,所以目标样本应该与非共享类别空间中的源域样本显著不同。因此,将目标域样本对齐到源域非共享类别的概率\(y^k_i,k\in C_s/C_t\)是很小的。但源域分类器可能会在一些目标域样本上犯一些错误,并为错误类别分配较大概率。为了消除这种错误,作者提出对目标域所有样本的标签预测值进行平均化,因此,表示每个源类对训练的贡献的权重可以计算如下:
其中\(\gamma\)是一个\(|C_s|\)维的权重向量,其中的每一维代表对应的源域类别的重要性。具体来说,由于目标域的样本不属于源域的非共享类别空间,所以对应非共享类别的权重一定比共享类别的权重低。由于\(\gamma\)的定义\(\sum\limits^{|C _s|}\limits_{k=1}\gamma_k=1\),有可能一些权重的值会非常小,所以对\(\gamma\)的值进行如下调整:\(\gamma\leftarrow \gamma/max(\gamma)\)。
于是PADA的目标函数为:
这里的\(y_i\)表示源域样本\(x_i\)的ground truth标签,而\(\gamma_{y_i}\)表示相应的类别权重,$\lambda \(表示相应的衡量参数,优化任务最终找到参数\)\hat{\theta_f},\hat{\theta_y},\hat{\theta_d}$满足: