Self-supervised Domain Adaptation for Computer Vision Tasks

全文阅读

Introduction

groud truth由于也是人为标记的,往往存在错误,因此不是绝对正确的。
几种减少使用人为标注数据的方法:

  • 主动学习(active learning):通过一定算法查询最有用的未标记样本,并交由专家标记,然后用这些样本训练模型。
  • Self-labeling:初始模型使用少量的标签数据,之后模型通过对未标注的数据进行预测,再用预测数据迭代进化模型。
  • 迁移学习(transfer learning):通过源任务来提升目标任务的性能(e.g. fine-tuning就是一个很好的例子。)
  • 领域自适应(domain adapatation):可以理解为源任务和目标任务相同,但是所给图片的域是不同的,例如在目标检测中,训练数据为卡通图片,而测试数据需要时真实图片,卡通人物和真实人物之间存在相似模式。pretext CNN

迁移学习 vs 领域自适应
领域自适应问题是迁移学习的研究内容之一,它侧重于解决特征空间一致、类别空间一致,仅特征分布不一致的问题。而迁移学习也可以解决上述内容不一致的情况。 ——迁移学习简明手册 王晋东 中国科学院计算技术研究所

自监督学习很少用于领域自适应任务中,本文即想研究能否利用自监督学习,学习到领域不变的特征表征。

主要贡献:
* 提出了一种通用的结合自监督 领域自适应的视觉表征学习方法。
* 聚焦于图像翻转的pretext learning任务,并提出了几种变体,并研究其性能。
* 提出了几种附加策略来提升自监督领域自适应的性能。(prediction layer alignment and batch normalization calibration)

Self-supervised visual representation learning

自监督学习的主要研究点在pretext任务的设计上。

Unsupervised Domain adaptation

domain adversarial training Domain-Adversarial Training of Neural Networks ICML 2015

Method

以语义分割任务为例,语义分割是在像素级别上的分类,属于同一类的像素都要被归为一类,因此语义分割是从像素级别来理解图像的。

语义分割例子——知乎@stone语义分割例子——知乎@stone

notations

  • E encoder feature extractor
  • S decoder
  • E + S CNN for semantic segmentation
  • source domain labeld samples {Xs,Ys}\{X_s,Y_s\}
  • P for pretext task
  • pretext training samples {Xt,Yy}\{X_t,Y_y\},这里的标签是可以自动生成,而无需人为标注的。
    框架图框架图

首先,利用target data构建self training samples,并输入encoder E,利用pretext task获得target data的表征。同时,source data是有标签的,将source data输入到encoder E中,进行有监督学习。因为两个域的数据的特征空间一致,encoder E可以将两个域的图片映射到同一个空间。这样main task训练出的模型,可以以target data为输入,进行主任务的推理。

框架较为简单,参数共享的思想也被用于很多多任务的工作中。

Pretext tasks

受image-patch based方法的启发,在进行图片旋转预测任务时,考虑图片的空间分布。

Image rotation prediction as pretext task
  • NtN_t 训练图片
  • Dt={xit}t==0NtD_t = \{x^t_i\}^{N_t}_{t==0}
  • g(xit,r),r[0,3]g(x^t_i,r),r\in[0,3] 旋转函数

自监督训练的目标为:
minθe,θp1Nti=1NtLp(xit,θe,θp) \min_{\theta_e,\theta_p}\frac{1}{N_t}\sum_{i=1}^{N_t}\mathcal{L}_p(x^t_i,\theta_e,\theta_p)
损失函数为:
Lp=14r=03log(P(E(g(xit,r),θe),θp)) \mathcal{L}_p = -\frac{1}{4}\sum_{r=0}^3log(P(E(g(x^t_i,r),\theta_e),\theta_p))

旋转预测任务的主要作用为:

By learning to predict the image orientations, the convolutional neural networks also implicitly learn to localize salient objects in the images, recognize their orientations and object types.

有利于学习领域不变的特征表征。

全图旋转的问题:
若对全图进行旋转预测任务,可能会引入噪声,并且不能学到领域不变的特征表示。

解决方法:
从全图中随机裁剪出一个补丁(patch),并旋转。进而获得更多样的样本。

Spatial-aware rotation prediction as pretext task

Region-based cropping and rotationRegion-based cropping and rotation

在上述crop的技巧上,将全图分割成四部分。

Objective function for domain adaptation

notations

  • feature maps from E E(xis)E(x^s_i)
  • segmentation predicitons: Ois=S(E(xis,θe),θs)RH×W×CO^s_i=S(E(x^s_i,\theta_e),\theta_s) \in \mathbb{R}^{H \times W \times C},H和W是输出的高和宽,C的语义类别

