《小王爱迁移》系列之二十二:异构网络的迁移:Learn What-Where to Transfer

《小王爱迁移》系列之二十二:异构网络的迁移:Learn What-Where to Transfer

今天浏览昨天arXiv推荐的文章,看到了一篇被ICML-19录用的文章:《Learning What and Where to Transfer》。名字就很是吸引人,于是带着强烈的兴趣阅读之。读罢很是感叹:这可能是2019年至今为止本小弱看到过的最好的paper了。鉴于近来一直在忙,专栏文章很久没有更新,正值生活大爆炸剧终之际,于是抽出时间趁热打铁,在此与大家分享对此文的拙见。

先介绍作者团队。此文作者共有4人,均为韩国人。其中前2人共同一作,均来自KAIST(韩国科学技术院,是大学,不是研究院,在韩国排名很靠前)。三作和四作都是老师。总体来说,论文作者团队属于科研新秀(作为老板的四作Google引用也只有1200,个人主页),但是人家今年就已经中了5篇ICML,应该是冉冉升起的新星吧。以后应重点关注。

文章题目非常简单直观:学习迁移什么、从哪里迁移。与当下颇为时髦的Domain adaptation拼精度刷榜截然不同,本文另辟蹊径,从根源上研究不同架构的深度网络如何进行迁移,并提供了行之有效的解决方案,读来不免深深感叹:确实是好的研究。

Motivation

一直以来,深度网络都是对迁移学习最为友好的学习架构。从最简单的finetune(微调),到固定网络的特征提取层不变在倒数第二层加入可学习的距离,再到通过领域对抗的思想学习隐式分布距离,深度迁移学习方法大行其道。在诸多图像分类、分割检测等任务上取得了不错的效果。几乎每周都有新的domain adaptation文章出现,不断刷新着几个公开数据集的精度。

纵观这些方法的思路,大多均逃脱不开一个固有的模式:源域和目标域的网络架构完全相同,固定前若干层,微调高层或在高层中加入分布适配距离。然而,在迁移模型变得越来越臃肿、特定数据集精度不断攀升的同时,极少有人想过这样一个问题:

  1. 这种固定+微调的模式是否是唯一的迁移方法?
  2. 如果2个网络结构不同(比如),则上述模式直接失效,此时如何做迁移?

本文第一次考虑此问题。作者的思路也很直接:给定任意2个结构不同的网络(比如一个是ResNet,另一个是VGG)。如何利用预训练好的ResNet帮助提升VGG网络在目标任务上的表现?

本文将这一思路具体表述为2点:What to transferWhere to transfer

  1. What部分解决网络的可迁移性:源域中哪些层可以迁移到目标域哪些层?
  2. Where部分解决网络迁移多少:源域中哪些层的知识迁移多少给目标域的哪些层?

简单来说就是:学习源域网络中哪些层的知识可以迁移多少给目标域的哪些层。如下图所示。



Method

我们将 x,y 分别作为网络的输入和输出。令 S^m(x) 表示预训练好的源域网络中的第 m 层的特征表达, T_\theta 为目标域的待学习网络。则 T^n_\theta(x) 表示目标域网络中第 n 层的特征表达,其中 \theta 是待学习参数集合。则,what和where的学习目标就可以形式化为:

\left\|r_{\theta}\left(T_{\theta}^{n}(x)\right)-S^{m}(x)\right\|_{2}^{2}

其中 r_{\theta} 是一个线性变换。简单来说,上式表示我们如何对源域的第 m 层和第 n 层进行迁移、迁移多少。这是总的学习目标。

作者的方法一共分为2步,分别解决what和where的问题。总体思路相似:构建what和where问题的2个权重矩阵,设计一个meta-learning(元学习)网络来学习这2个矩阵。

What to transfer

考虑到源域中的所有层特征并不都对目标任务有促进作用,因此,作者对于channel的重要性设计了一个权重学习模式:

