【机器学习】李宏毅——Domain Adaptation(领域自适应)
在前面介绍的模型中,一般我们都会假设训练资料和测试资料符合相同的分布,这样模型才能够有较好的效果。而如果训练资料和测试资料是来自于不同的分布,这样就会让模型在测试集上的效果很差,这种问题称为Domain shift。那么对于这种两者分布不一致的情况,称训练的资料来自于Source Domain,测试的资料来自于Target Domain。
那么对于领域转变的问题,具体的做法随着我们对于目标领域的了解程度不同而不同,主要有以下几种情况:
- 我们当前拥有少量目标领域的样本且含有标注:具体做法是取其中的一小部分去“微调”训练好的模型,但要注意不能够训练太多次迭代否则可能会对小部分的样本产生过拟合
- 我们拥有目标领域的大量资料但是没有标注
- 我们拥有很少量的目标领域的资料且没有标注
- 我们根据对于目标领域没有认识与了解
那我们关注的主要是第二种情况,它是我们现实生活中的常见情况。那么最基本的想法是我们能不能训练一个特征提取器,它可以接受训练集和测试集的样本,然后输出是对这些样本的关键特征进行提取,例如下图的例子中就是去除掉颜色的影响,提取它作为数字最关键的特征。
Domain Adversarial Training
这个想法是基于上面说的基本想法之上,但是它没有专门地去训练一个特征提取器,它只是在原来的模型上,划分一部分为特征提取器,另一部分为标签预测器,如下图:
那么在这个模型中,如果输入的是训练集的图片,我们可以通过其输出结果与真实结果之间的交叉熵来进行训练,但是如果输入是测试集的图片,由于没有标签就无法来调整参数,但这时就要想到我们的特征提取器。
经过特征提取器处理之后得到的向量,我们是希望训练集得到的向量分布,和测试集得到的向量分布是没有差异的,如下图:
那么怎么让这两个分布之间越接近越好呢?这时候就想到了对抗的思想,我们可以加入一个领域分辨器,它的输入就是特征提取器的这个输出向量,而输出就是该向量是来自于训练集还是测试集,因此我们可以将特征提取器看成是生成器,将领域分辨器看成是辨认器,特征提取器是不断调整参数来骗过领域分辨器,而领域分辨器则不断学会来区分,如下图:
但是我们要考虑到一个问题:有没有可能这样会使得特征提取器学习到不管我得到什么样的输入,我都输出一模一样的向量(例如零向量)这样你肯定无法分辨?可能会存在这个问题,但是如果真的只生成一模一样的向量,那么后面的标签预测器也就无法做出预测了!因此我们可以通过标签预测器的输出来防止这种情况的发生!
假设特征提取器的参数为\(\theta_f\),标签预测器的参数为\(\theta_p\),领域辨别器的参数为\(\theta_d\),而L为标签预测器预测结果与真实结果之间交叉熵算出来的损失函数,\(L_d\)为领域辨别器分辨的时候的损失函数,那么各自的训练目标为:
\]
第三个公式表明特征提取器一方面是希望能够降低后面预测的误差,另一方面是为了让领域辨别器无法分辨,从而来使得两个分布更加接近。
Limitation
假设我们当前样本的类别有两类,那么对于有标签的训练集我们可以明显地划分为两类,那么对于没有标签的测试我们希望它的分布能够和训练集的分布越接近越好,如下图的右图:
那么在这个思路上进行拓展的话,对于我们刚才手写识别的例子,我们输入一张图片得到的是一个向量,其中含有属于每一个分类的概率,那我们希望的是这个测试集的样本离分界线越远越好,那就代表它得到的输出向量要更加集中于某一类的概率,不能够各个分类的可能性都差不多,即:
那么上述想法的问题在于,有没有可能训练集和测试集的分类根据就是不同的呢?例如训练集中可以分为老虎和狮子两类,而测试集还有另外的狼呢?如下图:
那么这也是一个值得研究的问题。
其他情况
除了上述介绍的情况,我们对于测试集的了解程度还有其他的情况,例如我们只拥有很少量的测试集并且还没有标签,甚至于说我们对于测试集什么都不知道。这些情形会更加的复杂,目前也仍然处于研究之中
【机器学习】李宏毅——Domain Adaptation(领域自适应)的更多相关文章
- Domain adaptation:连接机器学习(Machine Learning)与迁移学习(Transfer Learning)
domain adaptation(域适配)是一个连接机器学习(machine learning)与迁移学习(transfer learning)的新领域.这一问题的提出在于从原始问题(对应一个 so ...
- 论文阅读 | A Curriculum Domain Adaptation Approach to the Semantic Segmentation of Urban Scenes
paper链接:https://arxiv.org/pdf/1812.09953.pdf code链接:https://github.com/YangZhang4065/AdaptationSeg 摘 ...
- Domain Adaptation (3)论文翻译
Abstract The recent success of deep neural networks relies on massive amounts of labeled data. For a ...
- 关于模式识别中的domain generalization 和 domain adaptation
今晚听了李文博士的报告"Domain Generalization and Adaptation using Low-Rank Examplar Classifiers",讲的很精 ...
- 【论文笔记】Domain Adaptation via Transfer Component Analysis
论文题目:<Domain Adaptation via Transfer Component Analysis> 论文作者:Sinno Jialin Pan, Ivor W. Tsang, ...
- Domain Adaptation论文笔记
领域自适应问题一般有两个域,一个是源域,一个是目标域,领域自适应可利用来自源域的带标签的数据(源域中有大量带标签的数据)来帮助学习目标域中的网络参数(目标域中很少甚至没有带标签的数据).领域自适应如今 ...
- A Primer on Domain Adaptation Theory and Applications
目录 概 主要内容 符号说明 Prior shift Covariate shift KMM Concept shift Subspace mapping Wasserstein distance 应 ...
- Domain Adaptation (1)选题讲解
1 所选论文 论文题目: <Unsupervised Domain Adaptation with Residual Transfer Networks> 论文信息: NIPS2016, ...
- 域适应(Domain adaptation)
定义 在迁移学习中, 当源域和目标的数据分布不同 ,但两个任务相同时,这种 特殊 的迁移学习 叫做域适应 (Domain Adaptation). Domain adaptation有哪些实现手段呢? ...
- Deep Transfer Network: Unsupervised Domain Adaptation
转自:http://blog.csdn.net/mao_xiao_feng/article/details/54426101 一.Domain adaptation 在开始介绍之前,首先我们需要知道D ...
随机推荐
- NSIS检测到窗口最小化闪烁提示
#检测到窗口为最小化时闪烁提示 !include nsDialogs.nsh #编写:水晶石 Name "IsIconic Example" OutFile "IsIco ...
- WSL 2 上启用微软官方支持的 systemd
以前折腾了很久的 genie 和 distrod 来实现 wsl2 上的 systemd.现在微软和Canonical联合声明发布了官方支持的systemd,之前的折腾貌似有点浪费时间了.如果微软不发 ...
- python实现给定K个字符数组,从这k个字符数组中任意取一个字符串,按顺序拼接,列出所有可能的字符串组合结果!
题目描述:给定K个字符数组,从这k个字符数组中任意取一个字符串,按顺序拼接,列出所有可能的字符串组合结果! 样例: input:[["a","b"," ...
- js读取excel进行批量操作
推荐这款插件 http://oss.sheetjs.com/js-xls/ 具体用法大家查看api! <!DOCTYPE html> <html> <head> & ...
- Docker | Compose创建mysql容器
本文通过Docker Compose来创建mysql容器 在linux服务器上创建文件,用于管理容器 mkdir docker-mysql cd docker-mysql vim docker-com ...
- Python地图栅格化实例
Python地图栅格化实例 引言 shapefile是GIS中的一种非常重要的数据类型,由ESRI开发的空间数据开放格式,目前该数据格式已经成为了GIS领域的开放标准.目前绝大多数开源以及收费的GIS ...
- 刷完一千道java笔试题的常见题目分析
java基础刷题遇到的最常见问题 可以先看一下这位博主整理的java面试题(很详细,我看了好几遍了):https://blog.csdn.net/ThinkWon/article/details/10 ...
- 网页计时访问器application对象
网页计时访问器 application对象代表Web应用本身,整个Web共享一个application对象.开始于服务器打开结束与服务器关闭.在不同的浏览器打开j计时器仍然有作用.除非把服务器关闭 & ...
- JSP脚本知识
JSP脚本元素 1.在jsp中嵌入的服务端运行的小程序称为脚本.实质是java程序. 2.脚本元素可以分为三类:表达式.Scriptlet.声明. 表达式 计算java表达式的值,得到的结果转化为字符 ...
- 齐博x1内容评论标签的风格制作
评论的标签如下: {qb:comment name="xxxxx" rows='5'} HTML代码片段 {/qb:comment} 评论涉及到的元素有{posturl} 这个是代 ...