机器学习(李宏毅)——Domain Adaptation

一、前言

本文章作为学习2023年《李宏毅机器学习课程》的笔记,感谢台湾大学李宏毅教授的课程,respect!!!

二、大纲

  1. 什么是Domain Adaptation?
  2. Domain Adaptation 的核心问题
  3. 重点介绍DAT

三、什么是Domain Adaptation?

Domain Adaptation的字面意思就是领域自适应,啥叫自适应呢,通俗讲就是在一个领域适应得好好的,在另外一个不同领域期待自动适应。举例而言:

  • MNIST辨识

上图手写数字辨识的例子在黑白风格训练数据上训练并在黑白风格测试数据上测试99.5%正确率,但是测试数据同样是数字只是风格变成彩色背景,分类器的分类精度直接变成57.5%。

明显的同样是数字分类问题,模型适应不了新的风格,换句话说领域不适应。这种情况称为Domain shift(领域偏移),即Training and testing data have different distributions。

四、Domain Adaptation 的核心问题

Domain Shift

Domain Shift(领域偏移)指的是在机器学习模型的训练数据(源域)和测试数据(目标域)之间存在统计分布的差异,导致模型在目标域上的性能下降。

Domain Shift(领域偏移)的三种类型:

  1. Covariate Shift(协变量偏移)
  2. Label Shift(标签偏移)
  3. Concept Shift(概念偏移)

如下图:

问了下chatgpt,我觉得通俗解释得很好,直接贴一下:


五、重点介绍DAT

课程里面重点介绍了Covariate Shift(协变量偏移)情况下的解决办法,即Domain Adversarial Training(对抗训练)。

对于目标领域的样本情况可以划分为以下4种:

  • 数据虽少但有标注
  • 数据很多但未标注
  • 数据很少且未标注
  • 未知

情况1:数据虽少但有标注

解决方法:在原始数据中进行模型训练,然后在目标数据中进行微调,但要小心过拟合问题。

情况2:数据很多但未标注

解决思路:训练两个Feature Extractor(network),一个用来抽取source domain图片特征,另一个用来抽取target domain图片特征。强迫让抽取的两个特征分布越接近越好,类似于只抽取共同特征,忽略了颜色这件事。

那怎么找出这样的这个Feature Extractor(network)?

使用Domain Adversarial Training(领域对抗训练)方法,如下图:

说明:

  • step1:把分类器拆解为两部分,即绿色的Feature Extractor + 蓝色的Label Predictor,Feature Extractor用来对输入图片抽取特征,Label Predictor用来对Feature Extractor的输出向量进行数字分类,哪几层是可以作为Feature Extractor,哪几层可以作为Label Predictor,这像超参数一样是需要调的;
  • step2:有带标注的source image通过Feature Extractor得到Feature向量,再经过Label Predictor,期待它与真值越接近越好;
  • step3:无标注的target image通过Feature Extractor得到Feature向量,但它是unlabeled,没有真值,所以不能继续走Label Predictor这条路;
  • step4:将步骤2和步骤3经过Feature Extractor的特征向量展开,记为blue points和red points,我们的目标就是要让red points的分布越接近blue points越好。

那如何让red points的分布越接近blue points越好呢?

答:听起来很像是分类器的相反,分类器是想让red points和blue points分得越开loss就越低。那我们想分不开就去惩罚这个Feature Extractor就好了。直白的讲,你就对Feature Extractor说,你今天要是抽出来的特征让那个Domain Classifier(领域分类)很容易分辨出来的话,我就惩罚你。

所以,Domain Classifier的loss越低,对Feature Extractor来说就是一件需要接受惩罚的事情。

因此,我们想得到Feature Extractor的话,有两个约束条件:

  • Feature Extractor要学会数字辨识这件事,也就是Feature Extractor + Label Predictor(绿色 + 蓝色)这条路线的Loss要低;
  • Feature Extractor要学会"存同弃异"这件事,也就是Feature Extractor + Domain Classifier(绿色 + 橙色)这条路线的 -Loss 要低;

其实就是GAN的思想,使用公式表达,如下图:

以上的原理是清楚了,下面就是一些小技巧:

举例而言,其实我们是希望unlabeled的data能够离边界越远越好:

  • 如果无标签数据靠近决策边界,说明模型在这个区域的分类不确定性高,容易出错。
  • 如果无标签数据远离决策边界,说明模型对这些样本的分类信心更高,泛化性能更好。

具体可以参考以下paper:

另外一种情况是:source domain的类别和target domain的类别不一样多,怎么解决?

参考以下链接:

情况3:数据很少且未标注

参考Test Time Training(TTT)链接:

情况4:未知

这种问题称为Domain Generalization。论文链接放下面:

相关推荐
新知图书3 分钟前
OpenCV的floodFill(漫水填充)分割
人工智能·opencv·计算机视觉
weixin_4462608522 分钟前
当手机开始预判你的下一步:一场正在颠覆生活的AI静默革命
人工智能·智能手机·生活
china100039 分钟前
大模型系列(三)--- GPT1论文研读
人工智能·gpt
梁小憨憨42 分钟前
对比学习(Contrastive Learning)
人工智能·笔记·深度学习
coder_zrx1 小时前
【神经网络、Transformer及模型微调】
人工智能·rnn·神经网络·自然语言处理·cnn·lstm·transformer
深声数字人实时交互1 小时前
深度解析:2D 写实交互数字人 —— 开启智能交互新时代
人工智能·实时互动·人机交互·交互
James. 常德 student1 小时前
BERT 微调
人工智能·深度学习·bert
今日上上签07071 小时前
《OmniMeetProTrack 全维会议链智能追录系统 软件设计文档》
人工智能·设计模式·aigc·软件工程·团队开发·需求分析·规格说明书
胡乱儿起个名2 小时前
PrimExpr 与 RelayExpr 的区别
人工智能·tvm·编译器·ai编译器
灏瀚星空2 小时前
基于Python的策略开发与回测:统计套利策略
开发语言·python·学习·算法·机器学习