\mathcal{L}_{\mathrm{wfm}}^{m, n}\left(\theta | x, w^{m, n}\right) {=\frac{1}{H W} \sum{c} w_{c}^{m, n} \sum_{i, j}\left(r_{\theta}\left(T_{\theta}^{n}(x)\right)_{c, i, j}-S^{m}(x)_{c, i, j}\right)^{2}}

其中的 H \times W 为一个通道下的特征大小, w^{m,n}_c 为待学习权重,显然 \sum_{c} w^{m,n}_c=1 作者将其表达为一个待学习函数: w^{m, n}=\left[w_{c}^{m, n}\right]=f_{\phi}^{m, n}\left(S^{m}(x)\right) ,则其参数 \phi 为学习目标。

Where to transfer

Where步骤解决的是源网络中的第 m 层迁移到目标网络的第 n 层时,是否可以迁移。目前来说,已有工作都利用的是人工试验的方式进行,通过实验来判定到底可不可以迁移。显然其没有任何保证。

作者设计了一个权重矩阵 \lambda^{m,n}>0 来表示源域中第 m 层对于目标域中第 n 层的可迁移指标。此指标越大,则越可迁移。与what同理,作者将其参数化为一个待学习网络: \lambda^{m, n}=g_{\phi}^{m, n}\left(S^{m}(x)\right)

网络整体损失函数

将what和where部分的loss进行综合,得到以下的可迁移部分的loss:

\mathcal{L}_{\mathrm{wfm}}(\theta | x, \phi)=\sum{(m, n) \in \mathcal{C}} \lambda^{m, n} \mathcal{L}_{\mathrm{wfm}}^{m, n}\left(\theta | x, w^{m, n}\right)

将上述loss与网络的交叉熵loss结合,构成网络整体训练的loss:

\mathcal{L}_{\text { total }}(\theta | x, y, \phi)=\mathcal{L}_{\text { org }}(\theta | x, y)+\beta \mathcal{L}_{\text { wfm }}(\theta | x, \phi)

其中 \beta>0 为可调参数。

至此,此方法核心介绍完毕。怎么样,看到这里,你是不是也觉得思路独树一帜、问题标新立异、方法实现简单?

方法部分的后文还介绍了此网络的训练过程,感兴趣的读者可以自己阅读,我们不再介绍。我们接下来介绍实验。

Experiments

实验部分非常详尽。作者针对2种尺寸的图像 (32\times32,224\times224) 进行了迁移,基本上囊括了目前流行的图像尺寸。数据集方面,包括CIFAR-10、CIFAR-100、TinyImageNet、STL-10、ImageNet、Caltech-UCSD Bird 2000、MIT Indoor Scene Recognition、Stanford 20 Actions、以及Stanford Dogs。网络方面采用了ResNet和VGG。详细结构可以看文章。

迁移策略:作者为提出的方法设计了3种迁移策略(类别一对一、多对多):

  1. Single:将源域中的最后一个特征层迁移到目标域的某一层;
  2. One-to-one:源域中的每个pooling层前的一层分别迁移到目标域的某些层;
  3. All-to-all:源域中的n层迁移到目标域的m层。

总体表现

作者分别以TinyImagenet和Imagenet作为源域,剩下的数据集作为目标域,进行了迁移学习,并与一些最新的方法进行了对比。结果表明,本文的方法显著优于最好的对比方法,最高可提高10%以上。作者还将迁移时源域和目标域不同层的迁移指标进行了可视化,方便读者进行理解。同时,结果也表明,从网络较浅的层进行迁移,其结果往往比从较高的层进行迁移具有更小的波动性。这是因为之前提到过的,越深的层,对目标任务越具有特殊性,可能不适合迁移。

限制训练标注数据

作者限制训练标注数据的大小,测试了本文的方法与对比方法的精度。结果表明,本文的方法在所有情况下均显著优于对比方法,并且label越少,提升越明显。这从侧面上又验证了迁移学习在少标注情形下的有效性。

