无监督域适应 (UDA)(2)

news2024/11/23 8:22:46

本帖介绍UDA 的一个分支:bi-classifier adversarial learning。

一、回顾

在介绍 bi-classifier adversarial learning 之前,先来回忆一下 adversarial generation framework, 因为前者是基于后者的改进。

 如图1所示,左边表示的是1)对抗学习方法 adversarial generation ,右边表示的是2)双分类器对抗学习方法 bi-classifier adversarial learning

对抗学习方法,包括domain classifier (i.e., a discriminator) and feature generator两个部分。训练域分类器网络来区分特征是源还是目标,并训练特征生成器网络来使鉴别器混淆判断。这类方法存在两个问题。

首先,域分类器只试图区分特征作为源或目标,因此不考虑类之间特定于任务的决策边界。因此,经过训练的生成器可能在类边界附近生成模棱两可的特征。

其次,这些方法的目标是完全匹配不同领域之间的特征分布,但不同域的特点不同,这个很难做到。

双分类器对抗学习方法,利用特定于任务的决策边界来对齐源和目标的分布。

首先,最大化两个分类器输出之间的差异,以检测远离源的目标样本。

然后,特征生成器学习如何将决策边界外的样本生成决策边界内的目标特征以最小化差异。

总结:

对于上图1来说,传统的对抗学习的方法只考虑了目标域的特征去迎合源域的特征的分布,但在决策边界周围会有模棱两可的特征,不利于特定任务的性能;双分类器学习方法,把特定任务分类器引入了对抗学习的过程,考虑了任务决策边界和目标样本之间的关系,使得生成器生成目标样本的判别特征。

二、主要思想

2.1 符号系统

带标签的源图像{xs, ys}

未标记的目标图像xt

特征生成器网络g,它接受输入xs或xt

分类器网络h1和h2,它们从g中获取特征

h1和h2将样本分为K类,输出一个K维的logits向量,对向量应用softmax函数来获得类概率。符号p1(y|x), p2(y|x)来表示分别由h1和h2获得的输入x的k维概率输出。

2.2 基本思想

利用特定于任务的分类器作为判别器来对齐源和目标特征,以便考虑类边界和目标样本之间的关系。为了实现这一目标,我们必须在远离源支持的地方检测目标样本。

问题是如何检测远离支持点的目标样本。这些目标样本很可能被从源样本中学习到的分类器误分类,因为它们靠近类边界。然后,为了检测这些目标样本,我们提出利用两种分类器在目标样本预测上的分歧。考虑两个分类器(h1和h2),它们在图2的最左侧具有不同的特征。我们假设这两个分类器可以正确地对源样本进行分类。这个假设是现实的,因为我们可以在UDA的设置中访问标记的源样本。此外,请注意,h1和h2的初始化方式不同,以便从训练开始时获得不同的分类器。(如何保证获得的分类器不同?)

在这里,我们有一个关键的直觉,即源支持之外的目标样本可能会被两个不同的分类器分类。该区域在图2(差异区)的最左侧用黑线表示。相反,如果我们可以度量两个分类器之间的分歧,并训练生成器使分歧最小化,则生成器将避免生成源支持之外的目标特征。在这里,我们考虑使用以下方程来测量目标样本的差异,d(p1(y|xt), p2(y|xt)),其中d表示测量两个概率输出之间散度的函数。这个术语表明两个分类器在预测上是如何不一致的,以后我们称这个术语为差异。我们的目标是获得一个可以最小化目标样本差异的特征生成器。

为了有效地检测源支持之外的目标样本,我们提出训练判别器(h1和h2)来最大化给定目标特征的差异(图2中的最大化差异)。如果不进行此操作,两个分类器可能非常相似,无法检测源支持之外的目标样本。然后,我们训练生成器来欺骗鉴别器,即通过最小化差异(图2中的最小化差异)。该操作鼓励在源的支持范围内生成目标样本。这种对抗性学习步骤在我们的方法中是重复的。

2.3 步骤

第一步,基于标记的源样本训练特征提取器g和两个分类器 h1和 h2,使模型拟合源域的分布;

 第二步,冻结特征提取器g,通过最大化未标记的目标样本的预测差异来寻找源分布支持之外的目标样本,同时最小化标记的源样本的交叉熵来更新两个分类器;

 第三步,更新特征提取器푔,通过最小化未标记目标样本与固定两个分类器的预测差异来对齐两个域之间的分布;

 这三个步骤在我们的方法中重复。这三个步骤的顺序并不重要。主要关注的是在分类器和生成器能够正确分类源样本的条件下,以对抗的方式训练它们。