目标函数:
minθe,θs1Nsi=1NsLseg(xis,θe,θs) \min_{\theta_e,\theta_s}\frac{1}{N_s}\sum^{N_s}_{i=1}\mathcal{L}_{seg}(x^s_i,\theta_e,\theta_s)
损失函数:交叉熵
Lseg=h,wsCyis(h,w,c)log(Ois(h,w,c)) \mathcal{L}_{seg}=-\sum_{h,w}\sum{s\in C}y_i^s(h,w,c)log(O^s_i(h,w,c))
训练的总损失
minθe,θp,θs1Nsi=1NsLseg(xis,θe,θs)+λpNtj=1NtLp(xjt,θe,θp) \min_{\theta_e,\theta_p,\theta_s}\frac{1}{N_s}\sum^{N_s}_{i=1}\mathcal{L}_{seg}(x^s_i,\theta_e,\theta_s)+\frac{\lambda_p}{N_t}\sum_{j=1}^{N_t}\mathcal{L}_p(x^t_j,\theta_e,\theta_p)

改进策略

Prediction layer alignment

相关论文:
[Learning to adapt structured output space for semantic segmentation CVPR 2018]
[Adversarial alignment of class prediction uncertainties for domain adaptation ICPRAM 2019]

对于语义分割任务的decoder,简化为上采样层,相当于弱化了语义分割任务预测器的能力,这样encoder的最后一层与prediction layer更相关

增加一个判别器DD,判别器需要区分encoder输出的向量是来自源数据还是目标数据。Encoder的任务即为尽力欺骗判别器,使得判别器分不清输出向量来自哪个分布的数据,这样encoder即有了提取领域不变特征的能力。

判别器的任务是一个二分类问题,它需要分清E(xi)E(x_i)属于哪一个域,令Zi=D(E(xi))Z_i=D(E(x_i)),损失函数为二分类交叉熵:
Ldd(xi,θd)=h,w[(1z)logZi(h,w,0)+zlogZi(h,w,1)] \mathcal{L_d}_d(x_i,\theta_d)=-\sum_{h,w}[(1-z)logZ_i(h,w,0)+zlogZ_i(h,w,1)]
z=0 表示来自目标域,z=1 表示来自源域。
对于Encoder来说,它的任务是在给定判别器的情况下,欺骗判别器,使得输入z=0的数据时,D(E(xi))D(E(x_i))越大越好。对抗损失为:
Ladvd(xi,θe)=h,w[(1z)logZi(h,w,1)+zlogZi(h,w,0)] \mathcal{L_adv}_d(x_i,\theta_e)=-\sum_{h,w}[(1-z)logZ_i(h,w,1)+zlogZ_i(h,w,0)]

整个框架的总损失为:
minθe,θp,θs,θd1Nsi=1NsLseg(xis,θe,θs)+λpNti=1NtLp(xit,θe,θp)+λadvNt+Nsi=1Nt+NsLadv(xi,θe)+λdNt+Nsi=1Nt+NsLd(xi,θd) \begin{aligned} \min_{\theta_e,\theta_p,\theta_s,\theta_d} & \frac{1}{N_s}\sum_{i=1}^{N_s}\mathcal{L}_{seg}(x_i^s,\theta_e,\theta_s) \\ & +\frac{\lambda_p}{N_t}\sum_{i=1}^{N_t}\mathcal{L}_p(x_i^t,\theta_e,\theta_p) \\ & +\frac{\lambda_adv}{N_t+N_s}\sum_{i=1}^{N_t+N_s}\mathcal{L}_{adv}(x_i,\theta_e) \\ & +\frac{\lambda_d}{N_t+N_s}\sum_{i=1}^{N_t+N_s}\mathcal{L}_{d}(x_i,\theta_d) \end{aligned}

Batch normalization calibration

因为源域和目标域的数据分布存在差异,因此用源数据训练的模型,batch norm计算的μβ\mu_\betaσ2\sigma^2在应用到目标域时,会产生域偏移。作者提出,对于给定的预训练模型,将训练参数都固定住,利用目标数据重新计算Batch norm层的均值和方差。

主要思想

利用自监督学习,使得源数据和目标数据都可以无监督地进行学习,并利用域自适应方法,学习两个分布数据间的特征不变性表征。

创新点&贡献

  • 在传统领域自适应框架中加入自监督学习,实验表明自监督学习有利于提升领域自适应学习的性能。
  • 提出一种结合空间结构的旋转预测Pretext任务,并对比发现,这样简单的pretext任务效果和更加复杂的任务相似。

存在不足

域对抗部分存在缺陷,因为从实验来看,作者将该损失Ladv\mathcal{L}_adv 的权重调到很小0.01,也造成了负影响。从对比实验看,加上对抗部分时,分数均有降低,这可能由于对抗学习本来就不易训练,这么多任务组合使得encoder的参数难以很好地更新。感觉可以修改对抗部分的损失,将交叉熵改成信息熵:
Ladv=h,wzlogZi(h,w,0) \mathcal{L}_{adv}=-\sum_{h,w}zlogZ_i(h,w,0)
只需要优化目标数据的输入,使得对于目标数据,encoder可以骗过判别器。

句式&词汇学习

  • subjectivity n 主观性,主观
  • fatigue n 疲劳
  • calibration 1. n. 调准;校准 (测量器具上的)刻度 口径测定
  • pioneer 1. n. 拓荒者; 开发者 2. 先驱者; 创始者; 先锋 3. vt. 开拓, 开发, 创始

相关论文: