域适应 Domain adaption(1)

news2024/9/22 13:23:13

一、定义

1、无监督域自适应

经典机器学习假设训练集和测试集来自相同的分布。

然而,这个假设在现实世界的应用程序中可能并不总是成立,例如,数据来源不同。

这种情况下,域分布之间会存在差异,直接将训练好的模型应用于新数据集可能会导致性能下降。

本贴主要讨论无监督域自适应(有标签的源域、无标签的目标域)。 

2、域的组成

域由特征空间和边际概率分布(即数据的特征和这些特征在数据集中的分布)组成。根据这个定义,域的变化可能是由特征空间的变化或边际概率分布的变化引起的。当使用文本挖掘对文档进行分类时,特征空间的变化可能是由于语言的变化(例如,英语到西班牙语),而边际概率分布的变化可能是由于文档主题的变化(例如,计算机科学到英国文学)。

Homogeneous domain adaptation  均匀的 特征空间相同

heterogeneous domain adaptation 不均匀的 特征空间不同

二、相关问题

介绍相关问题,更好的界定domain adaptation的研究范围。

多域学习 (multi-domain learning ):如何将多个相关渠道的数据放在一起训练,而能够相互促进,而非相互干扰。一般数据量不是很多的时候这样做。

领域泛化(domain generalization):即在带有标记数据的多个源领域上训练模型,然后在训练过程中未看到的另外的目标领域上进行测试。这与领域自适应形成对比,在领域自适应中,目标示例(可能未标记)在训练期间可用

迁移学习(transfer learning)问题可能是将知识从源领域转移到不同的目标领域,也可能是将知识从源任务转移到不同的目标任务(或两者的结合)。域由特征空间和边际概率分布(即数据的特征和这些特征在数据集中的分布)组成。任务由标签空间和客观预测函数(即从训练数据中学习到的标签集和预测函数)组成。域自适应是一类特殊的迁移学习。

三、背景

1、Generative adversarial networks(GANs)

1)理论基础

让两个匹配良好的神经网络相互对抗,扮演数据鉴别器数据生成器的角色,这对组合能够完善每个玩家(数据鉴别器、数据生成器)的能力,以执行合成数据生成等功能。

生成器的输入为噪声向量,其中包含从某些分布(如正态分布或均匀分布)中提取的随机值。

生成器网络的目标是输出一个与真实训练数据无法区分的向量。

鉴别器的输入为来自训练数据的真实样本或来自生成器的假样本作为输入。

鉴别器的目标是确定输入样本为真实的概率。

在训练过程中,这两个网络玩一个极大极小的游戏,其中生成器试图愚弄鉴别器,而鉴别器试图不被愚弄。优化目标如下,其中D(G(z)) 为生成数据G(z)为真的概率:

 最终的目标,我们希望判别器能够鉴别真伪,即上式最大化;理想情况下,真实的判为真,

D(x)为1;假的判为假,logD(G(z))为0;log为单调递增函数,上式取得最大值;

而生成器的目标,则是混淆结果,上式最小化;理想情况下,真实的判为假,D(x)为0;假的判为真,logD(G(z))为1;log为单调递增函数,上式取得最小值;

通过这样的极大极小对抗,生成足以混淆生成器的样本,并实现好的分类效果。

2)面临问题

基于对抗思想,训练过程中可能会出现难以收敛、模式崩溃(生成器只学习生成数据分布的几个特定模式的真实样本)以及梯度消失等问题。

3)评价指标

生成器评价指标:Parzen窗口估计、记忆检测、确定多样性、测量真实性、近似对数似然的方法。 

针对任务的评价指标:分割任务AUC、分类任务Accuracy等。

更多的时候,还是采用的针对任务的评价指标。

四、方法

域适应和神经网络结合,出现了一下几个研究方向:

4.1、Domain-Invariant Feature Learning  域不变特征学习

这类方法假设存在这样的特征表示,并且边缘标签分布没有显着差异。

通过创建域不变特征表示(通常以特征提取器神经网络的形式)来对齐源域和目标域。

学习域不变特征的域自适应方法的一般网络设置如下图所示。(a)在训练过程中如何对齐域(对齐组件)以及每个域上使用的特征提取器是否在域之间不共享,部分共享或全部共享权重方面,方法有所不同。(b)将目标数据送入域不变特征提取器,再送入任务分类器。

 下面讨论各种特征对齐方式。

4.1.1 Divergence. 

4.1.2 Reconstruction.

4.1.3 Adversarial.

