迁移学习(DIFEX)《Domain-invariant Feature Exploration for Domain Generalization》
论文信息
论文标题:Domain-invariant Feature Exploration for Domain Generalization
论文作者:Wang Lu, Jindong Wang, Haoliang Li, Yiqiang Chen, Xing Xie
论文来源:TMLR 2022
论文地址:download
论文代码:download
引用次数:
1 前言
本文将介绍一种基于域不变特征挖掘的域泛化方法($\text{DIFEX}$)。近年来,领域泛化(Domain Generalization, DG) 受到了越来越多的关注,现有的 DG 方法可以粗略地分为三类:数据操作、表示学习、学习策略。本文聚焦于域泛化表示学习,针对现有表示学习中获取的不变特征不够充分的问题,尝试思考:什么是域不变特征?如何进一步改进DG的效果?首次将域不变特征分成域内不变特征(internally-invariant)和域间不变特征(mutually-invariant)两种类型,更多样、更充分地挖掘域不变特征。
2 介绍
数据操作:对数据输入输出进行操作,比如数据增量、数据生成;
表示学习:学习域不变特征或者对特征进行解耦,获取更有意义的泛化特征;
学习策略:设计一些特定的策略增强模型泛化能力,比如集成或元学习;
本文主要聚焦于表示学习,进行模型泛化能力的增强。已有的关于域不变特征学习方法的探索促使我们尝试思考这类方法的合理性:什么是域不变特征?如何获取域不变特征并更好获得泛化效果?现有一些工作表明,在域自适应领域,简单的域间特征对齐获取的特征是远远不够的,需要关注更多其它的方面。最近,在域泛化领域也出现了类似的结论,简单的对齐可能损害模型的分辨能力以及特征的多样性和充分性。针对这个问题,我们对于不变特征进行了深入的思考。
本文认为不变特征应该从域内和域间两个角度进行学习:
- 域内不变特征(internally-invariant features),与分类有关的特征,产生于域的内部,不受其他域的影响,主要抓取数据的内在语义信息;
- 域间不变特征(mutually-invariant features),跨域迁移知识,通过多个域产生,共同学习的一些知识;
本文认为,把这两种特征有效充分地结合起来,可以得到泛化性更好的模型。注意我们的方法类似特征解耦,但是其实稍有区别,特征解耦通常将特征分为域专有特征和域共有特征,这里的域内不变特征和域专有特征有稍许区别,更关注于对分类有用的特征,可以理解为针对分类不变的特征,而后者强调与域关联的特征。广泛的实验表明,我们的方法能获取更多样、更充分的特征,从而构建泛化能力更强的机器学习模型。
3 问题定义
多源域数据集 $\mathcal{S}=\left\{\mathcal{S}^{i} \mid i=1, \cdots, M\right\}$ ,其中 $\mathcal{S}^{i}=\left\{\left(\mathbf{x}_{j}^{i}, y_{j}^{i}\right)\right\}_{j=1}^{n_{i}}$ 代表着第 $i$ 个源域,每个域的联合分布不一样 $P_{X Y}^{i} \neq P_{X Y}^{j}, 1 \leq i \neq j \leq M$。域适应的目的是从 $M$ 个训练的源域学习到一个泛化函数 $h: \mathcal{X} \rightarrow \mathcal{Y}$ 应用到一个不可知的目标域 $\mathcal{S}_{\text {test }}$,使得 $\min _{h} \mathbb{E}_{(\mathbf{x}, y) \in \mathcal{S}_{\text {test }}}[\ell(h(\mathbf{x}), y)]$ 。所有域,包括源域和目标域,都具有相同的输入空间 $\mathcal{X}^{1}=\cdots=\mathcal{X}^{M}=\mathcal{X}^{T} \in \mathbb{R}^{m}$ 和输出空间 $\mathcal{Y}^{1}=\cdots=\mathcal{Y}^{M}=\mathcal{Y}^{T}=\{1,2, \cdots, C\}$。
4 动机
已有的工作表明傅里叶相值(Phase)中包含更多的语义信息,不太容易受到域偏移的影响,而傅里叶幅值(Amplitude)信息主要包含低层次的统计信息,受域偏移影响较大。从下面的图中,可以看出,对于行走采集到的原始数据来说,傅里叶的相值信息的确更能代表类别,仅由相值恢复的数据的确包含更多的语义信息,比如周期性以及起伏。因此,我们把傅里叶相值作为域内不变特征。

