DANN

  • Domain-Adversarial Training of Neural Networks in Tensorflow
  • 域适配:目标域与源域的数据分布不同但任务相同下的迁移学习。

模型建立

  • DANN假设有两种数据分布:源域数据分布S(x,y)\mathcal{S}(x,y)S(x,y)和目标域数据分布T(x,y)\mathcal{T}(x,y)T(x,y);定义did_idi​为第iii个训练样本的域标签,di∈{0,1}d_i\in\{0,1\}di​∈{0,1},若di=0d_i=0di​=0,则xi∼S(x)x_i\sim\mathcal{S}(x)xi​∼S(x),反之di=1d_i=1di​=1,xi∼T(x)x_i\sim\mathcal{T}(x)xi​∼T(x)

  • DANN网络的输入x∈Xx\in Xx∈X,XXX表示图像输入空间;图像分类标签y∈Yy\in Yy∈Y,其中Y(Y={1,2,3,...,k})Y(Y=\{1,2,3,...,k\})Y(Y={1,2,3,...,k})表示图像分类标签空间。在输入中,既有带标签的源域数据集也有不带标签的目标域数据集。

  • DANN的目标:准确预测目标域输入图像的分类标签

  • DANN网络构架:

    绿色部分:特征提取网络;蓝色部分:图像分类网络;(绿蓝一起构成标准前馈结构)红色部分:域分类网络

    • 输入xxx在训练阶段首先经过特征提取网络f=Gf(x;θy)f=G_f(x;\theta_y)f=Gf​(x;θy​)的映射转换为一个DDD维特征向量。

      • 分支1:图像分类预测网络Gy(x;θy)G_y(x;\theta_y)Gy​(x;θy​)

        源域数据对应的特征向量通过预测网络获得对应分类标签预测结果。

      • 分支2:域分类网络Gd(x;θd)G_d(x;\theta_d)Gd​(x;θd​)

        源域和目标域输入对应的特征向量经过域分类网络得到每个输入的域分类结果。

  • 为了实现让DANN将目标域数据看成源域数据,在训练阶段需实现两个任务:

  1. 源域数据及准确分类,即分类误差最小化
  2. 混淆源域数据集和目标数据集,实现域分类误差最大化。

由于域分类器与图像分类器的输入都来自于特征提取网络,但分别要求分类损失最小化和最大化。

如果使用随机梯度下降法(SGD)来优化模型损失函数的,会导致特征提取器在进行参数更新时,域分类损失和分类预测损失梯度相反

  • DANN提出了新的梯度反转层(Gradient Reversal Layer,GRL),使得在反向传播的过程中梯度方向自动取反,在前向传播过程中只做恒等变换:

Rλ(x)=xdRλdx=−λI\begin{gathered}R_\lambda(x)=x\\\frac{dR_{\lambda}}{dx}=-\lambda I\end{gathered} Rλ​(x)=xdxdRλ​​=−λI​

  • 梯度反转层被插在特征提取层和与分类器之间,则在反向传播的过程中,域分类器的域分类损失的梯度反向传播到特征提取器之前会自动取反(λ\lambdaλ随迭代次数动态变化)

论文:Unsupervised Domain Adaptation by Backpropagation

参考博客:【深度域适配】一、DANN与梯度反转层(GRL)详解

实验:MNIST域与MNIST-M域间的迁移学习

github传送门:https://github.com/pumpikano/tf-dann

运行环境

  • tensorflow >=1.0
  • Python 3.4

  • numpy
  • scikit-image
  • matplotlib
  • scikit-learn
  • jupyter
  • scipy

实验数据

  • MNIST作为源域,MNIST-M作为目标域。

    MNIST-M为将从BSDS的彩色照片中随机抽取的原始集合上的数字随机混合到MNIST的patch上——与原始数据及相比,背景和笔画不再恒定,域相当不同,但输出图片对人类来说仍看可区分出数字。

  • 样本均为28*28*3的图片,3代表RGB值

源域数据
源域数据与目标域数据
输入x:batch*28*28*3
两层CNN特征提取器
输出:batch*7*7*48
预测分类器
梯度反转层
域分类器
输出预测y
计算损失函数梯度
输出域分类结果d
计算损失函数梯度

