学习笔记|领域自适应(Domain adaption)——实现模型的自适应迁移
1. 领域自适应网络概述
有时候我们在某个领域训练出的一个模型,想迁移到另一个领域,这样我们就不需要每个领域都去标注大量的数据了。但是这两个领域的数据分布是有些差异,要如何办呢?比如我们在黑白图片上训练出了数字的识别模型,但是我们希望该模型用到彩色数字的识别上。如果直接将模型迁移过去,结果并不理想,在黑白图片上的测试准确率可以达到99.5%,但迁移到彩色图片上时测试准确率仅57.5%。这是由于黑白图片和彩色图片的分布不一样,那么如何处理这种情况呢?我们需要用到 “领域自适应(Domain Adaption)”。
2. 领域自适应的基本思路
我们将有标签的、能够训练模型的领域称为源域(Source Domain),无标签或者只有少量标签的领域称为目标域(Target Domain),我们的目的是要将源域训练得到的模型迁移到目标域。但是源域数据和目标域数据的分布不一样,领域自适应的基本思路是设计一个特征提取器,使得从源域和目标域提取的特征分布是一样的,如下图所示。
我们将数字识别任务分成特征提取器和标签预测器两个部分,特征提取器有若干层网络负责提取图片的特征,并输出一个向量,然后将这个向量交给标签预测器,标签预测器也有若干层,负责根据特征提取输出的向量预测图片所展示的数字。现在有一堆的源域数据,它们是有标签的,还有一堆目标域数据,它们是没有标签的。假设源域数据输入到特征提取器输出的结果是蓝色的点,而目标域数据输入到特征提取器输出的结果是红色的点。我们要训练这个特征提取器,尽可能地使蓝色的点和红色地点混在一起分不出差异。那么要如何训练这个特征提取器呢?
3. 域分类器的引入
除了上述的特征提取器和标签预测器外,我们再引入一个新的网络,叫做 “域分类器”。域分类器的任务就是负责鉴别特征提取器输出的特征是来自源域数据还是目标域数据。而特征提取器要尽量减小源域数据数据和目标域数据输出向量的差异,以骗过域分类器,使其无法正确的鉴别。说到这里,大家应该想到了前面的生成对抗网络(GAN),这两者确实很像。这里的特征提取器就相当于GAN的生成器,而这里的域分类器就相当于GAN的鉴别器。那么有一个问题,特征提取器似乎明显要占优势,比如一个极端的情况,特征提取器无论是何输入都输出0,那么鉴别器无论如何也无法鉴别出哪些来自源域,哪些来自目标域。但是这种情况其实是不会出现的。因为预测器也需要特征提取器输出的这个向量,用来判断图片的标签是什么。如果特征提取器无论输入是什么都输出0的话,那么预测器是无法根据这个向量来预测图片标签的。
下面再利用数学符号把上述过程再理一下。首先,我们假设三个网络的参数分别为:特征提取器——θf\theta_fθf,标签预测器——θp\theta_pθp,域分类器——θd\theta_dθd。由于源域数据是有标签的,因此可以算出标签预测器的输出和源域数据标签之间的交叉熵,根据这个交叉熵可以定义一个Loss,设为LLL。训练标签预测器的目标就是要最小化这个LLL,即θp∗=minθpL\theta_{p}^{*}=\min _{\theta_{p}} Lθp∗=θpminL。域分类器实际上是一个二分类器,它的任务是区分特征是来自源域还是目标域,这个分类任务也可以定义一个Loss,设为LdL_dLd。训练域分类器的目标就是要使这个LdL_dLd最小化,即θd∗=minθdLd\theta_{d}^{*}=\min _{\theta_{d}} L_{d}θd∗=θdminLd训练特征提取器的目标:一方面要使标签预测器尽量能正确预测出图片标签,即最小化LLL;另一方面又要尽量骗过域分类器,使其不能正确鉴别,即要最大化LdL_dLd,也就是最小化−Ld-L_d−Ld。因此可表示为
θf∗=minθfL−Ld\theta_{f}^{*}=\min _{\theta_{f}} L-L_{d}θf∗=θfminL−Ld
学习笔记|领域自适应(Domain adaption)——实现模型的自适应迁移相关推荐
- 学习笔记【Java 虚拟机④】内存模型
若文章内容或图片失效,请留言反馈.部分素材来自网络,若不小心影响到您的利益,请联系博主删除. 总目录 学习笔记[Java 虚拟机①]内存结构 学习笔记[Java 虚拟机②]垃圾回收 学习笔记[Java ...
- OPENMP学习笔记(1)——简介,模型,运行
OPENMP学习笔记(1)--简介,模型,运行 简介: OpenMP的英文全称是Open Multiprocessing,一种应用程序接口(API,即Application Program Inter ...
- 一篇综述带你全面了解迁移学习的领域泛化(Domain Generalization)
领域泛化 (Domain Generalization, DG) 是近几年非常热门的一个研究方向.它研究的问题是从若干个具有不同数据分布的数据集(领域)中学习一个泛化能力强的模型,以便在 未知 (Un ...
- 深度学习笔记 第五门课 序列模型 第二周 自然语言处理与词嵌入
本文是吴恩达老师的深度学习课程[1]笔记部分. 作者:黄海广[2] 主要编写人员:黄海广.林兴木(第四所有底稿,第五课第一二周,第三周前三节).祝彦森:(第三课所有底稿).贺志尧(第五课第三周底稿). ...
- 深度学习笔记 第五门课 序列模型 第三周 序列模型和注意力机制
本文是吴恩达老师的深度学习课程[1]笔记部分. 作者:黄海广[2] 主要编写人员:黄海广.林兴木(第四所有底稿,第五课第一二周,第三周前三节).祝彦森:(第三课所有底稿).贺志尧(第五课第三周底稿). ...
- 学习笔记:马尔可夫模型
马尔可夫模型 马尔可夫 安德雷·马尔可夫(Andrey Markov),俄国数学家,在概率论.数理统计和随机过程等领域做出了重要贡献,20世纪初期提出了一种数学模型,即马尔可夫过程Markov Pro ...
- cips2016+学习笔记︱简述常见的语言表示模型(词嵌入、句表示、篇章表示)
在cips2016出来之前,笔者也总结过种类繁多,类似词向量的内容,自然语言处理︱简述四大类文本分析中的"词向量"(文本词特征提取)事实证明,笔者当时所写的基本跟CIPS2016一 ...
- 机器人动力学与控制学习笔记(十)————自适应控制(模型参考自适应控制)
一.模型参考自适应 模型参考自适应是比较流行的自适应控制方式之一.模型参考自适应控制系统的设计主要有两大类方法:一种是基于局部参数最优化的设计方法:另一种是基于稳定性理论的设计方法,包括以下两种具体的 ...
- 视频教程 | Egret Pro 入门学习笔记(10):认识模型
今天的视频是通过点击按钮切换网格,以及点击按钮切换材质,来一起认识下EgretPro中的基础模型与基础材质,加深对模型的认识以及熟练Egret2d与EgretPro之间的UI交互. 大家都知道,在3D ...
最新文章
- Python实战案例,CV2模块,Python实现抖音字符视频
- 【中级软考】段页式存储是什么?
- ctsc2009 移民站选址
- 数字IC验证学习(二)
- 你需要了解的有关.NET日期时间的必要信息
- Fire!——两个BFS
- LINQ TO SQL和Entity Framework 的关系 你了解多少?
- Chrome 将内置 QR 扫码共享页面功能
- Android中app的请求抓包工具 Fiddler 详解
- LEADBBS 不要验证码
- ps4如何设置虚拟服务器,PS5官方使用指南 账号设置/PS4传输数据/调整主机设定
- Java网络爬虫Spider
- 数据链路层(帧)(二)
- 叉积 微分 恒等式_不等式(O):常见符号及恒等式
- 【软件质量】问题与保证谈论
- axure产品原型设计工具
- 深入浅出Linux操作系统指令与目录结构(二)
- 安装PS CC2019
- 瑞萨e2studio(15)----Code FlashData Flash读写
- Matlab通过串口与下位机通讯