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

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

最近有一篇叫做《Learning To Transfer》的文章火了。其实早在上一同我就看了这个文章当时大为震惊,深深感到迁移学习领域又要有一个大研究方向了,以后可以跟着大牛做了。文章来自香港科技大学杨强老师团队,所以文章的档次和质量自然是不用多说了。这两天在忙着写文章,刚吃过饭,把上一周我做的笔记分享出来。

Motivation

我们在进行迁移学习时,往往不知道应该选择怎么样的算法。通常都通过人为地不断尝试来确定要用的方法。这个过程无疑是浪费时间,而且充满了不确定性。已有的迁移学习方法,基本都是这样。我们在拿到一个新问题时,如何选择迁移学习算法达到最好的效果?从人的学习过程中来说,人总是可以从以前的经验中学习知识。那么,既然我们已经实验了很多次迁移学习算法,我们能不能让机器也可以从我们这些实验中选择知识?这是符合我们人类认知的:我总不能每拿到一个问题,我就从头来做吧。本文就在研究这个问题,非常新颖的一个研究方向!

Method

方法分为两个部分:从已有的迁移学习方法和结果中学习迁移的经验,然后再把这些学习到的经验应用到新来的数据。

1. 从已有的方法和结果中学习经验

首先要明确学习目标。这个问题的学习目标是什么呢?跟以前的迁移学习方法都有所不同,以往的方法都是要学习最好的迁移函数,而这个问题的目标是要使得方法尽可能地具有泛化能力。因此,它的学习目标是:以往的经验!对的,就是经验。这也是符合我们人类认知 的。我们一般都是知道的越多,这个人越厉害(Jon Snow除外)。因此,这个方法的目标就是要尽可能多地从以往的迁移知识中学习经验,使之对于后来的问题具有最好的泛化能力。
那么什么是迁移的经验?这个在文中叫做transfer learning experience。作者这样定义:Ee=(Se,Te,ae,le)。其中,分别是源域和目标域,这个我们都知道。表示一个迁移学习算法,这个算法有个下标叫e,表示它是第e种算法。与之对应,选择了这种算法,它对不迁移情况下的表现有个提升效果,这个效果就叫做le。
总结一下,什么叫迁移学习的经验?就是说,在一对迁移任务中,我选择了哪种算法后,这种算法对于我任务效果有多少提升。这个东西,就叫做迁移!这和我们人类学习也是具有相似性的: 人们常说,失败是成功之母,爱因斯坦说,我实验了2000多种材料做灯泡都是失败的,但是我最起码知道了这2000多种材料不适合做灯泡!这就是人类的经验!我们人类就是从跌倒中爬起,从失败中总结教训,然后不断进步。学习算法也可以!
好了,现在我们有了对学习目标的定义。我们下一步要做什么呢?学习一下什么是可以迁移的。也就是说,从这些过往的经验中,到底可以学习到什么?学习到什么呢?结合我们以往对大部分迁移学习方法的了解,作者在这里对这些方法分成了两个部分:基于共同特征空间以及流形集成法。什么意思呢。其实很好理解:像TCA、JDA这种,把源域和目标域映射到一个共同的空间,然后在这个空间中学习一个变换矩阵的方法,就叫做基于共同特征空间;而像GFK这种,把数据映射到流形空间以后,跟走路一样由源域和目标域中间若干个(无数个)点构成的子空间来综合表示迁移过程的,就叫做流形集成法。作者在这里进行了一些形象地推导,从而推导出了这两种方法的本质(或者说共同目标)都可以学习出一个特征的变换矩阵W来。这个W就是这些迁移学习知识的中心。正是因为学习到了这个变换矩阵,才使得以后的迁移学习成为可能。于是,我们的目标就变成了,如何学习这个W。
那么问题来了,如何学习这个W呢?我们知道,假如给定我们一个源域和一个目标域,我们是可以学习到这个W的。方法很多。现在的问题状况变了,我们是给了一大堆的迁移对和对应的算法,这个时候如何学习这个W?注意,此时,这个W是共有的,我们只用学习一个就好。(对每一个迁移对,我们都可以学习到一个变换矩阵)学习一个的好处是,这一个变换矩阵可以对于所有以往的经验,都具有比较好的迁移能力。怎么做?很简单。我们直接学习所有迁移对最优的那个W,使得平均误差最小的那个W就是我们要求的。怎么样,好理解吧?
作者在学习W的时候,用的依然是我们的老朋友MMD(发明MMD的那俩人真是牛)。只不过在这里,和龙明盛的DAN一样用了MK-MMD(这是个好东西,我也要用用)。
除此之外,作者在学习目标里又加了另一个正则项:要保持源域中的一些信息。方法也是很老套的方法:用类似于LDA的类内距和类间距。最后,就成为了一个优化问题。只要把这个优化问题解出来,我们就学习到了这个W。

