论文 | ACM MM 2021: Meta-FDMixup: Cross-Domain Few-Shot Learning Guided by Labeled Target Data

一 写在前面

未经允许,不得转载,谢谢~~

这篇文章是我们团队发在ACM Multimedia2021上的工作,主要是做cross-domain few-shot learning,文章主要提出使用极少一部分target带标注数据来帮助模型的学习。

目前所有需要用到的splits, codes,models都已开源,欢迎大家多多关注!:(点颗star嘻嘻

二 主要内容

2.1 background

首先介绍一个Cross-domain Few-shot Learning (CD-FSL)这个任务,关于Few-shot Learning (FSL),Domain Adaptation(DA),CD-FSL的直观理解图如下所示:


FSL: 经典的小样本学习从源域迁移知识到目标域:1)源域和目标域处于同一个domain(分布基本一致); 2)源域和目标域的类别集合的交集为空; 3)目标域每个类别的可用样本量极少;

DA: 领域自适应也是从源域迁移知识到目标域:1)源域和目标域之间存在domain gap;2)源域和目标域的类别集合相同;3)目标域每个类别的可用样本量是足够的;

CD-FSL: 在FSL的基础上集合了DA的特点:1)源域和目标域之间存在domain gap; 2)源域和目标域的类别集合的交集为空; 3)目标域每个类别的可用样本量极少;

可以看到CD-FSL任务是非常challenging的。

2.2 related work

从setting上来看,根据模型训练阶段是否可以获取到target数据,我们基本可以将方法分为:
1)只有source data用于训练; 以Feature-wise Transformation (FWT)为代表
2)source data + 大量unlabeled target data; 工作Self-training for Few-shot Transfer Across Extreme Task Differences中提出;

这里的第一种setting自然是最接近真实场景但同样也对算法最具挑战的任务,在这样1)可用样本少;2)存在domain gap的情况下,我们认为没有任何来自target的信息,仅仅通过源域数据来提升模型的生成泛化能力确实能带给模型的性能提升是非常有限的。

这里的第二种setting但某些现实情况下是比较合理的,例如从miniImageNet迁移到医疗图像,这种情况下无标注target数据是比较容易获取的。但是当我们的target数据是fine-grained鸟类或者植物,这个setting就不那么容易实现。

2.3 setting motivation

相比之前的两种setting,我们提出了一种更加现实可操作的场景: 不管target data是鸟类,植物,还是医疗,获取极少数量的属于target domain标注数据其实并不是一件难事(现有benchamark本身有可以使用的这部分数据,即使没有,人工标注产生极少一部分这样的标注数据代价也不高)。

因此,我们首先提出learning CD-FSL with extremely few labeled target data。 为了便于区分,我们将这部分数据成为auxiliary data

三 learn CD-FSL with extremely few labeled target data

接下来我们介绍我们具体的setting,以及具体如何获取到这部分auxiliary data

setting

在FWT提出的benchmark中,我们从source datatset迁移知识到target dataset中,而每个dataset都被分成类别不相交的base/eval/novel(具体的原因是因为例如这里的source是mini-Imagenet,mini-Imagenet本身作为FSL的数据集,自然需要disjoint的base/eval以及novel sets,而正如上文所述,现实中我们可以自行进行划分,或者手工标注来实现这样的setting),标准的CD-FSL就是将source base D_{S{b}} 用于模型训练, source eval D_{S_e}用于模型验证,最终在target novel D_{T_n}上进行模型测试,当然还可以测试模型在source eval D_{S_{n}}上的性能。

在我们的setting下,我们将未曾被利用起来的target base D_{T_{b}} 做为来自target domain的额外数据,来引导模型的学习。具体而言,对于每个D_{T_{b}}中的类别,我们随机采样bum_{target}个样本 (最终方法中,num_{target}=5),这些样本共同构成我们的auxiliary data D_{aux}

这里要强调的一点是:由于我们获取D_{aux}D_{T_{b}}本身与测试集D_{T_{n}}的类别之间就是不存在任何交集的,因此我们并没有破坏基本的CD-FSL setting。

那在我们的定义下,问题变成了:如何利用好D_{S_b}以及D_{aux}这两部分数据,使得模型在D_{T_n}以及D_{S_n}上达到一个不错的效果。

四 方法介绍Meta-FDMixup

4.1 method motivation

我们刚刚在介绍setting的时候已经把问题提炼出来了,更加直观的解释可以看下图:


task

这里主要存在的两个难点问题是:

  1. 原本的source training data D_{S_b} 和新引入进行的auxilary data D_{aux}之间是unbalanced并且disjoint的。unbalanced指的是前者每个类别的样本量充足,而后者每个类别的样本量很少;disjoint的意思是这两个数据的类别集合交集为空。
  2. source和target之间依然存在的domain gap问题。

针对以上两个问题,文章给出的思路是:

  1. 用mixup模块来混合利用这两个unbalanced并且disjoint的数据;
  2. 用disentangle模块来抽取出domain相关的特征和domain无关的特征,最后仅用domain无关的特征进行分类。

4.2 overall framework

整体的网络框架图如下所示:

overall framework

文章主要包括以下五个模块:

  • feature extractor: 用于提取整体视觉特征;
  • disentangle module:从整体视觉特征中拆解domain-irrelevant以及domain-specific features;
  • mixup module:对来自source的training data和auxiliary data进行mixup,以便充分使用各个数据;
  • FSL classifier:根据domain-irrelevant features对episode中的query images进行分类,得到分类结果;
  • domain classifier: 判断输入特征来自哪个domain,进而用于监督disentangle module的学习;

整体的训练过程分为两个部分:1)pretrain; 2)meta-train

