域适应是计算机视觉的一个领域,我们的目标是在源数据集上训练一个神经网络,并确保在显著不同于源数据集的目标数据集上也有良好的准确性。为了更好地理解域适应和它的应用,让我们先看看它的一些用例。

我们有很多不同用途的标准数据集,比如GTSRB用于交通标志识别,LISA和LARA dataset用于交通信号灯检测,COCO用于目标检测和分割等。然而,如果你想让神经网络很好地完成你的任务,比如识别印度道路上的交通标志,那么你必须首先收集印度道路的所有类型的图像,然后为这些图像做标注,这是一项费时费力的任务。在这里我们可以使用域适应,因为我们可以在GTSRB(源数据集)上训练模型,并在我们的印度交通标志图像(目标数据集)上测试它。

在很多情况下,很难收集数据集,这些数据集具有训练鲁棒神经网络所需的所有变化和多样性。在这种情况下,在不同的计算机视觉算法的帮助下,我们可以生成具有我们需要的所有变化的大型合成数据集。然后在合成数据集(源数据集)上训练神经网络,并在真实数据集(目标数据集)上测试它。

为了更好地理解,我假设我们对目标数据集没有可用的标注,但这不是唯一的情况。

因此在域适应方面,我们的目标是在一个标签可用的数据集(源)上训练神经网络,并在另一个标签不可用的数据集(目标)上保证良好的性能。

分类pipeline

现在让我们看看如何实现我们的目标。考虑以上图像分类的例子。为了从一个域适应到另一个域,我们希望我们的分类器能够很好地从源数据集和目标数据集中提取特征。由于我们已经在源数据集上训练了神经网络,分类器必须在源数据集上表现良好。然而,为了使分类器在目标数据集上表现良好,我们希望从源数据集和目标数据集提取的特征是相似的。因此,在训练时,我们加强特征提取,为源和目标域图像提取相似的特征。

成功的域适应

基于目标域的域自适应类型

根据目标域提供的数据类型,域适应可分为以下几类:

  • 监督 — 你已经标记了来自目标域的数据,目标域数据集的大小比源数据集小得多。
  • 半监督 — 你既有目标域的标记数据也有未标记数据。
  • 无监督的 — 你有很多目标域的未标记样本。

域适应技术

主要采用三种技术实现任意域适应算法。以下是域适应的三种技术:

  • 基于分布的域适应
  • 基于对抗性的域适应
  • 基于重建的域适应

现在让我们逐个来看每种技术。

基于分布的域适应

基于散度的域适应原理是最小化源与目标分布之间的散度准则,从而得到域不变性特征。常用的分布准则有对比域描述、相关对齐、最大平均差异(MMD),Wasserstein等。为了更好地理解这个算法,让我们先看看一些不同的分布。

在最大平均差异(MMD)中,我们试图找出给定的两个样本是否属于相同的分布。我们将两个分布之间的距离定义为平均嵌入特征之间的距离。如果我们有两个在集合X上的分布P和Q。MMD通过一个特征映射来定义,: X→H,这里H再生核希尔伯特空间。MMD的公式如下:

为了更好地了解MMD,请查看以下描述:如果两个分布的矩相似,则它们是相似的。通过使用kernel,我可以对变量进行变换,从而计算出所有的矩(一阶,二阶,三阶等)。在潜在空间中,我可以计算出矩之间的差值并求其平均值。

在相关对齐中,我们尝试对源和目标域之间的相关(二阶统计量)进行对齐,而不是使用MMD中的线性变换对均值进行对齐。

训练时

推理时

上面的结构假设源域和目标域有相同的类别。在上述架构中,在训练过程中,我们最小化了两种损失,分类损失和基于散度的损失。分类损失通过对特征提取器和分类器的权值进行更新,确保获得良好的分类性能。而散度损失则通过更新特征提取器的权值来保证源域和目标域的特征相似。在推理过程中,我们只需将目标域图像通过神经网络。