2.4 补充说明

 在这里我想补充一下对双分类器的理解,本来目标样本是没有标签的,那怎么用没有标签的样本来提高特定任务在目标域的性能呢?  传统的对抗学习的做法,是直接让目标域数据的特征向源域靠近,那无论做什么任务,都可以达到 不错的效果!双分类器对抗学习认为,既然要提高某个具体任务在目标域上的准确率,为什么不结合具体任务来处理,因此这里的分类器不再是域分类器,而是特定任务分类器; 但由于目标域没有标签,训练的时候没有办法测试特定任务分类器在目标域的性能呀?于是,就设计了两个分类器,如果两个分类器预测出来的差异很大,就说明分类器不好或者是特征提取器提取的特征不够关键,在这里是利用两个分类器预测结果的差异来表明分类器性能的好坏。而当分类器性能最差的时候是什么时候呀,当然是两个分类器在目标域上预测差异最大的时候,也就是散度最大的时候。此外差异最大的时候,可以保证在源域上分类效果好且分类的边界是清晰的,效果差的那些目标域样本被挑了出来。那如何去解决分类器分类效果差呀?丢锅给了特征提取器,一定是特征提取器没有提到和任务相关的关键特征,如下图所示,经过特征提取提取器提取的特征源域和目标域更相似(有种聚类的效果),因此继续训练特征提取器,直到两个任务分类器分出近乎一致的结果。

在这类方法里,不同的学者在度量分类器预测结果差异上采用了不同的方式。

这里我的疑问是,为甚么是双分类器,三分类器呢?效果会不会更好~

而且这里有点勉强的是为啥,两个任务分类器最差的时候,仅仅靠调节特征生成器就可以让目标分布靠近源分布?

最终结论,深度学习赢得就是这么粗鲁,因为双分类器给了一个更明确的导向,就是从具体任务(也就是评价指标)入手!干的漂亮!

2.5 实验结果

 三、参考文献

[1]  Saito K, Watanabe K, Ushiku Y, et al. Maximum classifier discrepancy for unsupervised domain adaptation[C]//Proceedings of the IEEE conference on computer vision and pattern recognition. 2018: 3723-3732.

[2] Lee C Y, Batra T, Baig M H, et al. Sliced wasserstein discrepancy for unsupervised domain adaptation[C]//Proceedings of the IEEE/CVF conference on computer vision and pattern recognition. 2019: 10285-10295.

[3] Li S, Lv F, Xie B, et al. Bi-classifier determinacy maximization for unsupervised domain adaptation[C]//Proceedings of the AAAI Conference on Artificial Intelligence. 2021, 35(10): 8455-8464.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/514646.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

DeepSORT 论文精读

摘要 SORT(Simple Online and Realtime Tracking) we integrate appearance information to improve the performance of SORT 集成外观信息来提高SORT的表现 we are able to track objects through longer periods of occlusions, effectively reduci…

JVM学习05:内存模型

JVM学习05:内存模型 1、java内存模型 很多人将java 内存结构与java 内存模型傻傻分不清,java 内存模型是 **Java Memory Model(JMM)**的意思。 JMM 定义了一套在多线程读写共享数据时(成员变量、数组)时…

UE4/5对背景音乐的调整设置

音乐是一个游戏必不可少的因素。 而在游戏设置中,必不可少的就有对背景音乐的声音大小进行设置,而我们需要的就是如何对背景音乐进行设置: 准备两个蓝图,分别是音效类和音效类混合。 然后打开音效类,我们可以看见下图…

如何用postman进行http接口测试,这篇文章绝对会颠覆你的认知

目录 前言 优点: 1、什么是POSTMAN 2、新建一个项目 2、新增一个用例 3、添加请求信息 4、post请求参数 5、添加头信息 6、预处理和结果检查 7、全局变量与环境变量 8、导出用例为代码 9、批量执行用例 前言 HTTP的接口测试工具有很多,可以进…

贪心法——黑白连线问题

一、问题描述 黑白连线Time Limit: 1000 MSMemory Limit: 1000 KB Description 给定直线上2n个点的序列P[1,2,… ,2n],每个点P[i]要么是白点要么是黑点,其中共有n个白点和n个黑点, 相邻两个点之间距离均为1,请设计一个算法将每…

第六章:C语言的数组

在我的生活中,有许许多多的东西,有强迫症的小伙伴们,喜欢把它们分类到一个地方保存,这样一来,用的时候就按分类的形式来找自己需要的东西,而C语言也是如此,当有多个整形的数字是,就可…

steam搬砖详细解说,CSGO游戏搬砖的18个疑问?

看到这边文章进来的都是想了解steam搬砖,做个副业,我希望你可以认真把这个看完再考虑要不要做,适不适合自己去做,首先steam搬砖这个项目是需要有周转本金的,因为需要购买饰品道具,至于多少,这个…