pretrain阶段:

  • 用从source training data中随机采样出来的mini-batch + 经典cross entropy 分类loss 对模型进行训练优化;
  • pipeline: minibatch --> feature extractor --> disentangle module,取其中的domain-irrelevant features --> FC classifier --> loss
  • 这个阶段主要是为了获取更好的特征提取器,让第二阶段的meta-train更加容易些;

meta-train阶段:

  • 采用两路episode的采样方式,用meta-learning的方法对模型进行训练优化;
  • pipeline:
    1) 随机从source的training data D_{S_b}和auxiliary data D_{aux}中采样两个episode;
    2) 用mixup模块对以\lambda的比例对这两个episode的query set进行混合,保持各自的support sets不变,得到source support set, auxiliary support set,以及mixed query set;
    3) 对source support set, auxiliary support set,以及mixed query set这三路都各自依次送入feature extractor以及disentangle module中,获取各自的domain-irrelevant features, domain-specific features;
    4) FSL tasks:将source support set和mixed query set送入FSL classifier进行分类,得到小样本分类loss L_{FSL_{S}}, 由于这里mixed query只包含\lambda比例原始的source query set,我们认为mixed query属于原来GT的置信度为\lambda,因此这部分的最终loss为\lambda L_{FSL_S}。 同理,将auxiliary support set和mixed query set送入FSL classifier进行分类,得到loss为(1-\lambda) L_{FSL_A}。 最终的小样本分类loss就是\lambda L_{FSL_S} + (1-\lambda) L_{FSL_A}
    5) domain classification tasks: 将三个domain-irrelevant features送入到domain classifier中进行分类,这部分分类希望能够混淆domain classifier,得到loss L_{dom_1}。将三个domain-specific features送入到domain classifier中进行分类,这里希望domain classifier能够正确分类feature来自哪个domain,得到loss L_{dom_2}(具体方法后面会介绍)。最终的domain分类loss就是L_{dom_1} + L_{dom_2}
    6) 用小样本分类loss + domain分类loss共同优化整个model。

4.3 modules

在我们的五个模块中,特征提取器和小样本分类器分别是ResNet-10以及GNN。

接下来主要介绍其他的三个。

4.3.1 meta-mixup model

原始的mixup处理的是同一类别集合内的数据,我们将其扩展到我们的task中,具体的方法为:

  1. 由于小样本分类需要依赖可靠的support set来对query set进行分类,所以这里保持source和auxiliary的support set不变,仅仅混合query set。

  2. 此外,混合比例\lambda不直接用于改变被混合图像的类别标签,而是认为mixed query属于原本类别的置信度有\lambda(虽然从数学上是一致的)。

形象化的表示如下图:


左半部分展示了mixup的过程,可以看到我们的meta-mixup模块对于输入的source episde和auxiliary episode,会获取到source support set,mixed query set,以及auxiliary support set。其中support set保持原来的不动,而mixed query set是由\lambda比例的source query和1-\lambda比例的target query共同构成的,这里的混合比例\lambda跟原始mixup一致,每次随机从beta分布中采样,即每一轮的\lambda是不一样的,且0<=\lambda <=1

右边展示了后续的小样本分类过程,基本思路在overall framework里都介绍过了,就是分别拿mixed query跟两个support sets进行分类,最后的loss要乘上各自的置信度\lambda或者是1-\lambda

4.3.2 disentangle module and domain classifier

disentangle模块设计:

整个模块的设计参考了VAE的encoder结构,但是我们这里没有用decoder,并且我们会encode出两个latant vector,一个是domain-irrelevant features,另一个是domain specific features。


整个想法是:

  • 希望domain-irrelevant features 能够混淆domain classifier
  • 而domain-specific features则能被准备地识别出来自哪个domain
  • 最后只用domain-irrelevant features来用作FSL分类器的输入。

监督信息:
disentangle模块的学习是由domain classifier监督的。

分别用1和0表示source domain/target domain,具体的loss function构成如下:


loss的构成跟上面的想法是一致的:

  • L_{dom_1}的GT是[0.5, 0.5], 用KL散度进行度量;
  • L_{dom_2}的GT是各自的domain label (1或0),用Cross Entropy loss进行度量。

五 实验结果

我们在FWT的benchmark上做了实验,主要对比了几个经典的FSL methods,几个simple but reasonable的baselines,以及FWT (当时很多新的CD-FSL方法还没发表)

5.1 num_{target}的选择

  • 分别试了num_{target} = 5, 10, 15, 20的结果

实验结果:

  1. 整体呈上升趋势;
  2. 有一个边际递减效应,从0-5的增幅最多,后面的增幅减缓;
  3. 考虑到实际结果都现实标注需要产生的代价,所有的setting都选择num_{target} = 5

5.2 主结果

相比于GNN base,不管是1-shot还是5-shot,在四个target dataset上平均达到了15%以上的性能提升。

5.3 可视化

用CAM做了可视化,这个图主要是为了说明target dataset带来了什么,所以对比的是在Imagenet pretrain的feature extractor的方法。

可以发现只在mini-Imagenet上训练的模型会对更加接近mini-Imagenet的东西感兴趣,例如树枝/山/背景等,但是会忽略真正对识别target classes有用的区域。而我们的方法在auxiliary data的帮助下能成功关注到那些关键的区域。

六 写在最后

这篇文章的setting还是挺现实的,也确实能给模型带来很多的性能提升,希望正在考虑CD-FSL方向的大佬们多多关注呀!!!

ps:code都开源了,求star求三连呜呜,如果有引用就更好了!~~

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,013评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,205评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,370评论 0 342
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,168评论 1 278
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,153评论 5 371
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,954评论 1 283
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,271评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,916评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,382评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,877评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,989评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,624评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,209评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,199评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,418评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,401评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,700评论 2 345

推荐阅读更多精彩内容