domain adaptation 小综述

  • 前段时间为了一个项目读了一些domain adaptation的论文,希望了解领域背景和前沿,现在进行一个总结。

  • 首先介绍下domain adaptation的概念,简单地说就是,在一个数据集上训练得到的模型无法很好地在另一个数据集上表现,两个数据集之间存在差异。用上术语就是两个domain之间存在domain shift,导致了性能的下降。举个例子,自然图像数据集上训练得到的目标检测模型,应用到遥感图像上表现很差,是因为自然图像和遥感图像之间存在着domain shift。domain adaptation 就是为了寻找各种各样的方法去克服domain shift。

  • domain adaptation 中有个子领域 unsupervised domain adaptation,这是我读的论文中主要涉及的领域,也是相对来说应用到真实场景中更加自然的一个方向。unsupervised domain adaptation 是指这样一类问题:

    你有两个数据集/数据源,我们称其中一个为source domain,另一个为 target domain。关于source domain我们有完善的标注,但它不是我们应用的目标,我们想要应用到 target domain 上,也就是说追求的是 target domain 上有较高的测试指标。但关于target domain我们根本没有标注。举个例子,我们希望在黑暗图像上有较好的目标检测效果,但我们只有很多黑暗图像,却没有关于这些图像的目标检测标注。那么把黑暗图像当作 target domain,我们可以借助有标注的高光图像数据集如coco和voc,把这样的数据集当作 source domain,通过种种方法,利用source domain 的 labeled samples 和 target domain 的 unlabeled samples,想办法克服两个domain之间的domain shift得到一个能够在target domain 上进行预测并且效果较好的方法,就是unsupervised domain adaptation的目标。

  • domain adaptation 问题除了 unsupervised domain adaptation 外还有 semi-supervised domain adaptation,这种 DA 的t arget domain 有 partial label。除此之外还可以有另一种分类方式,是根据 domain 的数量,有multi-single的domain adaptation和 single-single 的 domain adaptation 等,涉及到multi-domain adaptation的往往在方法的考虑要考虑如何无监督地或有监督地识别出不同的domain分别处理或是统计方法进行建模等,而 single-single domain adaptation 则更加关注于 domain shift 这一核心,接下来也将主要介绍 unsupervised domain adaptation 中的 single-single 方向。

  • 对于 single-source unsupervised domain adaptation,有三个方向:

    • 一个是通过数据增强和训练流程的控制等,学得一个对 domain 不敏感的模型;
    • 另一个是希望学得一个对不同 domain 不变的特征空间,换句话说,希望将 target domain 和 source domain 映射到这样一个特征空间,在这个空间下 target domain 的特征和 source domain 的特征有相同的分布。这个映射通常就是利用卷积神经网络来完成的;
    • 第三个方向则是利用GAN进行domain的transfer,要么是将source domain的图片通过GAN的风格转换变成target domain的图片,然后利用这些转换后的图片以及原有的标签训练一个针对target domain的模型,要么是训练一个将target domain到source domain的风格迁移的GAN和一个source domain上的模型,然后测试的时候直接将target domain的图片先转换成source domain再进行预测。
  • 对于上述的第二个方向,也有两类方法。一类是人为设计出某个公式,来衡量两个分布之间的距离,一类是利用GAN的框架,利用discriminator来衡量两个分布之间的距离。接下来具体介绍各类的流程:

  • 第一类的方法,例子是这篇论文:“Learning Target-Domain-Specific Classifier for Partial Domain Adaptation,” IEEE TRANSACTIONS ON NEURAL NETWORKS AND LEARNING SYSTEMS, VOL. 32, NO. 5, MAY 2021

  • 这类方法主要流程是这样的,用一个网络

    F

    1

    F1

    F1去提取source domain 图片输入的特征

    f

    1

    f1

    f1,用一个网络

    F

    2

    F2

    F2 去提取 target domain 图片输入的特征

    f

    2

    f2

    f2,用一个loss函数

    L

    L

    L 去计算一个batch下多个

    f

    1

    f1

    f1和多个

    f

    2

    f2

    f2这两个集合之间的分布距离

    l

    l

    l,其实理论上,这个loss应该衡量整个source domain和整个target domain两个分布之间的距离的,但一般都采取batch的方式,也就是说从source domain和target domain中分别采样一个batch的子集,那么这个 batch 的 source domain 的图片得到的特征和 target domain 的图片得到的特征之间的距离应该可以代表两个数据集在这个特征空间上的距离。通过减小

    l

    l

    l,就能得到一个domain invariant的特征空间。当然训练过程中同时还会将

    f

    1

    f1

    f1 继续前向传播产生预测结果并利用已有的label进行监督训练(一般是图像分类任务)。根据情况,可能会将

    F

    1

    F1

    F1

    F

    2

    F2

    F2共享权重,也就是用一个网络来提取两个domain的特征。所以得到的流程图就类似下面这样(截图自上一点的例子论文"Learning Target-Domain-Specific Classifier for Partial Domain Adaptation"):
    在这里插入图片描述

  • 第二类方法是利用GAN的流程进行的,简单地说,就是把上述的衡量两个分布之间距离的loss函数改成一个discriminator,通过训练希望让discriminator分不出两个domain生成的feature是哪个domain生成的,从而得到一个domain invariant的特征空间,例子论文是:“Adversarial Discriminative Domain Adaptation”,是2017 CVPR的论文。

  • 流程大概如下面几个图:
    在这里插入图片描述
    在这里插入图片描述

  • 而第三个方向的典型论文是这篇2018 CVPR的论文"From source to target and back: Symmetric Bi-Directional Adaptive GAN"把这里的GAN改成了cycleGAN。下面是它的流程:
    在这里插入图片描述

  • 此外呢,研究domain adaptation的通常都是在分类任务上验证的,其实这些方法也可以应用到具体的其它领域,其实就和目标检测与行人检测的关系是一样的。比如这一篇ECCV2020的文章"YOLO in the Dark - Domain Adaptation Method for Merging Multiple Models",就将domain adaptation的方法用到了黑暗图像目标检测上。

版权声明:本文为CSDN博主「sysu_first_yasuo」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_44326452/article/details/121241397

sysu_first_yasuo

我还没有学会写个人说明!

暂无评论

发表评论

相关推荐

MMDETECTION微调模型

在 COCO 数据集上预训练的检测器可以作为其他数据集(例如 CityScapes 和 KITTI 数据集)的良好预训练模型。本教程指导用户将Model Zoo 中提供的模型用于其他数据集以获得更好的性能。 在新数