这里介绍的是特征级对抗域自适应方法。不同方法主要是对齐组件的组成不同。在大多数情况下,对齐组件由域分类器组成,当然也有可能是学习近似Wasserstein距离的网络或GAN。

域分类器的主要作用是判断输出特征是从来自源域还是目标域。

对比,GAN中的判别器,它试图准确地预测样本是来自真实数据分布还是来自生成器。换句话说,鉴别器区分两个分布,一个是实分布,一个是假分布。

域分类器的目标是正确地对域(源或目标)进行分类。在这种情况下,对特征提取器进行训练,使得域分类器无法对特征表示来自哪个领域进行分类。

通常,这些网络通过在这两个步骤之间交替进行对抗性训练。在执行反向传播以更新特征提取器权重时通过训练特征提取器,使具有梯度反转层的域分类器的梯度为负,从而使域分类器表现不佳,最大程度地混淆域分类器(当它在二元标签上输出均匀分布时),或反转标签。

由于数据分布通常是多模态的,因此可以通过在特征表示和任务分类器预测的多线性映射上调节域分类器来改善结果,这考虑了分布的多模态性质

五、参考文献

1、Wilson G, Cook D J. A survey of unsupervised deep domain adaptation[J]. ACM Transactions on Intelligent Systems and Technology (TIST), 2020, 11(5): 1-46.

2、Swami Sankaranarayanan, Yogesh Balaji, Arpit Jain, Ser Nam Lim, and Rama Chellappa. 2018. Learning from synthetic data: Addressing domain shift for semantic segmentation. In Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition (CVPR).

3、

【迁移学习】Domain Adaptation系列论文解析(不断更新中) - 知乎

【迁移学习】Domain Adaptation系列论文解析(二) - 知乎

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

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

相关文章

实时数仓项目开发过程中发现的几个问题和优化点(数据接入)

