迁移学习《Efficient and Robust Pseudo-Labeling for Unsupervised Domain Adaptation》

news2024/9/23 23:28:29

1 摘要

  问题:无监督域适应传统方法将超过一定置信度阈值的数据视为目标域的伪标记数据,因此选择合适的阈值会影响目标性能。

  在本文中,提出了一种新的基于置信度的加权方案来获得伪标签,并提出了一种自适应阈值调整策略,以在整个训练过程中提供足够和准确的伪标签。 准确地说,基于置信度的加权方案根据置信度生成伪标签具有不同的贡献,这使得性能对阈值不太敏感。 此外,所提出的自适应阈值调整方法根据网络对目标域的适应程度来选择阈值,从而避免了对适当阈值的穷举搜索的需要。 

2 介绍

背景

  伪标记[21] 是对未标记数据进行人工标记,将无监督学习转化为半监督学习的过程。 本文遵循的前提,即具有高置信度输出的样本可以用作准确的标签 [22]、[23]。 具体来说,置信度超过某个阈值的未标记样本被视为真实标签,称之为伪标签。 伪标记技术的性能在很大程度上依赖于阈值,其中选择合适的阈值对于实现高性能至关重要。 高阈值会导致更准确的伪标签,从而获得高性能,但也会导致标签不足。 另一方面,低阈值会导致大量伪标签,但也会因伪标签不准确而导致性能不佳。 因此,找到合适的阈值以实现高性能是伪标记中的一个主要问题。

  此外,传统方法不是在整个训练过程中固定阈值,而是随着训练的进行不断增加阈值 [18]-[20]。 随着训练的进行,网络会适应目标域,这意味着与训练的早期阶段相比,将生成更多具有高置信度的伪标签。 当训练进行到一定程度时,即使阈值很高,网络也能够提供足够的伪标签。 因此,网络专注于通过在整个训练过程中增加阈值来生成准确的伪标签。然而,上述关于阈值选择的方法具有局限性。

  首先,性能对阈值极其敏感,阈值的微小差异会产生巨大的负面影响。 进行详尽搜索以找到正确的阈值,这很耗时并且需要针对不同的数据集单独完成。其次,先前的工作根据源域训练的进度或网络的准确性调整阈值。尽管伪标签是从目标域样本生成的,但阈值对目标域没有依赖性。

  为了克服传统方法的上述局限性,我们提出了一种基于置信度的加权方案来构建伪标签和一种自适应阈值调整方法。 我们基于置信度的加权方案限制了高阈值和低阈值的缺点。 我们为具有高置信度的伪标签赋予高权重,为低置信度赋予低权重。 因此,性能对阈值变得不那么敏感,从而避免了对适当阈值进行详尽搜索的需要。 此外,所提出的自适应阈值调整方法根据网络对目标域的适应程度来选择阈值。 阈值变得依赖于目标域,奖励目标域以在整个训练过程中生成足够和准确的伪标签。 通过所提出的方法,网络能够以自适应方式调整阈值,而无需穷举搜索。

3 方法 

  整体框架:

  

  判别器的目标函数:

    LD=minWD(∑xs∈XsH(D(zs),ysd)+∑xt∈XtH(D(zt),ytd))(1)LD=minWD(∑xs∈XsH(D(zs),ysd)+∑xt∈XtH(D(zt),ytd))(1)

  其中,ysdysd 和  ytdytd 是二分类域标签;

  编码器的目标函数:

    LG=minWE(∑xt∈XtH(D(zt),ysd))(2)LG=minWE(∑xt∈XtH(D(zt),ysd))(2)

  编码器 EE 和分类器 CC 的目标函数:

    LC=minWE,WC(∑xs∈XsH(C(zs),ys)+∑x^t∈X^tH(C(z^t),y^t))(3)LC=minWE,WC(∑xs∈XsH(C(zs),ys)+∑x^t∈X^tH(C(z^t),y^t))(3)

