无监督域对抗算法:ICCV2019论文解析

Drop to Adapt: Learning Discriminative Features for Unsupervised Domain Adaptation

论文链接:

http://openaccess.thecvf.com/content_ICCV_2019/papers/Lee_Drop_to_Adapt_Learning_Discriminative_Features_for_Unsupervised_Domain_Adaptation_ICCV_2019_paper.pdf

Source code is available at: https://github.com/postBG/DTA.pytorch

摘要

最近的领域自适应研究利用对抗性训练从特征抽取器和领域判别器网络的联合学习中获得领域不变的特征表示。然而,域对抗方法在不考虑任务的情况下试图匹配域之间的分布,因而表现出次优的性能。我们提出了Drop-to-Adapt(DTA),它利用敌对性Dropout者通过实施集群假设来学习强歧视性特征。因此,我们设计目标函数来支持稳健的域自适应。我们在各种实验中证明了该方法的有效性,并在图像分类和语义分割任务中实现了一致的改进。

1.       Introduction

我们的方法基于聚类假设,即决策边界应该放在特征空间的低密度区域[5]。在没有模型自适应的情况下,特征抽取器为目标域中未看到的数据生成任意特征,分类者可以绘制通过目标域上特征密集区域的决策边界。因此,我们通过将决策边界推离目标域的特征来学习域适应模型。

我们的方法Drop-to-Adapt(DTA)使用敌对性dropout[30]在目标域上实施集群假设。              更准确地说,为了支持各种任务,我们分别为完全连接层和卷积层引入了元素级和信道级的对抗性退出操作。图1概述了我们的方法,我们在第3.3节中设计了相关的损失函数。

我们的贡献总结如下:1)我们在UDA中提出了一个基于敌对性Dropout的广义框架[30]。我们的实现同时支持卷积层和完全连接层;2)我们测试用于图像分类的各种域适应基准,并与最新方法相比取得竞争性结果;3)我们将所提出的方法扩展到UDA中的语义分割任务中,在那里我们执行从模拟到现实环境的适应。

2.       Related Work

领域适应已经被广泛研究。BenDavid等人[1,2]检查了两个域之间的各种差异度量,并定义了目标域错误的上限。基于这些研究,图像翻译方法在图像水平上将两个域之间的差异最小化[42,51,3]。另一方面,特征对齐方法试图匹配源域和目标域之间的特征分布[11,44,23]。特别是艾尔,加宁等人[11] 提出了一种域对抗训练方法,通过欺骗域鉴别器来产生域不变特征。许多最近的研究将领域对抗训练作为适应过程中的一个关键组成部分[12,4,15,40,31,47,46]。然而,域分类者不能考虑类标签;因此,生成的特征对于分类来说往往是次优的。为了克服领域对抗训练的不足,近年来的研究直接基于聚类假设处理决策边界与特征表示之间的关系[5]。一些工作[25,9,40]利用半监督学习进行领域适应。此外,MCD[37]和ADR[36]使用minimax训练方法将目标特征分布推离决策边界,两种方法都由特征提取器和分类器组成。更准确地说,在[36]中,通过随机Dropout对两个不同的分类进行采样。然后,对于相同的目标数据样本,更新分类器以最大化两个预测之间的差异。最后,特征抽取器被多次更新以最小化这种差异。minimax训练过程使分类器处于噪声敏感状态。因此,必须对其进行新的训练以获得最佳性能。尽管我们的工作部分受到了ADR的启发,但与现有技术相比,所提出的方法更为有效,训练更为简单[36,37]。为了最大限度地扩大差异,我们没有更新分类,而是在分类上采用了敌对性退学[30],以达到类似的效果。此外,这种对抗性退出也可以应用于特征提取器。在不需要极大极小训练方案的情况下,DTA具有简单可靠的自适应过程。Dropout是一种简单而有效的正则化方法,在训练过程中随机Dropout一小部分神经元[41]。据Srivastava el al [41],Dropout具有整合网络的多个子集的效果。Park等人[29]突出了卷积层上Dropout的效果。汤普森·艾尔。[43]指出,卷积层的激活通常被同一特征图内的类似激活所包围;因此,单个神经元的缺失对卷积层没有很强的影响。相反,他们提出了空间Dropout,即删除整个特征图而不是单个神经元。建立在空间Dropout的基础上,侯艾尔。[16] 提出了一种加权信道丢包,该丢包对单个信道使用可变丢包率,其中丢包率取决于信道的平均激活值。加权信道丢失仅适用于网络的深层,其中激活具有高规格[50、49、48]。类似地,对于频道敌对退出,我们以敌对的方式删除整个功能图。

3.       Proposed Method