多源迁移学习

多源迁移由于涉及到多个数据集,网络学习过程可能受到不同来源数据的扰动。作者测试的结果同样表明了本方法的有效性。作者还对网络的一些层进行了特征图可视化,方便读者进行理解。

小结

本文是我2019年目前为止看过的最好的文章之一。它开创性地对异构网络之间的迁移进行了研究(惭愧,之前和某个大牛交流时聊过类似想法,不过当时没有想明白)。从网络结构角度来说,本文其实与最新发表于PAMI的Beyond sharing weights for domain adaptation(前作发表于ECCV 2016)有继承关系。PAMI文章是两个相同结构的网络彼此迁移,本文是异构网络,更具一般性。本文代码已开源到Github:github.com/alinlab/L2T-

联想到NIPS14年的How transferrable are deep neural networks文章第一次用丰富的实验验证了神经网络的可迁移性,从NIPS14的实验验证,到ECCV16的同构网络迁移,再到本文的异构网络迁移,我们一不小心就见证了三个里程碑。

有什么用:除了迁移,该方法也可以看作是一种网络的压缩:从大网络迁移到小网络,增强小网络的学习表现。相信此方法不论是在学术界和工业界,都会掀起不小的波澜。作者在结论中也说:"We believe that our work would shed a new angle for complex transfer learning tasks..."。我也相信如此。因此,对于每一个做迁移学习相关研究的人来说,此文都会是一个很好的启示,是时候关注更深入的问题啦!(最后再实名吐槽知乎的智障公式编辑器)

References

[1] 本文原文arXiv地址:arxiv.org/abs/1905.0590

[2] Beyond sharing weights: ieeexplore.ieee.org/abs

========================

[作者简介]王晋东(不在家),中国科学院计算技术研究所博士生,目前研究方向为机器学习、迁移学习、人工智能等。作者联系方式:微博@秦汉日记 ,个人网站Jindong Wang is Here

=================

更多《小王爱迁移》系列文章:

《小王爱迁移》系列之零:迁移学习领域著名学者和研究机构

《小王爱迁移》系列之一:迁移成分分析(TCA)方法简介

《小王爱迁移》系列之二:联合分布适配(JDA)方法简介

《小王爱迁移》系列之三:深度神经网络的可迁移性

《小王爱迁移》系列之四:深度网络如何进行迁移学习(DaNN、DDC、DAN)

《小王爱迁移》系列之五:测地线流式核方法(GFK)

《小王爱迁移》系列之六:学习迁移(Learning To Transfer)

《小王爱迁移》系列之七:负迁移(Negative Transfer)

《小王爱迁移》系列之八:深度迁移学习文章解读

《小王爱迁移》系列之九:开放集迁移学习(Open Set Domain Adaptation)

《小王爱迁移》系列之十:张量迁移学习(tensor unsupervised domain adaptation)

《小王爱迁移》系列之十一:选择性对抗迁移学习(Selective Adversarial Network)

《小王爱迁移》系列之十二:新年新气象-重新整理的迁移学习资源仓库

《小王爱迁移》系列之十三:在线迁移学习(online transfer learning)

《小王爱迁移》系列之十四:用于部分迁移学习的深度加权对抗网络

《迁移学习简明手册》发布啦!

《小王爱迁移》系列之十五:自动选择源域的迁移学习方法(SSFTL)

《小王爱迁移》系列之十六:探秘任务迁移学习 (CVPR 2018最佳论文解读)

《小王爱迁移》系列之十七:深度迁移度量学习

《小王爱迁移》系列之十八:联邦迁移学习

《小王爱迁移》系列之十九:基于条件对抗网络的领域自适应

《小王爱迁移》系列之二十:深度迁移学习用于时间序列分类

小王爱迁移》系列之二十一:最大分类器差异的领域自适应(MCD_DA)

《小王爱迁移》系列之二十二:Learn What and Where to Transfer

编辑于 2019-09-17

文章被以下专栏收录