4.1 基于置信度的加权方案

  当通过类别损失训练分类器时,先前的工作 [18]-[20] 对每个伪标记样本的类别损失给出了相同的贡献,即使样本的置信度不同。 在高度置信度伪标签大多正确的前提下[22],[23],具有不同置信度的伪标签对类别损失的贡献应该不同。 具有高置信度的伪标签意味着匹配真实标签的概率很高,这应该对类别损失有很大贡献。 相反,低置信度的伪标签有被错误标记的风险,这意味着应该对类别损失给予低贡献以抑制风险。 因此,我们建议赋予伪标签与其置信度成正比的权重。

  本文将完全置信的伪标签(置信度为 1.0 的标签)设置为 1.0 的权重,而根据经验将置信度为阈值的伪标签设置为与完全置信的伪标签相比具有一半的贡献。 也就是说,为伪标签分配权重为 0.5 的阈值置信度。 本文将伪标签的权重设置为与伪标签的置信度成线性比例:

    w(xt)=0.51−thconf(xt)+0.5−th1−th(4)w(xt)=0.51−thcon⁡f(xt)+0.5−th1−th(4)

  其中 conf(xt)con⁡f(xt) 表示从分类器导出的目标样本 xtxt 的置信度,thth 表示阈值。

  考虑到伪标签的置信度,我们可以通过应用 Eq.4Eq.4 来修改等式 Eq.3Eq.3 以重新制定新的类别损失:

    LC=minWE,WC(∑xs∈XsH(C(zs),ys)+∑x^t∈X^tw(x^t)H(C(z^t),y^t)⎞⎠⎟(5)LC=minWE,WC(∑xs∈XsH(C(zs),ys)+∑x^t∈X^tw(x^t)H(C(z^t),y^t))(5)

  通过伪标签的基于置信度的加权方案,我们能够减少低阈值和高阈值的缺点。 由低阈值生成的不准确的伪标签被赋予较小的权重,因此分类器受到的不准确性影响较小。 高阈值经历了伪标签的不足,由低阈值提供的伪标签补偿。 结果,网络的性能不会因伪标签的不准确和不足而显着下降,这意味着性能对阈值变得不那么敏感。

4.2 自适应阈值调整

  为了关注训练早期伪标签的缺乏和后期伪标签的准确性,许多研究根据训练的进展增加阈值[19],[20]。 训练的进度由当前纪元或网络在源域样本上的准确性决定。 然而,这些术语不依赖于目标域,因此不能完全反映训练的进度。 因此,我们提出自适应阈值调整策略,根据模型对目标域的适应程度来设置阈值。 对目标域适应性低的模型不能对目标样本进行分类,这会导致输出置信度低,而适应性好的模型则输出置信度高。 因此,我们将模型对目标域的适应程度视为目标样本的平均置信度输出。 基于模型对目标域的置信度的修改阈值表示为:

    th=max(∑xt∈Xtconf(xt)nt,α)(6)th=max(∑xt∈Xtcon⁡f(xt)nt,α)(6)

  其中 ntnt 表示目标样本的数量,α=0.7α=0.7 表示最小阈值。 确定一个最小阈值,以防止在训练初期模型对目标域没有适应性时阈值过低。 太低的阈值会产生许多不准确的伪标签,这会阻止网络学习目标区分表示。 通过所提出的方法,网络可以自适应地选择合适的阈值,以在整个训练过程中保持伪标签的充分性和准确性。 结果,模型可以对各种数据集和模型容量具有鲁棒性。

4.3 总体目标函数

  总体目标函数可以表示为

    L=minWE,WD,WC(LE+LD+βLC)(7)L=minWE,WD,WC(LE+LD+βLC)(7)

  其中 β 是平衡参数。 编码器和鉴别器以对抗方式进行优化,将源样本和目标样本映射到公共域表示中。 编码器和分类器使用源和伪标记样本进行优化,以实现高分类性能。 详细的优化过程如算法 1 所示。

  算法总结:

  

5 实验

可视化: 

  

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

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

相关文章

oCPC实践录 | oCPC下机制设计变得毫无意义?(2)无声的战争

接上回oCPC实践录 | oCPC下机制设计变得毫无意义?(1)事出异常必有妖,互联网广告最开始采用的广义第一价格密封拍卖(GFP),对广告主而言,需要不断感知竞争对手的变化,修改报价&#xf…

text-generation-webui加载chatglm2-6b时,报错,要求set the option trust_remote_code=True

背景 使用text-generation-webui加载chatglm2-6b大模型时报错,要求设置option trust_remote_codeTrue,一开始没注意界面,去翻找配置文件,后来发现,就在Model界面,有一个复选框,可以进行设置&am…

IO模型epoll

通过epoll实现一个并发服务器 服务器 #include <stdio.h> #include <string.h> #include <stdlib.h> #include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> #include <netinet/ip.h> #include <arpa/inet.h…

【新星计划】STM32F103C8T6 - C语言 - 蓝牙JDY-31-SPP串口通信实验

文章目录 蓝牙技术的发展历史SPP蓝牙串口BLE协议&#xff08;超低功耗应用蓝牙协议&#xff09; 常见通用蓝牙模块JDY-31-SPPHC05/06 Keil 工程开发模版main.c 源文件&#xff1a;接线方式&#xff1a;烧录工具&#xff1a;FlyMcu串口调试工具&#xff1a;XCOM蓝牙调试助手APP …

Yolov8训练自己的数据集合(最新实验数据)

一、安装环境 笔者环境如下&#xff1a; win10 anaconda python3.8二、clone代码 地址如下&#xff0c;可以直接使用git命令进行clone,也可以直接去网站下载 git clone https://github.com/ultralytics/ultralytics代码目录如下所示 三、安装必要的库 其实这里比较重要的是…

java的instanceof操作符

说明 java的instanceof操作符可以用于类型的比较或者模式匹配比较。instanceof关键字左边是对象的引用&#xff0c;右边是引用类型或者模式。 如果instanceof关键字右边是一个引用类型&#xff0c;那么instanceof关键字是一个类型比较操作符。 如果instanceof关键字右边是一个…

6.事件监听(绑定)

6.1事件监听 ●什么是事件? 事件是在编程时系统内发生的动作或者发生的事情 比如用户在网页上单击一个按钮 ●什么是事件监听? 就是让程序检测是否有事件产生&#xff0c;一旦有事件触发&#xff0c;就立即调用一个函数做出响应&#xff0c;也称为绑定事件或者注册事件&…

FL Studio 21官方中文版功能介绍及2023最新下载详细图文安装激活教程。FL Studio 21需要系统配置要求

FL Studio 21版本更新现已发布&#xff0c;在这次更新中优化了很多功能&#xff0c;但这些现在都不重要&#xff0c;FL Studio21版本的这次更新中令人瞩目的更新莫过于对简体中文版的支持了。以前FL Studio只有英文版&#xff0c;想要用上中文版只有用汉化包&#xff0c;而且有…

某信用中心之加速乐实战分析

某信用中心之加速乐实战分析 某信用中心之加速乐实战分析声明逆向目标逆向分析第一层cookie获取第二层cookie获取调试分析JS文件 模拟执行致谢 某信用中心之加速乐实战分析 声明 本文章中所有内容仅供学习交流&#xff0c;抓包内容、敏感网址、数据接口均已做脱敏处理&#x…

【二叉树进阶】搜索二叉树(递归+非递归两种版本详解)

文章目录 前言1. 二叉搜索树的概念2. 二叉搜索树的结构2.1 结点结构2.2 树结构 3. 插入操作&#xff08;非递归&#xff09;3.1 思路分析3.2 代码实现3.3 中序遍历&#xff08;测试用&#xff09; 4. 查找操作&#xff08;非递归&#xff09;4.1 思路分析4.2 代码实现 5. 删除操…

七大经典比较排序算法

1. 插入排序 (⭐️⭐️) &#x1f31f; 思想&#xff1a; 直接插入排序是一种简单的插入排序法&#xff0c;思想是是把待排序的数据按照下标从小到大&#xff0c;依次插入到一个已经排好的序列中&#xff0c;直至全部插入&#xff0c;得到一个新的有序序列。例如&#xff1a;…

Doc as Code (3):业内人士的观点

作者 | Anne-Sophie Lardet 在技术传播国际会议十周年之际&#xff0c;Fluid Topics 的认证技术传播者和功能顾问 Gaspard上台探讨了“docOps 作为实现Doc as Code的中间结构”的概念。在他的演讲中&#xff0c;观众提出了几个问题&#xff0c;我们想分享Gaspard的见解&#x…

深入学习 Redis - 渐进式遍历 scan 命令、数据库管理命令

目录 前言 一、scan 命令 二、数据库管理命令 select dbsize flushdb / flushall 前言 之前我们所了解到的 keys * 是一次性把整个 redis 中所有的 key 都获取到&#xff0c;但是整个操作比较危险&#xff0c;可能会一下子的都太多的 key&#xff0c;阻塞 redis 服务器. …

NLP(六十三)使用Baichuan-7b模型微调人物关系分类任务

任务介绍 人物关系分类指的是对文本中的两个人物&#xff0c;在特定的关系列表中&#xff0c;判断他们之间的人物关系。以样本亲戚 1837年6月20日&#xff0c;威廉四世辞世&#xff0c;他的侄女维多利亚即位。为例&#xff0c;其中亲戚为人物关系&#xff0c;威廉四世为实体1&a…

vins调试的注意事项

1、摄像头的内参和畸变矫正系数 这个系数不对&#xff0c;没法做&#xff0c;因为下一步没法做对。这个会导致系统无法初始化。 2、对畸变的像素点&#xff0c;求得归一化坐标的方法 理解不同矫正模型的原理&#xff0c;确保矫正对了&#xff0c;得到z1平面的去畸变点。 3、摄…

python皮卡丘编程代码教程,用python打印皮卡丘

大家好&#xff0c;小编来为大家解答以下问题&#xff0c;如何用print函数打印一只皮卡丘&#xff0c;用python如何打印丘比特之心&#xff0c;现在让我们一起来看看吧&#xff01;

CCL 2023 电信网络诈骗案件分类评测-第一名方案

1 任务内容 1.1 任务背景 2022年12月1日起&#xff0c;新出台的《反电信网络诈骗犯罪法》正式施行&#xff0c;表明了我国治理当前电信网络诈骗乱象的决心。诈骗案件分类问题是打击电信网路诈骗犯罪过程中的关键一环&#xff0c;根据不同的诈骗方式、手法等将其分类&#xff…

13个ChatGPT类实用AI工具汇总

在ChatGPT爆火后&#xff0c;各种工具如同雨后春笋一般层出不穷。以下汇总了13种ChatGPT类实用工具&#xff0c;可以帮助学习、教学和科研。 01 / ChatGPT for google/ 一个浏览器插件&#xff0c;可搭配现有的搜索引擎来使用 最大化搜索效率&#xff0c;对搜索体验的提升相…

【机器学习】Linear Regression

Model Representation 1、问题描述2、表示说明3、数据绘图4、模型函数5、预测总结附录 1、问题描述 一套 1000 平方英尺 (sqft) 的房屋售价为300,000美元&#xff0c;一套 2000 平方英尺的房屋售价为500,000美元。这两点将构成我们的数据或训练集。面积单位为 1000 平方英尺&a…

C++ 类和对象篇(零) 面向过程 和 面向对象

目录 一、面向过程 二、面向对象 三、两种编程思想的比较 四、C和C 一、面向过程 1.是什么&#xff1f; 是一种以解决问题的过程为中心的编程思想。即先分析出解决问题所需要的步骤&#xff0c;然后用函数把这些步骤一步一步实现。 2.为什么&#xff1f; 面向过程就纯粹是分析…