域适应(DA)---域泛化(DG)
域泛化数据
分类
PACS数据集
PACS\VLCS\office-home 提取码:tmid
ImageNet-C 衡量分类器对损坏的鲁棒性,包含15种corruption,可分为noise(+3)、blur(+4)、weather(+3)和digital(+5)。
ImageNet-P 衡量对干扰的鲁棒性。
分割
GTA5
SYNTHIA
BDD100k(Berkeley Deep Drive Segmentation)
论文
1、IBN-Net(Two at Once: Enhancing Learning and Generalization Capacities via IBN-Net)
1、BN提高特征对图像内容的敏感度,降低对风格类变化的鲁棒性
2、IN提高对风格类变化的鲁棒性
对此论文中提出的两个准则
1、IN只添加到浅层网络,不添加到深层网络。
因为IN提取的特征降低了样本间差异,不能放在深层影响分类效果
2、浅层BN层也要保留,保证内容相关信息可以顺利被传入深层
2、Switchable Whitening自适配白化(Switchable Whitening for Deep Representation Learning)
为了更合理地引入外观不变性以及提升模型对不同任务的适应性,基于以下因素对IBN-Net进行了拓展:
3、Prototypical Contrast Adaptation for Domain Adaptive Semantic Segmentation
模型泛化
(1)数据端
数据增强
(2)模型端
模型复杂度、模型结构、正则化、dropout、distilling
(3)训练过程
weight initialization、early stop、cross validation、optimizer selection、loss function
(4)后处理
集成学习
定义
对于泛化任务上有许多不同的研究子领域,根据训练和测试集的数据的不同,以及对测试集可见性的不同,可以分成不同的子任务(多任务学习、迁移学习、域适应、元学习、终生学习、零样本学习、域泛化),具体总结如下:
在机器学习中训练的数据和测试数据的分布应该尽可能一致,这样才符合要求。但是实际应用中不可避免遇到训练数据无法将所有情况下(色调变化,明暗变化 )的数据都收集到,所以如何提升模型对图像外观变化的适应性、如何提高模型在不同域之间的泛化能力也是一个非常值得研究的课题。
卷积神经网络通过激活与标签相关的显性特征来进行图像分类。当训练和测试数据处于类似的分布时,它们的主导功能类似,导致不错的测试性能。尽管如此,在用不同的分布测试时,性能仍然是未满足的,导致跨域图像分类中的挑战。
域适应(DA)侧重于使源域分布适应目标域的分布,但它需要访问目标域中的样本,这限制了它们的适用性。
域泛化(DG)克服了这一限制提高DNN对任意不可见区域的健壮性。通常,大多数DG方法通过学习跨多个源域的共享表示来实现这一点。然而,收集这样的多域数据集成本高、劳动强度大,而且性能很大程度上依赖于源数据集的数量。
最近的一项研究表明,DG问题可以通过利用实例归一化层来解决,而不是依赖于多个源域,从而导致简单且具有成本效益的训练过程。实例归一化只对特征进行标准化,而没有考虑通道之间的相关性。然而,许多研究声称特征协方差包含特定领域的风格,如纹理和颜色,这意味着将实例归一化应用于网络可能不足以用于领域泛化,因为没有考虑特征协方差。白化变换是一种去除特征相关性并使每个特征具有单位方差的技术。已经证明,特征白化有效地消除了图像平移、样式转移和域自适应中所示的特定于域的样式信息,从而可以提高特征表示的泛化能力,但在DG中尚未被充分挖掘。然而,简单地采用白化变换来提高DNN的健壮性并不简单,因为它可能会同时消除域特定的样式和域不变的内容
特征对齐 Feature Alignment
模型一般由特征提取器和分类器两部分组成。特征提取器将输入数据映射到特征空间。我们一般在特征空间中实现分布对齐。DA由于知道部分目标域数据,有两种方式对齐。一种是直接将源域的分布对齐到目标域分布,另一种是寻找一个公共的分布(也称为domain-invariant/agnostic feature),将源域和目标域数据都对齐到这个分布上。DG由于不知道目标域数据,一般是找到公共的分布。
利用距离度量作为Loss训练特征提取器:直接将分布的距离作为Loss训练特征提取器。常用的距离度量公式有MMD,各类散度等。
利用GAN训练特征提取器:将特征提取器作为生成器,外加一个判别器。特征提取器的目标是生成不能被分辨来自哪个domain的特征,判别器的目标是判别特征数据是属于哪个domain。最终生成不能被判别器正确判别的特征,就认为特征提取器提取的特征是domain invariant的。由于GAN使用JS散度来度量分布的距离,可以说GAN也是利用距离度量作为Loss训练特征提取器,只不过网络结构增加了判别器的部分。
域泛化方法 | 通过Domain Alignment实现域泛化
特征解耦Feature Disentanglement
主要的想法是将提取到的特征进行解耦,尽可能的分解成领域相关和领域无关的一些特征。在预测分类时,是仅使用领域无关的特征 ,而在重建数据的情况下,会额外使用到领域相关的一些特征。
域随机化Domain Randomization
在源域上进行训练时,通过一组随机参数在源域上进行各种采样以得到各种各样的数据分布,然后通过在目标域上的测试结果来调整随机参数,进而学习到能够更好的泛化到目标域上的采样策略。
区别于传统的方法,增加了更多的人工设计的一些增强方法 :改变物体的位置以及纹理,改变物体的数量与形状,修改透明度以及相机角度,增加不同的随机噪音等等。
数据增广往往是在目标域数据的基础上进一步扩充数据规模的,而域随机化最大的不同是没有目标域数据。
最大均值差异(MMD,Maximum Mean Discrepancy)
MMD常被用来度量两个分布之间的距离,是迁移学习中常用的损失函数。
简单地理解就是计算两堆数据的均值距离,但是实际比较难计算。就将两个分布映射到另一个空间(再生希尔伯特空间)计算距离。计算距离的方法是,计算分布上每一个点映射到另一空间的距离然后求和。
最大均值差异还可以用来测试两个样本,是否来自两个不同分布p和q,如果均值差异达到最大,就说明采样的样本来自完全不同的分布。
经验风险最小化(ERM, Empirical risk minimization)
拟合参数的一个方法是求解目标函数使训练误差最小,这个过程叫做经验风险最小化。
机器学习的目的就是根据一些训练样本,寻找一个最优的函数,使得函数对输入X的估计Y’与实际输出Y之间的期望风险(可以暂时理解为误差)最小化。期望风险最小化依赖于样本的输入X与其输出Y之间的函数映射关系,而这个映射关系,在机器学习系统中,一般指代先验概率和类条件概率。然而,这两者在实际的应用中,都是无法准确获取的,唯一能够利用的就只有训练样本的输入X及其对应的观测输出Y。而机器学习的目的又必须要求使得期望风险最小化,从而得到需要的目标函数。不难想象,可以利用样本的算术平均值来代替式理想的期望。利用已知的经验数据(训练样本)来计算得到的误差,被称之为经验风险。用对参数求经验风险来逐渐逼近理想的期望风险的最小值,就是我们常说的经验风险最小化(Empirical risk minimization,ERM)原则。
不变风险最小化(IRM,Invariant Risk Minimization)
2019年Martin Arjovsky等人提出的一种用于跨域图像分类的新方法,其提出的背景是当我们使用机器学习方法完成图片分类任务时,训练模型所使用的数据集与真实情况的数据集可能存在差别(数据集分布偏移),造成这种分布偏移的原因有很多,目前大部分解决的方法是减小跨域分布偏差或者提取不变特征。而Martin提出的方法与之前很多跨域分类方法不同之处在于:为了提高机器学习的可解释性,并从根本上解决跨域分类问题,Martin考虑从数学方面推导出特征与标签预测的内在因果关系,即特征与标签之前存在与域无关的内在因果关系。
OoD 数据偏移
现实生活中 OoD (Out of Distribution)数据集广泛存在的 correlation shift 和 diversity shift 数据偏移问题,OoD 泛化算法的目标是提取这些训练的不变性表征,假设这种不变性表征也能在未知的测试环境中保持。
- 多样性偏移diversity shift
标志是仅出现在训练环境,没有出现在测试环境中的特征(或者相反)。例如在 PACS 里,照片中的色彩在速写中完全消失。 - 相关性偏移correlation shift
标志是同时出现在训练和测试环境中的特征,但这些特征在不同环境下所体现的统计信息是不同的。例如在 Colored MNIST 上,颜色和数字的关联在两个环境之间就是不一样的。
域适应
DA解决的是源域和目标域存在分布差异的问题
(1)特征空间不同,标签空间相同——同构DA
(2)特征空间不同,标签空间也不同——异构DA
域泛化
DG与DA的最大区别是:DA在训练时可以拿到少量目标域数据,这些目标域数据可能是有标签的(有监督DA),也可能是无标签的(无监督DA),但是DG在训练时看不到目标域数据。
现在对DG的研究主要分为单源域DG和多源域DG,一般定义多源域DG每个源域内部的数据是同分布的。现有的很多DG方法都是仅利用源域的特征信息进行模型学习。
(1)增强模型的泛化能力一个最常用的方式就是数据增强,即把训练数据转换为各种各样的形式使得模型在训练阶段就见过各种各样的数据分布,从而提高模型的泛化能力。但是寄希望于数据增强能够使得转换后的训练数据覆盖所有测试数据的分布是不现实的。因此,数据增强的方式来增强模型的泛化能力具有其固有的缺陷。
(2)另一个方向来增强泛化能力的方式是使用Normalization 和 Whitening,该方向的方法利用实例归一化(Instance Normalization, IN)或实例白化(Instance Whitening,IW)对不同样本的特征分布进行标准化。IN分别对单个图像的每个通道的特征进行标准化归一化,以减轻由于样式变化引起的特征不匹配。使用IN只实现了特征分布的中心对齐,但是无法对齐特征的联合分布。由于IW 可以消除各通道特征间的线性相关性,所以使用 IW 后可以形成均匀分布的良好聚类特征。
分布外泛化OODG
OODG与DG研究的是同一个问题
分布外检测OODD
检测测试集中在训练集中没出现的标签的样本 ,OODD根据源域的数量,源域和目标域标签空间的重叠程度分为:Anomaly Detection, Novelty Detection, Open Set Recognition, Out-of-Distribution Detection这几类。
Anomaly Detection(异常检测)包括Novelty Detection(奇异值检测)和Outlier Detection (离群点检测)。
奇异值检测:训练数据不包含异常值,只含有positive(正常)的数据,通过算法学习其pattern。之后用于检测未曾看到过新数据是否属于这个pattern,如果属于,该新数据是positive,否则negative,即奇异值。
离群点检测:训练数据中含有异常值,通过相关算法找到训练数据的中心模式,忽略偏差观测值,从而检测出异常值。
因此OODD和OODG的差别主要有两点:
- OODG研究的是泛化问题,OODD研究的是检测问题
- OODG在特征空间和标签空间都可能存在Domain Shift,OODD一般研究的是标签空间存在差异
Generalized Out-of-Distribution Detection: A Survey
Towards Out-Of-Distribution Generalization: A Survey
开放集域适应
OS主要也是研究分布差异的问题,但它关注的是标签空间分布差异的问题。与它相对的概念是Close Set。Close Set也就是源域和目标域标签空间完全重叠,OS源域的标签空间可能包含于目标域的标签空间,也可能是和目标域的标签空间有部分重叠
域偏移Domain Shift
首先需要知道著名的贝叶斯公式:
p ( x,y ) = p ( x∣y ) p ( y ) = p ( y∣x ) p ( x )
Domain Shift主要有三种情况,分别是由于输入的边缘概率分布p ( x ) 、输出标签的边缘概率分布p ( y ) 、对应的条件概率分布p ( x∣y ) 或者p ( y∣x )后验分布)不一致导致的。
1、Covariate Shift:输入的边缘概率分布不同,其他相同。以领域自适应为例,源域S,目标域T,即ps ( x ) ≠ pt ( x ) ,但是条件概率分布相等,ps ( y∣x ) = pt (y∣x ) ,输出标签的边缘概率分布也相等,ps ( y ) = pt ( y ) 。这个很好理解,就是数据采样方式不同,导致输入数据的分布压根就不一样。
2、Prior Shift(即Label Shift):从名字也可以看出,输出的边缘概率分布(先验分布)不同,即ps ( y ) ≠ p t ( y ) ,对应的条件概率分布相等,即ps ( x∣y ) = pt ( x∣y ) 。这种偏移属于先天类型的偏移,是由于源域数据和目标域数据每个标签的数据出现的频率不一样导致的,比如标签为猫的数据在源域中占了80%,而在目标域中只有30%。
3、Concept Shift:两个边缘概率分布都相同,即ps ( x ) = pt ( x ) ,但是后验分布不同,即ps ( y∣x ) ≠ pt ( y∣x ) 。这种比较奇怪,我感觉就是模型的问题。比如面对同样的目标域样本,然后域适应模型分类错误的概率比纯粹在目标域样本上训练的模型高,就是说模型能力不行。还有个例子是:输入数据类型分布相同,但是学习的任务发生了变化;比如在水处理系统的传感器时间序列异常检测中,因为上游放水,一段维持较高水位,但是并不能和其余时间一样被认定为是报警事件。但这种学习任务发生变化的不太可能在训练过程中发生。
域适应(DA)---域泛化(DG)相关推荐
- 2020年,多源域适应(域迁移) MDA最新方法总结综述
推荐小王爱迁移知乎系列 https://zhuanlan.zhihu.com/p/66130006 2020年,多源域适应MDA最新方法总结综述 Multi-source Domain Adaptat ...
- AD环境部署文件服务器2012,Windows_server_2012部署AD域及辅域环境.doc
实用文案 标准文档 部署Windows server 2012 AD 实验环境: 操作系统 角色 IP地址 主机名 Windows server 2012 主域服务器 0 AD01 Windows s ...
- 加入域报错域控无法联系
加入域报错域控无法联系 加入域报错域控无法联系.我在公司部署了一台2003域控,刚开始没有问题,用过一段时间后我发现我的新客户在加入域的时候报错说与我的域控无联系,可以ping通,用nslookup命 ...
- 直接广播地址_计算机网络之网桥、冲突域、广播域是什么?
网桥(Bridge)又称为桥接器.和中继器类似,传统的网桥只有两个端口,用于连接不同的网段.和中继器不同的是,网桥具有一定的"智能"性,可以"学习"网络上主机的 ...
- Asp.NET MVC3添加域(Areas)区分Admin域和用户域
问题 当一个项目中有前台页面和后台页面,即用户页面和管理员页面,.net mvc3 如何控制路由为:Admin/{controller}/{action}/{id}访问的是管理员(Admin)的域,而 ...
- 互联网协议 — Ethernet — 冲突域、广播域
目录 文章目录 目录 冲突域(Collision Domain) 广播域(Broadcast Domain) 冲突域与广播域的区别 冲突域(Collision Domain) 我们把以太网想象为对讲机 ...
- python爬虫跨域_AJAX跨域简单讲解【Python版】
总结自JAVA,这里改成了Python. 什么是AJAX跨域 只要协议.域名.端口有任何一个不同,都被当作是不同的域,不同域之间的请求就是跨域操作.AJAX跨域就是AJAX在A域下对B域发送了请求,一 ...
- iframe嵌套页面 跨域_跨域解决方案
点击上方蓝色"后端开发杂谈"关注我们, 专注于后端日常开发技术分享 上一篇文章跨域资源共享我们讲到了, 在跨域访问的时候出现的问题, 以及基于跨域共享的方案解决跨域的问题, 那么还 ...
- 域渗透基础之环境搭建(单域到组件域林)
转发:https://www.e-learn.cn/content/qita/2484245 之前练习域渗透的环境被我弄丢了 重新搭建一个完整的域环境吧. 域渗透的基础还是环境的搭建,单域到域树再到域 ...
最新文章
- 14.5.3 Locks Set by Different SQL Statements in InnoDB
- POJ1220(高精度进制转换)
- 【sklearn学习】特征选择
- java流程控制及控制键盘输出文字 —(6)
- 演练 类的定义 java 1615134691
- android textview获取背景颜色,android – 从textview获取背景颜色而不使用ColorDrawable(API 11)...
- jQuery文档操作之删除操作
- asterisk积累命令
- element中form表单resetFields()方法重置表单无效
- 两个栈实现队列 以及两个队列实现栈
- GDI+中发生一般性错误 Winform Image.Save(mstream, ImageFormat.Png)引发
- FPGA智能网卡-HairPin功能
- h3c交换机端口加入vlan命令_h3c交换机vlan配置划分命令
- GHOST系统(迅雷下载集合)
- AI 金融行业案例清单
- [AV1] AV1 Reference Software
- 软件工程之他见——鲍周晓
- 字体图标兼容性,兼容IE
- MySQL存储生僻字解决方案
- 基于matlab的电机故障诊断,基于BP神经网络的电机故障诊断的研究(MATLAB,程序)
热门文章
- 红米note1s android5,[FIRE]红米Note 1S MIUI6 5.5.29精简、绝对纯净、
- 详解分布式 ID 生成器
- 2021年上半年软件设计师下午真题及答案解析(三)
- python内置函数返回元素个数_python内置函数列表(list)
- 新车提车需要的注意事项,你了解吗?
- 数字化的终局:赛博朋克?社会主义?
- python编程可以用来干嘛-入门学习python可以用来做什么?
- 男人20不勤,30不立,40则不富……
- idea maven项目无法下载自定义的仓库完美解决办法
- 打印机共享后每天要重新连接