迁移学习(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 在传统的机器学习的框架下,学习的任务就是在给定充分训练数据的基础上来学习一个分类模型 ...
随机推荐
- .Net core--创建一个单元测试xUnit
创建一个xUnit项目 webApi.test 创建之后会有一个默认的[Fact] (测试的标准格式) [Fact] public void TestEqual() { int a = 10, b ...
- Web自动化---解决登录页面随机验证码问题
一.抛出问题 在日常的测试工作中,遇到了这样一个登录页面,如下图: 像我们之前做过UI自动化的同学就知道,自动输入账号和密码,这个简单,但是怎么样来识别验证码呢?验证码的形式有多种,有纯数字的,纯字母 ...
- JS 可编辑表格的实现
1.实现效果 用户点击语文,数学,英语部分的单元格,可以实现分数的编辑,总分也会随之变化.先看下效果,如图: 2.设计思路 先通过HTML5+CSS3绘制表格,添加input的样式和err提示动画. ...
- 【笔记】入门DP(Ⅱ)
0X00 P1433 吃奶酪 状压 \(DP\),把经过的点压缩成01串.若第 \(i\) 位为 \(0\) 表示未到达,为 \(1\) 则表示已到达. 用 \(f[i][j]\) 表示以 \(i\) ...
- C++ using 编译指令与名称冲突
using 编译指令:它由名称空间名和它前面的关键字 using namespace 组成,它使名称空间中的所有名称都可用,而不需要使用作用域解析运算符.在全局声明区域中使用 using 编译指令,将 ...
- Armv8之Execution State 和 Exception Level(一)
@ 目录 1. 典型的Exception Level使用模型 2.异常相关术语 3. Execution State 3.1 两种Execution State 3.2 决定Execution Sta ...
- win 10玩魔兽争霸/黑边,不能全屏,闪退
1.win键+s键搜索注册表 打开 找到路径 计算机\HKEY_CURRENT_USER\SOFTWARE\Blizzard Entertainment\Warcraft III\Video 这里有两 ...
- npm 依赖下载报错:主机名/IP与证书的altname不匹配
npm 依赖下载报错:主机名/IP与证书的altname不匹配: //取消ssl验证 npm set strict-ssl false npm config set registry http://r ...
- 关于python3调用matplotlib中文乱码问题
问题描述 我用来绘制柱形图,横坐标上面的数据, 但是网上大部分说的都是更改横纵坐标标签的乱码问题,而不是横坐标数据乱码问题 解决办法 更改横纵坐标上标签的中文不乱码 import matplotlib ...
- flutter系列之:flutter中的变形金刚Transform
目录 简介 Transform简介 Transform的使用 总结 简介 虽然我们在开发APP的过程中是以功能为主,但是有时候为了美观或者其他的特殊的需求,需要对组件进行一些变换.在Flutter中这 ...