为了在更广泛的任务中使用DTA,我们将EAdD扩展到卷积层。然而,在这些层中,由于特征地图的各个激活之间的强空间相关性,标准缺失相对无效[43]。EAdD辍学者在天真地应用于复杂层时也会遇到同样的问题。因此,我们制定了CAdD,它会以相反的方式删除整个特征图,而不是单独的激活。虽然一般过程类似于EAdD,但我们对掩模施加了某些约束,以表示空间丢失[43]。图2突出了EAdD和CAdD之间的区别。

我们在图1(c)中说明了LfDTA的效果。最初,决策边界穿过特征空间中的高密度区域(图1(a)),这违反了聚类假设。通过在特征提取器上应用对手退出,我们使某些特征越过决策边界(图1(c),左)。然后,为了实施一致的预测,更新模型参数以使决策边界远离这些特征(图1(c),右)。类似地,我们将AdD应用于Classifier,Classifier被定义为一系列完全连接的层。

图3使用Grad-GAM[39]可视化了敌对性辍学的影响,它强调了预测中最具辨别力的区域。作为基线,我们提供仅在源域上训练的模型的梯度CAM可视化(因此,参见图3(b))。我们将AdD应用于仅源模型(SO+AdD),并看到语义上有意义的区域被停用。相反,我们的领域适应模型(DTA,参见图3(d))保持相对不受AdD的影响,因为它始终看到相同的区分区域(参见图3(e))而不考虑AdD。可视化结果表明,AdD可以促进更多隐藏单元的激活,并有助于跨域的健壮决策边界。

4.       Experimental Results

