zl程序教程

您现在的位置是:首页 >  IT要闻

当前栏目

迁移学习(DIFEX)《Domain-invariant Feature Exploration for Domain Generalization》【已复现迁移】

2023-03-20 15:27:03 时间

论文信息

论文标题:Domain-invariant Feature Exploration for Domain Generalization
论文作者:Wang Lu, Jindong Wang, Haoliang Li, Yiqiang Chen, Xing Xie
论文来源:TMLR 2022
论文地址:download 
论文代码:download
引用次数:

1 前言

  本文将介绍一种基于域不变特征挖掘的域泛化方法($ ext{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 ight}$ ,其中 $mathcal{S}^{i}=left{left(mathbf{x}_{j}^{i}, y_{j}^{i} ight) ight}_{j=1}^{n_{i}}$ 代表着第 $i$ 个源域,每个域的联合分布不一样 $P_{X Y}^{i} eq   P_{X Y}^{j}, 1 leq i eq j leq M$。域适应的目的是从 $M$ 个训练的源域学习到一个泛化函数 $h: mathcal{X} ightarrow mathcal{Y}$ 应用到一个不可知的目标域 $mathcal{S}_{ ext {test }}$,使得 $min _{h} mathbb{E}_{(mathbf{x}, y) in mathcal{S}_{ ext {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 方法

  整体框架:

  

  如上图所示,$ ext{DIFEX}$ 尝试同时学习域内不变特征和域间不变特征,并尝试将他们集合起来进行分类。注意,为了保持公平性,我们将最后一层特征一分为二,一部分进行域内不变特征学习,一部分进行域间特征学习;同时为了保证特征的多样性,我们提出了一个正则项,来让两种特征的差别尽量大。下面来具体看看两种特征的获取以及多样性的拓展。

5.1 域不变特征

  为了获取域内不变特征,主要采用一个简单的蒸馏框架来学习,注意这里的蒸馏方法虽然在训练时候引入了额外的训练代价,但是在预测时可以减少不必要的FFT计算,确保预测的整个过程可以端到端的直接进行。

  

  如上图所示,我们首先使用一个老师网络来利用傅里叶相值信息来学习分类模型,从而获取有用的与分类有关的傅里叶相值信息,训练之后,我们认为老师模型可以得到与分类有关的傅里叶相值信息,那么在学生模型训练的时候,便可以让它参考老师的这部分特征,进行域内不变特征学习。

    $underset{ heta_{S}^{f}, heta_{S}^{c}}{ ext{min }}      mathbb{E}_{(mathbf{x}, y) sim P operatorname{tr}} ell_{c}left(G_{S}^{c}left(G_{S}^{f}(mathbf{x}) ight), y ight)+lambda_{1} mathcal{L}_{m s e}left(G_{S}^{f}(mathbf{x}), G_{T}^{f}( ilde{mathbf{x}}) ight) quadquadquad(4)$

补充:

  对单通道二维数据 $x$ 的傅里叶变换 $mathcal{F}(mathbf{x})$ 表示为:

    $mathcal{F}(mathbf{x})(u, v)=sumlimits _{h=1}^{H-1} sumlimits_{w=0}^{W-1} mathbf{x}(h, w) e^{-j 2 pileft(frac{h}{H} u+frac{w}{W} v ight)}quadquadquad(1)$

  其中 $u$ 和 $v$ 是指数。$H$ 和 $W$ 分别是高度和宽度。傅里叶变换可以用 FFT 算法有效地计算出来。相位分量随后表示为:

    $mathcal{P}(x)(u, v)=arctan left[frac{I(x)(u, v)}{R(x)(u, v)} ight]quadquadquad(2)$

  其中,$R(x)$ 和 $I(x)$ 分别表示 $mathcal{F}(mathbf{x})$ 的实部和虚部。对于具有多个通道的数据,分别计算每个通道的傅里叶变换,得到相应的相位信息。我们将 $x$ 的傅里叶相位表示为 $ ilde{mathbf{x}}$,然后,使用 $( ilde{mathbf{x}}, y)$ 训练教师网络:

    $underset{ heta_{T}^{f}, heta_{T}^{c}}{ ext{min}}  quad mathbb{E}_{(mathbf{x}, y) sim P^{t r}} mathcal{L}_{c l s}left(G_{T}^{c}left(G_{T}^{f}( ilde{mathbf{x}}) ight), y ight)quadquadquad(3)$

  一旦获得了教师网络 $G_{T}$,我们就使用特征知识蒸馏来指导学生网络学习傅里叶信息。这种蒸馏方法的配方如下: 

    $underset{ heta_{S}^{f}, heta_{S}^{c}}{ ext{min }}      mathbb{E}_{(mathbf{x}, y) sim P operatorname{tr}} ell_{c}left(G_{S}^{c}left(G_{S}^{f}(mathbf{x}) ight), y ight)+lambda_{1} mathcal{L}_{m s e}left(G_{S}^{f}(mathbf{x}), G_{T}^{f}( ilde{mathbf{x}}) ight) quadquadquad(4)$

  其中,$ heta_{S}^{f}$ 和 $ heta_{S}^{c}$ 是学生网络的特征提取器 $G_{S}^{f}$ 和分类层 $G_{S}^{c}$ 的可学习参数。$lambda_{1}$ 是一个权衡超参数,$mathcal{L}_{m s e}$ 是 $ ext{MSE}$ 损失,它可以使学生网络的特征接近教师网络的特征。

5.2 互不变特征

  如前所述,仅凭傅里叶相位特征并不足以获得足够的鉴别特征来进行分类。因此,我们通过利用多个训练领域中包含的跨领域知识来探索互不变的特征。具体来说,给定两个域 $mathcal{S}^{i}$,$mathcal{S}^{i}$,我们使用相关性对齐方法对它们的二阶统计量(相关性)进行对齐:

    $mathcal{L}_{ ext {align }}=frac{2}{N imes(N-1)} sumlimits_{i eq j}^{N}left|mathbf{C}^{i}-mathbf{C}^{j} ight|_{F}^{2}quadquadquad(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} ight)^{T}left(mathbf{1}^{T} mathbf{X}^{i} ight) ight)$ 是协方差矩阵,$|cdot|_{F}$ 代表着 $F$ 范数。

  由于域内不变特征和域间不变特征之间可能存在重复和冗余,我们期望两部分可以尽可能多地提取出不同的不变特征。这使得特征有更多的多样性,有利于泛化。为了实现这个目标,我们通过最大化内部不变($z_1$)和互不变( $z_1$)特征之间的距离,我们称之为  $ ext{exploration loss}$:

    $mathcal{L}_{exp }left(mathbf{z}_{1}, mathbf{z}_{2} ight)=-dleft(mathbf{z}_{1}, mathbf{z}_{2} ight) quadquadquad(6)$

  其中 $d(cdot, cdot)$ 是一个距离函数,为了简单,我们简单地使用 $L2$ 距离: $ mathcal{L}_{e x p}=-left|mathbf{z}_{1}-mathbf{z}_{2} ight|_{2}^{2} $。

6 DIFEX 总结 

  综上所述,我们的方法被分为两个步骤。首先,我们优化了 $ ext{Eq.1}$。其次,优化了以下目标:

    $underset{ heta_{f}, heta_{c}}{ ext{min}} ;mathbb{E}_{(mathbf{x}, y) sim P^{t r}} mathcal{L}_{c l s}left(G_{c}left(G_{f}(mathbf{x}) ight), y ight)+lambda_{1} mathcal{L}_{m s e}left(mathbf{z}_{1}, G_{T}^{f}( ilde{mathbf{x}}) ight)+lambda_{2} mathcal{L}_{ ext {align }}+lambda_{3} mathcal{L}_{ ext {exp }}left(mathbf{z}_{1}, mathbf{z}_{2} ight)$