5 方法
整体框架:

如上图所示,$\text{DIFEX}$ 尝试同时学习域内不变特征和域间不变特征,并尝试将他们集合起来进行分类。注意,为了保持公平性,我们将最后一层特征一分为二,一部分进行域内不变特征学习,一部分进行域间特征学习;同时为了保证特征的多样性,我们提出了一个正则项,来让两种特征的差别尽量大。下面来具体看看两种特征的获取以及多样性的拓展。
5.1 域不变特征
为了获取域内不变特征,主要采用一个简单的蒸馏框架来学习,注意这里的蒸馏方法虽然在训练时候引入了额外的训练代价,但是在预测时可以减少不必要的FFT计算,确保预测的整个过程可以端到端的直接进行。

如上图所示,我们首先使用一个老师网络来利用傅里叶相值信息来学习分类模型,从而获取有用的与分类有关的傅里叶相值信息,训练之后,我们认为老师模型可以得到与分类有关的傅里叶相值信息,那么在学生模型训练的时候,便可以让它参考老师的这部分特征,进行域内不变特征学习。
$\underset{\theta_{S}^{f}, \theta_{S}^{c}}{\text{min }} \mathbb{E}_{(\mathbf{x}, y) \sim P \operatorname{tr}} \ell_{c}\left(G_{S}^{c}\left(G_{S}^{f}(\mathbf{x})\right), y\right)+\lambda_{1} \mathcal{L}_{m s e}\left(G_{S}^{f}(\mathbf{x}), G_{T}^{f}(\tilde{\mathbf{x}})\right) \quad\quad\quad(4)$
补充:
对单通道二维数据 $x$ 的傅里叶变换 $\mathcal{F}(\mathbf{x})$ 表示为:
$\mathcal{F}(\mathbf{x})(u, v)=\sum\limits _{h=1}^{H-1} \sum\limits_{w=0}^{W-1} \mathbf{x}(h, w) e^{-j 2 \pi\left(\frac{h}{H} u+\frac{w}{W} v\right)}\quad\quad\quad(1)$
其中 $u$ 和 $v$ 是指数。$H$ 和 $W$ 分别是高度和宽度。傅里叶变换可以用 FFT 算法有效地计算出来。相位分量随后表示为:
$\mathcal{P}(x)(u, v)=\arctan \left[\frac{I(x)(u, v)}{R(x)(u, v)}\right]\quad\quad\quad(2)$
其中,$R(x)$ 和 $I(x)$ 分别表示 $\mathcal{F}(\mathbf{x})$ 的实部和虚部。对于具有多个通道的数据,分别计算每个通道的傅里叶变换,得到相应的相位信息。我们将 $x$ 的傅里叶相位表示为 $\tilde{\mathbf{x}}$,然后,使用 $(\tilde{\mathbf{x}}, y)$ 训练教师网络:
$\underset{\theta_{T}^{f}, \theta_{T}^{c}}{\text{min}} \quad \mathbb{E}_{(\mathbf{x}, y) \sim P^{t r}} \mathcal{L}_{c l s}\left(G_{T}^{c}\left(G_{T}^{f}(\tilde{\mathbf{x}})\right), y\right)\quad\quad\quad(3)$
一旦获得了教师网络 $G_{T}$,我们就使用特征知识蒸馏来指导学生网络学习傅里叶信息。这种蒸馏方法的配方如下:
$\underset{\theta_{S}^{f}, \theta_{S}^{c}}{\text{min }} \mathbb{E}_{(\mathbf{x}, y) \sim P \operatorname{tr}} \ell_{c}\left(G_{S}^{c}\left(G_{S}^{f}(\mathbf{x})\right), y\right)+\lambda_{1} \mathcal{L}_{m s e}\left(G_{S}^{f}(\mathbf{x}), G_{T}^{f}(\tilde{\mathbf{x}})\right) \quad\quad\quad(4)$
其中,$\theta_{S}^{f}$ 和 $\theta_{S}^{c}$ 是学生网络的特征提取器 $G_{S}^{f}$ 和分类层 $G_{S}^{c}$ 的可学习参数。$\lambda_{1}$ 是一个权衡超参数,$\mathcal{L}_{m s e}$ 是 $\text{MSE}$ 损失,它可以使学生网络的特征接近教师网络的特征。
5.2 互不变特征
如前所述,仅凭傅里叶相位特征并不足以获得足够的鉴别特征来进行分类。因此,我们通过利用多个训练领域中包含的跨领域知识来探索互不变的特征。具体来说,给定两个域 $\mathcal{S}^{i}$,$\mathcal{S}^{i}$,我们使用相关性对齐方法对它们的二阶统计量(相关性)进行对齐:
$\mathcal{L}_{\text {align }}=\frac{2}{N \times(N-1)} \sum\limits_{i \neq j}^{N}\left\|\mathbf{C}^{i}-\mathbf{C}^{j}\right\|_{F}^{2}\quad\quad\quad(5)$
其中,$\mathbf{C}^{i}=\frac{1}{n_{i}-1}\left(\mathbf{X}^{i} \mathbf{X}^{i}-\frac{1}{n_{i}}\left(\mathbf{1}^{T} \mathbf{X}^{i}\right)^{T}\left(\mathbf{1}^{T} \mathbf{X}^{i}\right)\right)$ 是协方差矩阵,$\|\cdot\|_{F}$ 代表着 $F$ 范数。
由于域内不变特征和域间不变特征之间可能存在重复和冗余,我们期望两部分可以尽可能多地提取出不同的不变特征。这使得特征有更多的多样性,有利于泛化。为了实现这个目标,我们通过最大化内部不变($z_1$)和互不变( $z_1$)特征之间的距离,我们称之为 $\text{exploration loss}$:
其中 $d(\cdot, \cdot)$ 是一个距离函数,为了简单,我们简单地使用 $L2$ 距离: $ \mathcal{L}_{e x p}=-\left\|\mathbf{z}_{1}-\mathbf{z}_{2}\right\|_{2}^{2} $。
6 DIFEX 总结
综上所述,我们的方法被分为两个步骤。首先,我们优化了 $\text{Eq.1}$。其次,优化了以下目标:
$\underset{\theta_{f}, \theta_{c}}{\text{min}} \;\mathbb{E}_{(\mathbf{x}, y) \sim P^{t r}} \mathcal{L}_{c l s}\left(G_{c}\left(G_{f}(\mathbf{x})\right), y\right)+\lambda_{1} \mathcal{L}_{m s e}\left(\mathbf{z}_{1}, G_{T}^{f}(\tilde{\mathbf{x}})\right)+\lambda_{2} \mathcal{L}_{\text {align }}+\lambda_{3} \mathcal{L}_{\text {exp }}\left(\mathbf{z}_{1}, \mathbf{z}_{2}\right)$
迁移学习(DIFEX)《Domain-invariant Feature Exploration for Domain Generalization》的更多相关文章
- Domain adaptation:连接机器学习(Machine Learning)与迁移学习(Transfer Learning)
domain adaptation(域适配)是一个连接机器学习(machine learning)与迁移学习(transfer learning)的新领域.这一问题的提出在于从原始问题(对应一个 so ...
- 【迁移学习】2010-A Survey on Transfer Learning
资源:http://www.cse.ust.hk/TL/ 简介: 一个例子: 关于照片的情感分析. 源:比如你之前已经搜集了大量N种类型物品的图片进行了大量的人工标记(label),耗费了巨大的人力物 ...
- 迁移学习(Transformer),面试看这些就够了!(附代码)
1. 什么是迁移学习 迁移学习(Transformer Learning)是一种机器学习方法,就是把为任务 A 开发的模型作为初始点,重新使用在为任务 B 开发模型的过程中.迁移学习是通过从已学习的相 ...
- 【转载】 迁移学习简介(tranfer learning)
原文地址: https://blog.csdn.net/qq_33414271/article/details/78756366 土豆洋芋山药蛋 --------------------------- ...
- 中文NER的那些事儿2. 多任务,对抗迁移学习详解&代码实现
第一章我们简单了解了NER任务和基线模型Bert-Bilstm-CRF基线模型详解&代码实现,这一章按解决问题的方法来划分,我们聊聊多任务学习,和对抗迁移学习是如何优化实体识别中边界模糊,垂直 ...
- 迁移学习(Transfer Learning)(转载)
原文地址:http://blog.csdn.net/miscclp/article/details/6339456 在传统的机器学习的框架下,学习的任务就是在给定充分训练数据的基础上来学习一个分类模型 ...
- 迁移学习-Transfer Learning
迁移学习两种类型: ConvNet as fixed feature extractor:利用在大数据集(如ImageNet)上预训练过的ConvNet(如AlexNet,VGGNet),移除最后几层 ...
- 【深度学习系列】迁移学习Transfer Learning
在前面的文章中,我们通常是拿到一个任务,譬如图像分类.识别等,搜集好数据后就开始直接用模型进行训练,但是现实情况中,由于设备的局限性.时间的紧迫性等导致我们无法从头开始训练,迭代一两百万次来收敛模型, ...
- 用tensorflow迁移学习猫狗分类
笔者这几天在跟着莫烦学习TensorFlow,正好到迁移学习(至于什么是迁移学习,看这篇),莫烦老师做的是预测猫和老虎尺寸大小的学习.作为一个有为的学生,笔者当然不能再预测猫啊狗啊的大小啦,正好之前正 ...
- 迁移学习(Transfer Learning)
原文地址:http://blog.csdn.net/miscclp/article/details/6339456 在传统的机器学习的框架下,学习的任务就是在给定充分训练数据的基础上来学习一个分类模型 ...
随机推荐
- 题解UVA10948 The primary problem
前言 前置 \(\sf{Solution}\) 既然有了 \(n\) ,那找出 \(a\) 和 \(b\) 就只要枚举 \(a\) 的范围 \(1\sim n\),判断 \(a\) 和 \(n-a\) ...
- Day03.2:Java的基础语法
Java基础语法 注释 (注释不会被运行,仅仅作为解释或笔记提供给作者帮助回忆) 单行注释格式:// 多行注释格式: /**/ 文档注释格式:/** */ 示例图 标识符 概念:所有的组成部分都需要名 ...
- Https Webservice接口的免证书调用
目录 前言 思路 方案 Axis调用 HttpClient调用 参考链接 前言 在调用https协议的Webservice接口时,如果没有做证书验证,一般会报javax.net.ssl.SSLHand ...
- clickhouse在风控-风险洞察领域的探索与实践
一.风险洞察平台介绍 以Clickhouse+Flink实时计算+智能算法为核心架构搭建的风险洞察平台, 建立了全面的.多层次的.立体的风险业务监控体系,已支撑欺诈风险.信用风险.企业风险.小微风险. ...
- 2022春每日一题:Day 21
题目:[SCOI2007]降雨量 这题比较坑,分几种情况,但是可以总起来说,分开写,两个月份都没出现,maybe,否则如果两个月份都大于[l+1,r-1]的最大值,如果两个月份差值=r-l输出,tru ...
- 2022春每日一题:Day 18
题目:[JSOI2007]字符加密 很常见的做法,破环为链,然后以2n为总长再后缀排序,然后对于SA[i] < n 的,说明第i小后缀的编号是小于n的,也就是说,以i开头的编号是合法的,那么输出 ...
- linux下进程的实际用户ID(有效组)和有效用户ID(有效组ID)
实际用户ID(实际组ID):标识当前用户(所属组)是谁,当用户登陆时取自口令文件. 有效用户ID(有效组ID):用来决定我们(当前进程)对文件的访问权(即实际该进程的是以那个用户运行的). 一般情况下 ...
- JavaSE -进阶基础---反射技术
反射常见用法: Java 反射机制是在运行状态中,对于任意一个类,都能够获得这个类的所有属性和方法,对于任意一个对象都能够调用它的任意一个属性和方法.这种在运行时动态的获取信息以及动态调用对象的方法的 ...
- DHorse的链路追踪
目前,DHorse的链路追踪功能是通过SkyWalking来实现.实现原理是DHorse在部署应用时,通过指定SkyWalking的Agent来收集服务的调用链路信息.下面就来具体看一下DHorse如 ...
- 防御式编程之断言assert的使用
防御式编程的重点就是需要防御一些程序未曾预料的错误,这是一种提高软件质量的辅助性方法,断言assert就用于防御式编程,编写代码时,我们总是会做出一些假设,断言就是用于在代码中捕捉这些假设.使用断言是 ...