domain adapation(领域自适应)是迁移学习的一种,也是目前迁移学习中主要研究方向,旨在解决测试数据不方便采集、标注,耗时耗力等情况,希望通过迁移学习提高识别准确率。

Domain adapation 回顾

  • 核心问题:训练资料和测试资料的分布不同,采用迁移学习的方法,提高准确率。

    情况一:有一小部分标注了的测试资料
      这种算是domain adapation中很简单的情况了,你可以用这些有标注的资料,来微调你在 Source Domain(训练集)上训练出来的模型,只要稍微跑2-3个epoch就够了。这种情况需要小心不要overfitting。解决方法比如说把 Learning Rate 调小一点,举例来说 你要让( fine tune) 前,跟( fine tune) 后的模型的参数相近一些。
  • 情况二:都是从未标注了的测试资料
      首先找一个Feature Extractor,将不同分布的相同部分提取出来(将颜色信息去除,只保留数字的形状信息)。那么怎么确保能只保留我们想要的数字形状信息呢?其实这就是涉及到分布问题了。信息相同就是分布相同,这时候放入Domain Classifier中,我们目的就是让Domain Classifier 判断不出来。其实这个和GAN有点类似。但是如果仅仅这样是不行的,因为可能特征提取器会偷懒,大不了都输出0向量呗,是吧。这样分类器就都是0,就分不出来了。所以最后还要加一个类别预测器,防止特征提取器投机取巧。
      这里要补充一下,为啥GAN没有输出特征都是0的情况呢?因为GAN是生成一幅图片,然后判别器判断生成的图片与实际的图片的差异。注意,是实际的图片,因为实际的图片不是0向量啊,所以生成器就不可能投机取巧的生成0向量。但是领域自适应中,Domain Classifier是将source和target经过特征提取器后重新生成的,所以当然可能有0向量了。
  • Considering Decision Boundary
      举例来说一个最简单的做法是说,今天我有很多 Unlabeled 的图片,丢到 Feature Extractor,再丢到 Label Predictor 以后,我不知道它是哪一个类别,但是我希望它离 Boundary 越远越好。那什么叫做离 Boundary 越远越好呢。
  • 严峻考验:
    1、我们到目前为止,好像都假假设 Source Domain 跟 Target Domain 的类别都要是一模一样。假设Source Domain 是影像分类的问题,Source Domain 有老虎、狮子跟狗,Target Domain 也应该要有老虎、狮子跟狗,但是真的一定会这样吗?
    2、一个更严峻的状况,假设不只没有 Label,而且 Data 还很少,比如说我就只有一张图片而已。这时候你根本没法去做特征提取了吧。
    3、还有一个更严峻的状况,上述好歹也知道一张图片,至少知道图片是什么风格的吧,但如果我什么都不知道怎么办呢?
      因为我们对 Target Domain 一无所知,这个时候我们就不叫 Domain 的 Adaptation,通常就叫 Domain Generalization 我们是期待今天机器学到Domain Generalization。在 Testing 的时候,不管来什麼神奇的 Domain,它都可以处理。(核心思想是 data argumention )
      3.1 训练资料有很多类别,但是不知道target domain是啥样的
      3.2 训练资料只有一类,同样不知道target domain是啥样。

Domain adapation 一些疑惑

1、迁移学习中的domain adaptation的定义说特征空间相同,这里指的是什么意思?

  答:是的,特征空间相同,特征分布不同。特征空间相同就是特征是一样的,不同的领域,双方都有相同的特征,比如二次元的人脸和真实的人脸都有鼻子嘴巴(举例子,不同的特征空间:图片和文本肯定是不同的特征空间)。此外,上述例子中他们的特征分布却是不同,因为他们一个是二次元,另一个是真是世界的。 再举个例子,比如在房价预测问题上有两个特征,分别是面积还有楼层,但是一部分房子是在市区,一部分是在郊区,这种就是“特征空间相同,特征分布不同”
参考:https://www.zhihu.com/question/61666343

2、Domain Adaptation学术上有哪些方向,还有哪些可做的地方?

  答:https://www.zhihu.com/question/337731079

3、领域自适应需要用到测试集数据,这样的方法有啥意义呢?

  答:领域自适应主要是为了利用source域丰富的已标注数据,来减轻target域的标注成本可以用无标注的 target 域数据来提高模型在 target 域的性能如果是完全不见到target域的数据,仅使用 source 域的数据来训练一个泛化性能好的模型,这类任务叫做domain generalization,也是现在研究的一个热点。

4、迁移学习是不是除了领域自适应就没啥可做了?

  答:迁移学习主要集中在领域自适应,而自适应大多又集中在深度自适应,因此领域自适应是迁移学习的主流。
但是近段时间,领域泛化问题 domain generalization 也是研究热点。
  DA 和 DG 的 problem definition 是一样的,但是 DA 的设计理念是基于一些已有的 target 信息的。而 DG 是没有target信息的,因此要求 DG 要足够 roboust,能 cover 广泛的 distribution shift。