7种《软件测试用例设计方法》解读及工作场景解析

1、等价类划分法 等价类划分法是一种将输入、输出、内部值等划分为若干个等价类的黑盒测试设计技术。在这种方法中,我们假设同一等价类的数据会被程序以相同的方式处理。 例如:一个允许输入年龄的程序,允许的年龄范围是1到100。在这种情况下…

Vue Test Utils前端单元测试

含义 单元测试(unit testing),是指对软件中的最小可测试单元进行检查和验证。在提供了经过测试的单元的情况下,系统集成过程将会大大地简化。流行框架 Mocha (https://mochajs.cn/)、Jest (https://www.jestjs.cn/) Mocha Chai…

asp.net web api 后端服务器在调试时跨域问题的解决方案

跨域在发布时,在iis设置中 https://www.cnblogs.com/babietongtianta/p/6488985.html 在开发调试时,program.cs中添加 和各种方法,都不可以。 后来在iisexpress中设置,解决了。 在右下角iisexpress 右键 双击打开applicationho…

PCL学习十:Segmentation-分割

参考引用 Point Cloud Library黑马机器人 | PCL-3D点云 PCL点云库学习笔记(文章链接汇总) 1. 引言 点云分割是根据空间、几何和纹理等特征对点云进行划分,使得同一划分区域内的点云拥有相似的特征。点云的有效分割往往是许多应用的前提&#…

【OAI】部署5GSA独立组网网络切片例程及例程解析

文章目录 摘要引言关键技术介绍5G核心网核心网网元功能 网络切片OAIDocker官方例程详解整体介绍具体详解网络切片架构部署概览与说明1-41.预先准备5.部署OAI 5G核心网6.获取基站仿真docker镜像7.部署基站仿真8.通信测试9.分析结果10. 使用多切片的UE11. 解除部署11.1解除RAN部署…

面了一个4年经验的测试员,一问三不知还反过来怼我?

金三银四期间,我们公司也开始大量招人了,我这次是公司招聘的面试官之一,主要负责一些技术上的考核,这段时间还真让我碰到了不少奇葩求职者 昨天公司的HR小席刚跟我吐槽:这几个星期没有哪天不加班的!各种招…

(8)Qt---数据库

目录 1. Qt数据库简介 2. 连接与关闭 3. 建表 4. 增删改 5. 查询 6.银行管理系统程序代码(包含增删改查) 1. Qt数据库简介 Qt只是作为媒介去操作数据库,本身不具备数据库的功能,因此除了Qt以外,还需要在计算机中安装对应的数据库软件&#xf…

Windows 11 支持安卓应用

更改系统国家 打开windows自带的搜索,找到更改国家或地区。把地区改成美国。 开启电脑VT 不同电脑开启方式不一样,请搜索:xxx进入BIOS和xxx开启VT打开你电脑的VT。 安装子系统 电脑打开Microsoft Store直接搜是搜不到的, 点…

C/C++的内存管理

C/C的内存管理 1.C/C的内存分布2.C语言的动态内存管理方式:malloc/calloc/realloc/free3. C内存管理方式3.1. new/delete操作内置类型3.2.new和delete操作自定义类型 4.operator new与operator delete函数4.1 operator new与operator delete函数 5.new和delete的实现…

一次查找分子级Bug的经历,过程太酸爽了

“Debugging is like trying to find a needle in a haystack, except the needle is also made of hay.” Debug调试就像是在大片的干草堆中找针一样,只不过针也是由干草制成的。 在软件开发的世界里,偶尔会出现一些非常隐蔽的 Bug,这时候工…

数据结构之“树”——二叉树、红黑树、B树、B+树、B*树

这篇文章主要简单总结下二叉树、红黑树、B树、B树、B*树的基本结构和原理。 一、二叉树 二叉树就是度不超过2的树(每个结点最多有两个子结点)。 二叉树是有序树(二叉排序树),若将其左右子树颠倒,则成为另一棵不同的二叉树。 二叉…

MYSQL跨服务器访问数据库 :FEDERATED存储引擎

当想从不同服务器的数据库获取数据时,我们会想到oracle的DBLink;sqlserver的链接访问(傻瓜式操作,按照步骤配置即可),那么mysql有没有跨服务器访问的功能呢?答案自然是有的。 博主这就分享给大家…

语音识别-置信度

1.CONFIDENCE ESTIMATION FOR ATTENTION-BASED SEQUENCE-TO-SEQUENCE MODELS FOR SPEECH RECOGNITION : https://arxiv.org/pdf/2010.11428.pdf 1.引言 1).置信度的目的: 在半监督学习和主动学习中,选择较高置信度的数据来进一步提高ASR性能…