【迁移学习】深度域自适应网络DANN模型相关推荐

  1. 【迁移学习】深度域自适应网络DANN在EEG睡眠质量检测上的应用

    应用DANN进行睡眠质量检测 论文:Sleep Quality Estimation with Adversarial Domain Adaptation:From Laboratory to Rea ...

  2. 【深度域自适应】DANN梯度反转层(GRL)理解

    加入GRL的目的是为了让领域判别器和特征提取器之间形成一种对抗.先不管标签分类器,领域判别器就是GAN里的判别器,目的就是区分出real(目标域)与fake(源域),所以领域判别器的目的同样也是最小化 ...

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

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

  4. 【深度域自适应】一、DANN与梯度反转层(GRL)详解

    前言 在当前人工智能的如火如荼在各行各业得到广泛应用,尤其是人工智能也因此从各个方面影响当前人们的衣食住行等日常生活.这背后的原因都是因为如CNN.RNN.LSTM和GAN等各种深度神经网络的强大性能 ...

  5. 【深度域自适应】二、利用DANN实现MNIST和MNIST-M数据集迁移训练

    前言 在前一篇文章[深度域自适应]一.DANN与梯度反转层(GRL)详解中,我们主要讲解了DANN的网络架构与梯度反转层(GRL)的基本原理,接下来这篇文章中我们将主要复现DANN论文Unsuperv ...

  6. 影像组学学员成果分享:BraTS2017数据集的迁移学习+深度学习提取特征+机器学习

    感谢[呼呼]同学分享的"BraTS2017数据集的迁移学习+深度学习提取特征+机器学习" 迁移学习 一.迁移学习(把之前对Medicalnet的迁移学习内容跑了一遍,用的BraTS ...

  7. 使用迁移学习后使用微调再次提高模型训练的准确率

    使用迁移学习后使用微调再次提高模型训练的准确率 1.微调 所谓微调:冻结模型库的底部的卷积层,共同训练新添加的分类器层和顶部部分卷积层.这允许我们"微调"基础模型中的高阶特征表示, ...

  8. Neutron学习笔记2-- Neutron的网络实现模型

    Neutron学习笔记2-- Neutron的网络实现模型 Neutron的三类节点 计算节点 网络节点 控制节点 Neutron将在这三类节点中进行部署,Neutron在各个计算节点,网络节点中运行 ...

  9. 用于部分迁移学习的加权对抗网络 | CVPR 2018论文解读

    在碎片化阅读充斥眼球的时代,越来越少的人会去关注每篇论文背后的探索和思考. 在这个栏目里,你会快速 get 每篇精选论文的亮点和痛点,时刻紧跟 AI 前沿成果. 点击本文底部的「阅读原文」即刻加入社区 ...

最新文章

  1. 商汤联手华科:提出文字检测模型GNNets,新颖模块可解决几何分布难题
  2. 零基础python从入门到精通 pdf-100G Python从入门到精通全套资料!
  3. sql语句的进化--原始篇
  4. 一个封锁操作被对 wsacancelblockingcall 的调用中断_操作系统概论
  5. 2017蓝桥杯省赛---java---B---1(购物单)
  6. oracle or 运算,Oracle Or子句
  7. 台式计算机硬盘的安装位置,台式电脑分别如何安装SSD(固态硬盘)详细图文教程...
  8. C# webBrowser打开网页出现脚本错误解决
  9. Kindle DXG的一些使用方法及技巧
  10. HCIE - 2204-MPLS
  11. 震坤行:以成就客户为导向,用专业打造数字化供应链采购流程
  12. 单片机c语言sden,电力系统中多通道同步采样ADC(AD7606)与浮点DSP(ADSP-21479)通信的设计与实现...
  13. vue使用高德api 定位获取位置信息 positionLocation.js及 USERKEY_PLAT_NOMATCH报错
  14. 互动影像设计:音乐可视化作业 processing
  15. 继电器, 接触器,干簧管,弱电控制强电
  16. 脆弱的GPS系统--摘抄《环球科学》
  17. 是爱情,让我们直立行走
  18. 音视频开发 文章列表
  19. InfoQ 趋势报告:技术文化\u0026方法2019年实践状况
  20. java事物传播行为,Spring事务传播行为详解

热门文章

  1. python定义一个有长度的列表
  2. 关于springmvc项目一加入validation-api包就报错的解决方法
  3. CDH6.3.1监控界面Hive修改参数
  4. zbb20170216_spring_aop
  5. 负数在计算机中的表示和存储
  6. 数据分析——假设检验分析方法
  7. 土鸡和土鸡蛋价格一直很高,为何农民说养土鸡不赚钱?
  8. 【全局面包屑导航】依据路由动态生成面包屑导航
  9. 2 路 FULL Cameralink 视觉检测 BOX
  10. 28天打造专业红客(十一)