参考:https://www.zhihu.com/question/385627179

domain adapation 初步理解相关推荐

  1. 如何让人大致理解RxJava思想:第一节 初步理解RxJava

    如何让人大致理解RxJava思想:第一节 初步理解RxJava 首先,我们需要明确,一个人不可能一口气吃成一个胖子,你不可能仅仅花5分钟看完我这篇文章,然后一拍桌子,大叫一声,我知道了,然后赢取白富美 ...

  2. JAVA 枚举类的初步理解

    JAVA 枚举类的初步理解 现在Java的枚举类在真实项目中已经用的比较频繁,比静态常量更好用,也更有限定性,enum类可以用来表示有限的类对象,比如星期.月份.性别或者项目中的产品类型 像诸如此类的 ...

  3. 非常易于理解‘类'与'对象’ 间 属性 引用关系,暨《Python 中的引用和类属性的初步理解》读后感...

    关键字:名称,名称空间,引用,指针,指针类型的指针(即指向指针的指针) 我读完后的理解总结: 1. 我们知道,python中的变量的赋值操作,变量其实就是一个名称name,赋值就是将name引用到一个 ...

  4. 初步理解pagerank算法

    初步理解pagerank算法 第一次写不是课程要求的博客,可能有不严谨的地方,如果有写错的希望能在评论区指出. 算法思想 pagerank算法用于网页排序,根据给网页的重要程度给各个网页打分,根据分数 ...

  5. Adaboost算法的初步理解

    菜鸟初次接触Adaboost,虽然算法流程比较清晰简单,但对于其中的理论,存在着不少疑惑之处,如下所示: 1)如何训练得到的弱分类器,我们需要训练出多少个弱分类器进行后续的计算?对若分类器有什么要求吗 ...

  6. 我对SNS游戏的初步理解

    国庆期间,我专门研究了一款SNS游戏,巴别小精灵,这是一款背单词的游戏.算是一款交互式英语学习的应用.一点初步理解和体会,与大家分享. SNS游戏的特点 (1)      异步性 (2)      真 ...

  7. Hamiltonian Monte Carlo抽样算法的初步理解

    Hamiltonian Monte Carlo抽样算法的初步理解 接受拒绝采样算法 MCMC回顾 Hamiltonian dynamics 拉格朗日方程 从牛顿方程出发推导拉格朗日方程 勒让德变换 哈 ...

  8. 红黑树插入操作的初步理解

    红黑树插入操作的初步理解 文章目录 红黑树插入操作的初步理解 红黑树的特征 红黑树的插入节点总是红色的 红黑树的修正 变色 左旋 右旋 插入操作 插入操作的代码实现 红黑树和AVL树的对比 参考链接 ...

  9. wmts格式说明_WMTS服务初步理解与读取

    WMTS 服务初步理解与读取 当前在网络地图服务中,大部分都会采取缓存技术来替代实时对数据进行可视化,用以提高地图响应能 力.介绍 OGC 提出的缓存技术标准的 WMTS 服务. WMTS 简介 WM ...

最新文章

  1. python loop call soon_从“call\u soon”回调函数执行协同路由
  2. 本人在学习PHP过程中的随笔心得
  3. Redis5新特性Streams作消息队列
  4. DotNetNuke(DNN)升级攻略(DNN 4.3.7至DNN 4.6.0)
  5. 企业系统门户需要哪些模块_灵活用工平台SAAS系统有哪些功能模块
  6. android扩散波动动画,使用WebGL制作图片的像素脉冲波(粒子化扩散波动)动画特效...
  7. K8s遇到问题解决思路
  8. 异步复位设计中的亚稳态问题及其解决方案
  9. Oracle 计划新的移动 OpenJDK 项目
  10. java统计空格代码_java算法大全之统计出其中英文字母、空格、数字和其它字符的个数...
  11. 截止失真放大电路_新手必看!基本放大电路应该如何分析?
  12. 计算机网络——集线器与交换机
  13. FFmpeg+SDL纯语音播放器
  14. 网页设计如何排成一列_网页排版设计中对齐技巧能让网站产生高端感(下)
  15. 企业信息安全之社工学审计
  16. LeetCode-70.爬楼梯
  17. 软件工程第三章节结构化方法
  18. 全国高考今日开启 报名人数再创历史新高 2022全国高考时间科目安排 优积科技-祝同学们高考顺利
  19. unity3d api 中文文档_unity3D游戏开发工程师完整简历范文
  20. NBA球员出手位置分布图

热门文章

  1. css 实现 table斜线表头
  2. Erlang模块erl翻译
  3. 中国历史上六位世界首富的没落
  4. DNSPOD服务商吴洪声爆料:CSDN数据库被人爆了,密码是明文存储的....
  5. RStudio无法成功下载stringi包
  6. 一条短视频成本几十万元,虚拟数字人凭“实力”出圈
  7. python修改json中的文件内容并保存
  8. 机器学习(13)——对抗攻击
  9. python 投票统计
  10. 火焰纹章java小游戏_火焰纹章攻略