为了评估DTA模型的影响,我们首先在小数据集上进行实验。我们使用MNIST[20]、USPS[17]和Street View House Numbers(SVHN[28]来适应数字识别。对于对象识别,我们使用CIFAR10(CIFAR)[18]和STL10(STL)[6]。为了与最近最先进的方法,如Self-Ensembling(SE)[9]、VADA[40]和DIRT-T[40]进行公平的比较,我们在与SE相同的网络架构上进行了实验。虽然VADA/DIRT-T使用稍有不同的rernet架构,但参数总数是可比的。结果见表1,超参数设置的完整列表见附录B。

使用ResNet-101骨干网的每类自适应性能见表2。该表清楚地表明,我们提出的方法在很大程度上超过了以前的方法。请注意,此表中的所有方法都使用相同的ResNet-101主干网。与纯源模型相比,平均精度提高了30.7%(相对提高了60.4%)。此外,DTA在所有类别中都显示出显著的改进;事实上,它在所有类别中都实现了最佳的每类性能,除了“卡车”类别,它仅落后于ADR 0.2%。尽管我们的源模型略低于MCD[37]和ADR模型,但我们提出的方法有效地将模型从源域推广到目标域,与MCD和ADR相比,自适应性能分别提高了9.6%和6.7%。

在表4中,我们证明了在不同的骨干网络上成功地应用DTA是可行的。与ResNet-101上的DTA类似,我们的模型优于最近的前一种方法,并且证明了与仅源模型相比的显著改进。虽然SE报告了最佳的总体性能,但我们认为它不能与其他方法(包括我们的方法)相比,因为报告的精度是16个集合预测的结果。

对于定性分析,图4用tSNE可视化了VisDA-2017分类的特征表示[45]。纯源模型显示了源域合成图像样本的强聚类(蓝色),但对目标域的真实图像样本(红色)没有类似的影响。在训练过程中,DTA通过刺激模型的特征表示和决策边界,不断地对目标样本进行聚类。因此,我们可以清楚地看到,目标特征与DTA的分离得到了改进,从而在VisDA-2017中获得了最佳性能。

5.       Discussion

虽然提议的DTA在多个视觉任务上显示出显著的改进,但我们希望了解DTA中每个组件的作用以及它们的组合在实践中的运作方式。我们进行了一系列烧蚀实验,结果见表5。所有融合均在VisDA-2017图像分类数据集上进行。为了验证该方法的有效性和通用性,我们使用ResNet50和ResNet-101模型进行了所有的融合实验。修改后的基于ResNet的模型包括原始卷积层,在第二个完全连接层之后使用FAdD,在最后一个卷积层中使用CAdD。式(11)中的熵损失项适用于除“仅源”设置外的所有loss。

6. Conclusion

我们提出了一种简单而有效的无监督域自适应方法。通过两种提出的敌对退出模块EAdD和CAdD,我们在tar上实现了集群假设获取域。所提出的方法很容易集成到现有的深度学习架构中。通过对各种大小数据集的大量实验,我们证明了该方法在两个领域自适应任务上的有效性,并且在所有情况下,与纯源模型和最新结果相比,我们都取得了显著的改进。

无监督域对抗算法:ICCV2019论文解析的更多相关文章

  1. 白*衡(Color Constancy,无监督AWB):CVPR2019论文解析

    白*衡(Color Constancy,无监督AWB):CVPR2019论文解析 Quasi-Unsupervised Color Constancy 论文链接: http://openaccess. ...

  2. 细粒度语义分割:ICCV2019论文解析

    细粒度语义分割:ICCV2019论文解析 Fine-Grained Segmentation Networks: Self-Supervised Segmentation for Improved L ...

  3. 面部表情视频中进行远程心率测量:ICCV2019论文解析

    面部表情视频中进行远程心率测量:ICCV2019论文解析 Remote Heart Rate Measurement from Highly Compressed Facial Videos: an ...

  4. 人脸真伪验证与识别:ICCV2019论文解析

    人脸真伪验证与识别:ICCV2019论文解析 Face Forensics++: Learning to Detect Manipulated Facial Images 论文链接: http://o ...

  5. 深度学习数据特征提取:ICCV2019论文解析

    深度学习数据特征提取:ICCV2019论文解析 Goal-Driven Sequential Data Abstraction 论文链接: http://openaccess.thecvf.com/c ...

  6. 结构感知图像修复:ICCV2019论文解析

    结构感知图像修复:ICCV2019论文解析 StructureFlow: Image Inpainting via Structure-aware Appearance Flow 论文链接: http ...

  7. 大型图像数据聚类匹配:ICCV2019论文解析

    大型图像数据聚类匹配:ICCV2019论文解析 Jointly Aligning Millions of Images with Deep Penalised Reconstruction Conge ...

  8. 视频动作定位的分层自关注网络:ICCV2019论文解析

    视频动作定位的分层自关注网络:ICCV2019论文解析 Hierarchical Self-Attention Network for Action Localization in Videos 论文 ...

  9. 摄像头定位:ICCV2019论文解析

    摄像头定位:ICCV2019论文解析 SANet: Scene Agnostic Network for Camera Localization 论文链接: http://openaccess.the ...

随机推荐

  1. spring boot 或 spring 集成 atomikos jta 完成多数据源事务管理

    前言:对于事务,spring 不提供自己的实现,只是定义了一个接口来供其他厂商实现,具体些的请看我的这篇文章: https://www.cnblogs.com/qiaoyutao/p/11289996 ...

  2. 【JVM】JVM中的垃圾回收算法

    1.标记 -清除算法 "标记-清除"(Mark-Sweep)算法,如它的名字一样,算法分为"标记"和"清除"两个阶段:首先标记出所有需要回收 ...

  3. 【Java】说说你对ThreadLocal的理解

    思路: 0.ThreadLocal是什么?有什么用? 1.ThreadLocal用在什么地方? 2.ThreadLocal的一些细节 3.ThreadLocal的最佳实践 一.ThreadLocal用 ...

  4. hdu4560 不错的建图,二分最大流

    题意: 我是歌手 Time Limit: 6000/2000 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others) Total Subm ...

  5. ZOJ3261并查集逆向处理

    题意:       给你一些点,还有一些边,每个点上都有一个权值,然后有一些询问,分为两种, query a 询问与a直接或者间接想连的点中最大权值的是那个点,输出那个点,如果那个点的权值小于等于a的 ...

  6. UVA11427玩纸牌(全概率+递推)

    题意:       一个人玩纸牌游戏,他每天最多玩n局,枚举获胜的概率是a/b,每天玩牌只要获胜概率达到p,那么他今天就不玩了,明天接着玩,如果有一天他的概率没有达到p,(没有达到p的话他今天一定是玩 ...

  7. FlinkSQL使用自定义UDTF函数行转列-IK分词器

    一.背景说明 本文基于IK分词器,自定义一个UDTF(Table Functions),实现类似Hive的explode行转列的效果,以此来简明开发过程. 如下图Flink三层API接口中,Table ...

  8. java线程池实践

    线程池大家都很熟悉,无论是平时的业务开发还是框架中间件都会用到,大部分都是基于JDK线程池ThreadPoolExecutor做的封装, 都会牵涉到这几个核心参数的设置:核心线程数,等待(任务)队列, ...

  9. [BUUCTF-Pwn]hitcontraining_uaf

    [BUUCTF-Pwn]hitcontraining_uaf 以此题作为对Pwn中堆利用的学习的开始.堆题初见,肯定有许多地方理解不恰当,希望师傅们能多多指教. 0x00.简述 成因 应用程序调用fr ...

  10. JDK库rt包中常用包说明

    日常开发中的api都在rt包中,具体路径为:/jdk1.8.0_162/jre/lib中,注意是在jre中. 每个包中大致包含以下几个部分: 接口 类 枚举 异常 错误 注解 J2EE开发中常用的包 ...