1、属性值被截断的问题 在数据实时接入阶段,使用NIFI ExecuteScript组件生成增、改、删SQL语句,将SQL语句放到了attribute中(详见视频教程http://mp.weixin.qq.com/s?__bizMzIyNzkwNDE4Nw&mid2247486672&idx1&sn41793a61dc5f7ca6b6f9a34b4…

供应链管理系统软件有哪些?这几款软件很不错

一、供应链管理系统解决什么问题 企业不断引进各类管理理念,落地运用各种信息化系统,然而依旧问题频出: 为什么交付还是常常延期?为什么成本依旧居高不下?为什么质量问题频频发生?为什么库存长期积压&…

SpringBoot启动原理

背景 1> 大家都知道SpringBoot是通过main函数启动的,这里面跟踪代码到处都没有找到while(true),为什么启动后可以一直跑? 2> SpringBoot默认使用tomcat作为web容器。大家也可以通过在pom文件中exclusion掉tomcat,denpendenc…

113.【Vue-细刷-04】

Vue-03 (二十四)、浏览器存储(WebStorage)1.本地缓存(LocalStorage)(1). 模仿本地缓存-未用JSON转字符串(2).模拟本地缓存-使用JSON转字符串 2.会话缓存(Session Storage)(1).模拟会话缓存(2).会话缓存和本地缓存的区别(3).JSON转换与JSON解析 3.todos案列_本地缓存版(1).mount…

NVIDIA CUDA驱动安装

1 引言 因为笔记本电脑上运行Milvus图像检索代码,需要安装CUDA驱动。电脑显卡型号是NVIDIA GeForce GTX 1050 Ti Mobile, 操作系统是Ubuntu 20.04,内核版本为Linux 5.15.0-72-generic。 2 CUDA驱动测试 参考网上的资料:https://blog.csdn.…

车载测试ADAS-常用场景仿真软件

ADAS(Advanced Driber Assistant System),高级驾驶辅助系统,先进驾驶辅 助系统,作用于辅助汽车驾驶,通过感知、决策和执行,帮助驾驶员察觉可能发生的危险,是提高安全性的主动安全技术…

数据结构与算法基础(王卓)(36):交换排序之快排【第三阶段:深挖解决问题】精华!精华!精华!!!重要的事情说三遍

目录 Review: 具体问题: 操作核心: 注: 操作分解: 操作实现: 问题(1):进行不一样次数的 if / else 判断 问题(2):通过判断条件…

Element-UI

目录 Layout 布局 按钮组件结合 el-icon 使用 单选框 复选框 日期组件 表格 分页 对话框 表单验证 Element-UI是由饿了么前端团队开发的一套基于Vue.js的桌面端组件库,包含了多个常用的UI组件,如按钮、输入框、表格、弹窗等,可以快速…

5.QT应用程序主窗口

本章代码见文末链接 主窗口框架 新建Qt Wisgets项目mymainwindow,类名默认MainWindow,基类默认QMainWindow 更改文字如图,如果中文无法直接输入,可以试试复制粘贴 “动作编辑器”中(默认在右下角)&…

AI数字人系统搭建源码

AI数字人系统的功能可以根据具体应用场景而定,以下是一些可能的功能: 语音识别和合成:将自然语言转换为机器可读的文本,或将机器生成的文本转换为自然语言的语音输出。 面部表情捕捉:利用摄像头等设备获取用户…

2023鲁大师评测沟通会:鲁大师尊享版登场、“鲁小车”正式上线

作为硬件评测界的“老兵”,鲁大师不仅有着十几年的硬件评测经验,并且一直都在不断地尝试、不断地推陈出新。在5月9日举行的“2023年鲁大师评测沟通会”上,鲁大师向大众展示了在过去一年间取得的成果。 PC业务迭代升级,鲁大师客户端…

day(2,3)-内核模块

内核模块上 主要内容 向内核添加新功能 内核模块基础代码讲解 内核模块多源文件编程 内核模块信息宏 一、向内核添加新功能 1.1 静态加载法: 即新功能源码与内核其它代码一起编译进uImage文件内 Kconfig是make menuconfig的界面配置文件 1.2动态加载法&am…

Yolov8改进---注意力机制:DoubleAttention、SKAttention,SENet进阶版本

目录 🏆🏆🏆🏆🏆🏆Yolov8魔术师🏆🏆🏆🏆🏆🏆 1. DoubleAttention 2. SKAttention 3.总结

2022-4-4基于单片机的MQ2烟雾传感器报警系统设计

基于单片机的MQ2烟雾传感器报警系统设计 源代码和仿真图及MQ2相关资料可在文末的链接中下载 该系统实现的功能:检测空气中的烟雾浓度并实现超阈值报警 该系统组成由: 单片机最小系统、ADC0832、MQ2烟雾传感器、LCD1602液晶模块、声光报警模块、按键模…

研究人员发现微软Azure API管理服务存在3个漏洞

微软Azure API管理服务中披露了三个新的安全漏洞,恶意行为者可能会滥用这些漏洞来访问敏感信息或后端服务。 据以色列云安全公司Ermetic称,这包括两个服务器端请求伪造(SSRF)漏洞和API管理开发人员门户中的一个不受限制的文件上传功能实例。 安全研究员…

【腾讯云 Finops Crane 集训营】Crane应用实战

文章目录 前言一、Crane是什么?二、Crane的特点三、Crane使用1、环境准备2、安装Crane3、访问dashboard4、页面展示5、功能应用 四、Crane的优势总结 前言 FinOps(Financial Operations)是一种管理云计算成本的方法,它强调将云计…

使用PyTorch构建神经网络,并使用thop计算参数和FLOPs

文章目录 使用PyTorch构建神经网络,并使用thop计算参数和FLOPsFLOPs和FLOPS区别使用PyTorch搭建神经网络整体代码1. 导入必要的库2. 定义神经网络模型3. 打印网络结构4. 计算网络FLOPs和参数数量5. 结果如下手动计算params手动计算FLOPs注意 使用PyTorch构建神经网络…

车联网强势发展下,有什么隐患?

通过新一代信息通信技术,车联网实现了汽车与云平台,车辆和汽车,道路,汽车和人以及内部的全方位网络链接。车联网使用传感器技术感知车辆的状态信息,并利用无线通信网络和现代智能信息处理技术的帮助实现交通智能化管理…

FPGA入门系列10--按键消抖

文章简介 本系列文章主要针对FPGA初学者编写,包括FPGA的模块书写、基础语法、状态机、RAM、UART、SPI、VGA、以及功能验证等。将每一个知识点作为一个章节进行讲解,旨在更快速的提升初学者在FPGA开发方面的能力,每一个章节中都有针对性的代码…

Redis高可用系列——Set类型底层详解

文章目录 概述intsetintset 和 hashtable 的转换为什么加入了listpackhashtable 的空间开销高hashtable 的碰撞概率高intset 、listpack和hashtable的转换 概述 在讲解set结构之前,需要先说明一下set结构编码的更替,如下 在Redis7.2之前,se…