2. 推测迁移的内容

学习到了这个变换矩阵以后,下一步的工作就是要把学习到的东西应用于新来的数据。如何针对新来的数据进行迁移?我们本能地要利用刚刚学习到的这个W。但是不要忘了,这个W只是对旧的那些经验学习到的,对新的数据可能效果不好,不能直接用。怎么办?我们要更新它!
这里要注意的是,针对新来的数据,我们的这个变换矩阵应该是有所改变的:这也对,数据变了,当然变换矩阵就要变。那么,如何更新?作者在这里提出的方法是,新的W应该是能在新的数据上表现效果最好的那个W。这时,我们的问题就完成了。
一个适用于增量学习的迁移学习框架,就诞生了。

Experiments

既然研究问题都是自己开创的,那么实验肯定也和以前不一样啦。以前实验怎么做?选择一些数据分布差异大的数据集,然后构造源域和目标域,最后进行迁移。现在呢?针对要研究的问题:迁移学习经验,我们要构造这些经验。怎么构造?作者在这里用了两个大数据集:Caltech-256和Sketches。Caltech我们很熟悉,就是包含了256类的物体照片,Sketches是个啥?它是一个素描的数据集。这里就是要在这两种domain之间进行知识的迁移。为了方便起见,我们让Caltech作为源域,迁移到目标域Sketches。为什么不反过来?素描得少多少东西啊,能用来标定彩色照片?
为了构造尽可能多的迁移经验,作者构造出了很多的迁移对。方法也很常用,就是从两个数据集中分别随机选择3类的样本作为一个迁移对,这样的训练迁移对一共有1000对。接着构造了验证集500对和测试集500对。
实验进行时,作者首先控制目标域中label的个数由少到多,然后观察方法与对比方法的表现差异。毫无疑问这个方法效果很好,尤其是在目标域label非常少的时候,同时,标定精度也非常高。
后来作者又针对用于前期训练的迁移学习方法进行了实验,表现其与L2T框架结合后,效果非常好。这里就不再赘述。

Conclusion

  1. 提出了一个新颖的研究问题:类似于增量学习,如何最大限度地利用已有的迁移学习经验,使得其对新问题的泛化能力很好?同时也可以避免一出现新问题就从头进行学习。非常厉害!直接开创一个新问题,原文中说的“open a new door”!(然而这是由大牛指导的,我们小弱看看就好,这个学不来的)
  2. 对自己的问题有着非常明确而清晰地表述,能够很清楚地定义好这个问题的学习目标。
  3. 在解决问题的方法上,虽然用的都是老方法,但是能够想到新已有方法很好地应用于这个问题,也是很厉害的!
  4. 实验设置非常完善。

扩展

  1. 在深度网络中如何持续学习?(至少一篇文章出来了)
  2. 这个方法只是针对同构数据有效,异构数据应该也可以做的。(目测马上会有一波新文章)
  3. 已有的迁移学习方法并不都是基于同一个特征变换,可以学习不同的特征变换,使得这个方法的适应性更强。(又一篇)
  4. 总而言之,这篇文章最大的贡献就在于,开辟了一个新的研究领域,尽管方法上非常普通,但是,很有效。前瞻性的工作!

最后附上文章下载地址:[1708.05629] Learning to Transfer

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

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

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

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

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

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

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

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

《小王爱迁移》系列之四:深度适配网络(DAN)

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

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

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

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

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

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

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

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

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

「真诚赞赏,手留余香」
1 人赞赏
xiongpeng
文章被以下专栏收录
11 条评论