论文信息

论文标题: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}$:

    $\mathcal{L}_{\exp }\left(\mathbf{z}_{1}, \mathbf{z}_{2}\right)=-d\left(\mathbf{z}_{1}, \mathbf{z}_{2}\right) \quad\quad\quad(6)$

  其中 $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》的更多相关文章

  1. Domain adaptation:连接机器学习(Machine Learning)与迁移学习(Transfer Learning)

    domain adaptation(域适配)是一个连接机器学习(machine learning)与迁移学习(transfer learning)的新领域.这一问题的提出在于从原始问题(对应一个 so ...

  2. 【迁移学习】2010-A Survey on Transfer Learning

    资源:http://www.cse.ust.hk/TL/ 简介: 一个例子: 关于照片的情感分析. 源:比如你之前已经搜集了大量N种类型物品的图片进行了大量的人工标记(label),耗费了巨大的人力物 ...

  3. 迁移学习(Transformer),面试看这些就够了!(附代码)

    1. 什么是迁移学习 迁移学习(Transformer Learning)是一种机器学习方法,就是把为任务 A 开发的模型作为初始点,重新使用在为任务 B 开发模型的过程中.迁移学习是通过从已学习的相 ...

  4. 【转载】 迁移学习简介(tranfer learning)

    原文地址: https://blog.csdn.net/qq_33414271/article/details/78756366 土豆洋芋山药蛋 --------------------------- ...

  5. 中文NER的那些事儿2. 多任务,对抗迁移学习详解&代码实现

    第一章我们简单了解了NER任务和基线模型Bert-Bilstm-CRF基线模型详解&代码实现,这一章按解决问题的方法来划分,我们聊聊多任务学习,和对抗迁移学习是如何优化实体识别中边界模糊,垂直 ...

  6. 迁移学习(Transfer Learning)(转载)

    原文地址:http://blog.csdn.net/miscclp/article/details/6339456 在传统的机器学习的框架下,学习的任务就是在给定充分训练数据的基础上来学习一个分类模型 ...

  7. 迁移学习-Transfer Learning

    迁移学习两种类型: ConvNet as fixed feature extractor:利用在大数据集(如ImageNet)上预训练过的ConvNet(如AlexNet,VGGNet),移除最后几层 ...

  8. 【深度学习系列】迁移学习Transfer Learning

    在前面的文章中,我们通常是拿到一个任务,譬如图像分类.识别等,搜集好数据后就开始直接用模型进行训练,但是现实情况中,由于设备的局限性.时间的紧迫性等导致我们无法从头开始训练,迭代一两百万次来收敛模型, ...

  9. 用tensorflow迁移学习猫狗分类

    笔者这几天在跟着莫烦学习TensorFlow,正好到迁移学习(至于什么是迁移学习,看这篇),莫烦老师做的是预测猫和老虎尺寸大小的学习.作为一个有为的学生,笔者当然不能再预测猫啊狗啊的大小啦,正好之前正 ...

  10. 迁移学习(Transfer Learning)

    原文地址:http://blog.csdn.net/miscclp/article/details/6339456 在传统的机器学习的框架下,学习的任务就是在给定充分训练数据的基础上来学习一个分类模型 ...

随机推荐

  1. C# String.IsNullOrEmpty()方法的使用

    IsNullOrEmpty(string)是String类的一个有参的方法,方法需要类的调用,所以String.IsNullOrEmpty(string) IsNullOrEmpty是判断字符串的Nu ...

  2. Debian 参考手册之第6章Debian档案库

    来源:https://www.debian.org/doc/manuals/debian-faq/ftparchives#oldcodenames 第 6 章 Debian 档案库 目录 6.1. 有 ...

  3. Java多线程-ThreadPool线程池-2(四)

    线程池是个神器,用得好会非常地方便.本来觉得线程池的构造器有些复杂,即使讲清楚了对今后的用处可能也不太大,因为有一些Java定义好的线程池可以直接使用.但是(凡事总有个但是),还是觉得讲一讲可能跟有助 ...

  4. @Retryable注解的使用

    @Retryable 前言 在实际工作中,重处理是一个非常常见的场景,比如: 发送消息失败. 调用远程服务失败. 争抢锁失败. 这些错误可能是因为网络波动造成的,等待过后重处理就能成功.通常来说,会用 ...

  5. mindxdl--common--k8s_utils.go

    // Copyright (c) 2021. Huawei Technologies Co., Ltd. All rights reserved.// Package common define co ...

  6. c#对接每人计平台获取数据

    使用c#对接到晓舟科技的客流统计设备.那么需要先注册一个平台的账号 地址:http://mrd.meirenji.cn/login;JSESSIONID=323cbd18-29ed-4232-8c04 ...

  7. X活手环的表盘自定义修改

    文章用到的所有工具及软件成品 前言 前几天我在某宝买了一个智能手环,无奈软件中的表盘太少,所有我想着修改一下app中的资源文件. 反编译APK 这里反编译APK用apktool工具就可以. apkto ...

  8. 【大数据面试】【框架】Shuffle优化、内存参数配置、Yarn工作机制、调度器使用

    三.MapReduce 1.Shuffle及其优化☆ Shuffle是Map方法之后,Reduce方法之前,混洗的过程 Map-->getPartition(标记数据的分区)-->对应的环 ...

  9. 5V升压12.6V

    产品概述 PW4053 是一款 5V 输入,最大 1.2A 充电电流,支持三节锂离子电池的升压充电管理 IC.PW4053 集成功率 MOS,采用异步开关架构,使其在应用时仅需极少的外围器件,可有效减 ...

  10. 动手实验查看MySQL索引的B+树的高度

    一:文中几个概念 h:统称索引的高度: h1:主键索引的高度: h2:辅助索引的高度: k:非叶子节点扇区个数. 二:索引结构 叶子节点其实是双向链表,而叶子节点内的行数据是单向链表,该图未体现. 磁 ...