所有的分布通常是非参数而且是人工的数学公式,不是专门针对数据集或我们的问题的,如分类,目标检测,分割等。因此,这种基于分布的方法并不能很好地解决我们的问题。但是,如果分布可以通过数据集或问题来学习,那么它将比传统的预定义分布表现得更好。

基于对抗的域适应

为了实现基于对抗性的域适应,我们使用GANs。这里我们的生成器是简单的特征提取器,我们添加了新的判别器网络,学习区分源和目标域的特征。由于这是一个双人游戏,判别器帮助生成器产生的特征对于源和目标领域是不可区分的。由于我们有一个可学习的判别器网络,我们学习特定于我们的问题和数据集的特征提取,这可以帮助区分源和目标域,从而帮助生成器产生更鲁棒的特征,即,不能很容易区分的特征。

训练时,在源域上

训练时,在目标域上

假设是分类问题,我们使用两种损失,分类损失和判别器损失。分类损失的目的已在前面说明。判别器损失有助于判别器正确地区分源域和目标域的特征。这里我们使用梯度反向层(GRL)来实现对抗性训练。GRL block是一个简单的block,它在反向传播时将梯度乘以-1或一个负值。在训练过程中,为了更新生成器,我们有来自两个方向的梯度,首先来自分类器,其次来自判别器。由于GRL的存在,判别的梯度乘以一个负值,导致训练生成器的效果与判别器相反。例如,如果优化判别器损失函数的计算梯度为2,那么我们使用-2(假设负值为-1)来更新生成器。通过这种方式,我们试图训练生成器,使其生成即使是判别器也无法区分源域和目标域的特征。GRL层在许多域适应的文献中都有广泛的应用。

基于重建的域适应

这是基于图像到图像的转换。一个简单的方法是学习从目标域图像到源域图像的转换,然后在源域上训练一个分类器。我们可以用这个想法引入多种方法。图像到图像转换的最简单模型可以是基于编码器-解码器的网络,并使用判别器强制编码器 — 解码器网络生成与源域相似的图像。

训练时

测试时

另一种方法是使用CycleGANs。在Cycle GAN中采用了基于两种编解码器的神经网络。一个用于将目标转换为源域,另一个用于将源转换为目标域。我们同时训练了生成两个域(源域和目标域)图像的GANs。为了保证一致性,引入了循环一致性损失。这可以确保从一个域转换到另一个域,然后再转换回来,得到与输入大致相同的图像。因此,两个配对网络的总损失和是判别器损失与循环一致性损失的和。

总结

我们已经看到了三种不同的技术,可以帮助我们实现或实施不同的域适应方法。它在图像分类、目标检测、分割等不同任务中都有很大的应用。在某些方面,我们可以说,这种方法类似于人类如何学习视觉识别不同的东西。我希望这个博客能让你了解我们是如何思考不同的域适应pipelines的。

英文原文:https://levelup.gitconnected.com/understanding-domain-adaptation-63b3bb89436f

