Self-Adaptation for Unsupervised Domain Adaptation

全文阅读

Introduction

领域自适应:将一个用源域数据训练的机器学习模型适应到目标域。本文则关注无监督的领域自适应任务(Unsupervised Domain Adaptation UDA)。
两种主流UDA方法:

  • 基于映射
    将基于映射的方法用于UDA的思路是,将源域和目标域的映射到同一个空间,使得映射后的分布越接近越好。
    特征可以分为domain-independent (often referred to as pivots)domain-specific
  • self-training
    self-training的思想是在有labelled的数据上训练分类器,再用分类器对unlabeled数据预测,可信度高pseudo label再用于训练。这样逐步对unlabelled data进行标注。

本文的研究点在于,能否将两种方法融合提升UDA的性能。

18年的工作中提出,用分类器来最小化源域和目标域的熵,可以等价于学习一个映射空间,使得源样本和目标样本的相关度最大。

Minimal-entropy correlation alignment for unsupervised deep domain adaptation

步骤:

  • 给labelled样本学习一个映射,使得彼此间距离越大越好。用这个映射SprjS_{prj}来训练目标任务分类器。
  • 用这个分类器预测目标域样本的伪标签。
  • 用伪标签学习映射Tprj\mathcal{T}_{prj},最后用这些映射过的SprjS_{prj}Tprj\mathcal{T}_{prj}样本为目标任务学习分类器。

self-training 步骤总结:

  1. 给定训练集L=SL\mathcal{L}=\mathcal{S}_L,属于源域且有标签,在L\mathcal{L}上为目标任务训练分类器。
  2. 为标注数据集TU\mathcal{T}_U,属于目标域且没有标签,用步骤1训练的分类器预测,对于预测结果大于阈值τ\tau的,放入数据集L\mathcal{L},即扩充数据集。
  3. 重复上述两步,直到没有满足条件的样本可加入L\mathcal{L}

co-training
tri-training
利用多个分类器,采用投票的方式确定是否将pseudo标签赋给未标注样本。
Neural adaptation methods
Domain-adversarial training of neural networks 阅读笔记
Asymmetric tri-training for unsupervised domain adaptation, ICML 2017

Self-Adaptation(Self-Adapt)

对于UDA问题:
源域是包含有标签的数据,SL=SL+Sl,SlSS_L = S_L^+ \cup S_l^- ,S_l \subseteq S
未标签的样本可表示为,SUS_UTU\mathcal{T}_U分别属于源域和目标域。

源域的投影学习

(SprjS_{prj})
对于样本x及其最近邻居集合NN(x,D,k)NN(x,\mathcal{D},k),用它们词向量的和ϕ(x,D,k)\phi(x,\mathcal{D},k)来表示:
ϕ(x,D,k)=uNN(x,D,k)θ(x,u)u \phi(x,\mathcal{D},k)=\sum_{u\in NN(x,D,k)}\theta(x,u)u
其中,权重θ(x,u)\theta(x,u)是经过规范化的uuxx的余弦相似度,是的所有权重和相加为1。

SprjS_{prj}A+Rd×dA_+\in \mathbb{R}^{d\times d}ARd×dA_- \in \mathbb{R}^{d \times d}通过最大化下面的目标函数得到:
OL(A+,A)=xSL+A+xAϕ(x,SL,k)22+xSLAxA+ϕ(x,SL+,k)22 \begin{aligned} O_L(A_+,A_-)=\sum_{x\in S^+_L}||A_+x - A_-\phi(x,S_L^-,k)||^2_2 \\+ \sum_{x\in S^-_L}||A_-x - A_+\phi(x,S_L^+,k)||^2_2 \end{aligned}
其中,A+A_+AA_-被初始化为单位矩阵,这样学习出的AA^*也是一个对角矩阵,相当于这个投影是对原本的embedding的每一维度进行扩大或缩小。

这个目标函数其实就是期望,如果x属于正样本,则它和它最相似的负样本距离越大越好,我们期望每个样本间有足够的差异性。

得到的投影由AD={AxxD}A \circ \mathcal{D} = \{Ax|x\in \mathcal{D}\}表示。

伪标签生成

利用self-training的方法,对目标域中没有标签的数据进行标注,分类器表示为f(x,y;SL)f(x,y;S_L^*)
传统的self-training更新数据集后会重新训练分类器,但是作者发现在第一个迭代后效果并没有提升,因此取消了重新训练的过程,将迭代次数修改为1。

目标投影学习

(Tprj\mathcal{T}_{prj})
对于目标域的投影学习,目标函数为:
OL(B+,B)=xTL+B+xBϕ(x,TL,k)22+xTLBxB+ϕ(x,TL+,k)22 \begin{aligned} O'_L(B_+,B_-) = \sum_{x\in \mathcal{T}^{'+}_L}||B_+x-B_-\phi(x,\mathcal{T}^{'-}_L,k)||^2_2 \\ +\sum_{x\in \mathcal{T}^{'-}_L}||B_-x-B_+\phi(x,\mathcal{T}^{'+}_L,k)||^2_2 \end{aligned}

获得源域和目标域的投影后,利用这些数据训练一个目标任务的分类器,这里使用简单的逻辑回归。

Experiments

ablation experiments

实验设置也较为简单,每次选取一个最近邻居,对提出的框架进行消融实验,判断源域和目标域投影以及self-training部分的作用。
实验结论有

  • 仅对源域进行投影,相比于仅用源域数据训练的分类器作用到目标数据上,虽然都没有用到目标域的信息,效果会更好。验证这种使embedding区分度更大的方法是有效的。
  • 所有策略都使用时,效果最好。

compared with classical self-training methods

对于与传统self-training方法的对比,很容易想到Tri和Tri-D这样的算法,在生成伪标签阶段,对于最开始喂入模型的样本非常敏感,会很大程度上影响后续训练。

compared with neural UDA methods

model paper
VFAE The varia- tional fair autoencoder.CoRR 2015
DANN Domain-adversarial training of neural net- works. IMLR 2017
Asy-Tri Asymmetric tri-training for unsupervised do- main adaptation. ICML 2017
MT-Tri Strong baselines for neural semi-supervised learning under domain shift
虽然实验结果在三个子任务上,没有上述方法好,但是可能原因是因为参数设置,或者数据采样问题。此外,本方法相较于这些方法更加轻量,可作用在全量的目标域样本上。

主要思想概括

本文将投影学习和self-training进行结合,发现有助于提升传统UDA算法的性能。方法总共分为三步,学习源域样本的投影,利用该投影训练分类器,使用该分类器为目标域标注伪标签,对标注伪标签的目标域样本学习投影。最后,在投影上训练目标任务的分类器,完成领域自适应任务。

该方法没有用到神经网络,仅用简单的投影和分类策略,即可达到较好的效果,但是相比于结合神经网络的模型来说,表现力稍有欠缺,但好在模型轻量,有应用在大数据集的潜力。

词汇&句式学习

词汇

句式

  • Moreover, if we further use the pseudo-labelled instances to learn Tprj\mathcal{T}_{prj}, then we see a significant improvement of performance across all domain pairs, suggesting that UDA can benefit from both projection learning and self-training.
  • evaluated them against the proposed self-adapt on the same datasets, feature representations
    and settings to conduct a fair comparison.