对迁移学习中域适应的理解和3种技术的介绍相关推荐

  1. 迁移学习中的负迁移:综述

    点击上面"脑机接口社区"关注我们 更多技术干货第一时间送达 导读 迁移移学习(TL)试图利用来自一个或多个源域的数据或知识来促进目标域的学习.由于标记成本.隐私问题等原因,当目标域 ...

  2. 迁移学习中使用下载好的权重

    迁移学习中使用下载好的权重 1.最开始使用Vgg16 2.将下载好的权重放到对应的目录 将下载好的权重放到./keras/models中 改用其他内嵌网络会发现,直接可以用了

  3. 竞赛获奖系统解读:远场说话人确认中基于两阶段迁移学习解决域不匹配问题

    作为Interspeech2022的赛事活动,远场说话人验证挑战赛 (FFSVC) 由昆山杜克大学.新加坡国立大学.南加州大学和希尔贝壳联合组织,主要关注极具挑战性的远场说话人确认任务.2020年举办 ...

  4. 迁移学习之域自适应理论简介(Domain Adaptation Theory)

    ©作者 | 江俊广 单位 | 清华大学 研究方向 | 迁移学习 本文主要介绍域自适应(Domain Adaptation)最基本的学习理论,全文不涉及理论的证明,主要是对部分理论的发展脉络的梳理,以及 ...

  5. 物体检测 迁移学习、IOU、NMS理解

    1. 迁移学习 迁移学习也即所谓的有监督预训练(Supervised pre-training),我们通常把它称之为迁移学习.比如你已经有一大堆标注好的人脸年龄分类的图片数据,训练了一个CNN,用于人 ...

  6. 【迁移学习(Transfer L)全面指南】迁移学习中的bottlenecks(瓶颈层)

    在学习How to Retrain an Image Classifier for New Categories的时候,在retrain刚开始的时候会建立一堆的bottlenecks文件,所以这到底是 ...

  7. 强化学习中的episode如何理解和翻译?

    1. episode的感性理解 强化学习中,episode是个重要的术语.那么episode应该如何理解呢? An episode is one complete play of the agent ...

  8. paddlepaddle 13 迁移学习中的卷积基加强训练方法-RIFLE

    预训练模型作为当下迁移学习的一种主流方法,让"从零开始训练一个新模型"的时代一去不复返.这类在大型数据集上训练好的模型进行微调后,便能够较好地适配类似的新目标任务,可以极大地节约时 ...

  9. 张鑫旭:说说CSS学习中的瓶颈(个人觉得对突破技术瓶颈都有思想上的指导作用)...

    2019独角兽企业重金招聘Python工程师标准>>> 关于作者 张鑫旭,09年华中科技大学毕业,现上海,就职于阅文集团,专注web前端偏前领域,钓鱼爱好者. 本文转载自说说CSS学 ...

最新文章

  1. 通过应用程序域AppDomain加载和卸载程序集之后,如何再返回原来的主程序域
  2. outlook反应慢的原因_环氧漆不固化是什么原因?固化剂的使用有关系!
  3. MFC中关于虚函数的一些问题
  4. An error occurred while searching for implementations of method
  5. ASP.NET上传下载文件
  6. Java中的队列API——Queue
  7. android 阿拉伯语下布局,android设计的布局在阿拉伯语下界面错乱的解决方法
  8. boobooke ORACLE MYSQL C JAVA视频学习资料
  9. python官网下载非常慢解决方法
  10. MySQL 连接为什么挂死了?
  11. 《音乐达人秀:Adobe Audition实战200例》——实例6 麦克风说话和音乐播放等所有声音都混合录制...
  12. 卸载编译安装的mysql
  13. 判断计算机硬件和网络故障,计算机硬件故障的识别与处理
  14. 边缘计算使能智慧电网
  15. matlab函数merge_MATLAB数据合并方法
  16. 常用的 PHP 类库 , 资源
  17. 和用户一起做设计的时代
  18. 对ROS功能包中package.xml文件的疑问
  19. 自己收集和制作的易语言模块
  20. openwrt x86 登录不上_openwrt x86的安装与使用

热门文章

  1. kkt条件的理解_直观理解KKT条件
  2. 指为服务器指定超时时限为5分钟,微信服务器连接公众号开发者服务器时发生超时,超时时间为5秒,这是什么问题引起的?...
  3. 枪神纪为什么服务器老是不稳定,枪神纪卡怎么办_枪神纪运行不流畅的解决方法_快吧游戏...
  4. fps软件工作量评估示例_介绍FPS示例
  5. 学校水卡、本地公交卡破解记
  6. 1、数据分析--共享单车使用量预测
  7. 学习第一周第一天(星期四)
  8. Python 爬取学习通图片并自动创建添加到PPT
  9. 医学图像处理:读取mhd文件
  10. vue3玩转i18n