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

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

本文发表于ICML-10, 是第一篇进行在线迁移学习(Online Transfer Learning)的论文,其重要性不言自明。文章的作者是Peilin ZhaoSteven Hoi(后者是前者的老师),之前在南洋理工大学(NTU),现在Peilin Zhao在阿里巴巴做研究,Steven Hoi在新加坡管理大学(SMU)做副教授。Steven Hoi是机器学习领域很有名的学者,主要做在线学习等方面的研究。值得一提的是,Hoi这个人,长得很帅很显年轻。不信可以看他主业照片,他现在就长这样。猜猜他几岁?

Motivation

我们都知道迁移学习可以用来解决训练数据缺失的问题,很多迁移学习方法都获得了长足的进步。给定一个要学习的目标域数据,我们可以用已知标签的源域数据来给这个目标域数据构造一个分类器。但是这些方法都存在很大的一个问题:它们都是采用离线方式(offline)进行的。什么是离线方式?就是说,一开始,源域和目标域数据都是给出来的,我们直接做完迁移,这个过程就结束了。We are done。

但是真实的应用往往不是这样的:数据往往是一点一点源源不断送来的。也就是说,我们一开始的时候,也许只有源域数据,目标域数据要一点一点才能过来。这就是所谓的“在线迁移学习”。这个概念脱胎于“在线学习”的模式,在线学习是机器学习中一个重要的研究概念。

回到在线迁移学习(Online Transfer Learning, OTL)中来。作者在文中给出了形式化的定义:用 \mathcal{X}_1,\mathcal{X}_2\mathcal{Y}_1,\mathcal{Y}_2 分别来代表源域和目标域的特征空间和样本空间。那么,根据 \mathcal{X}_1\mathcal{X}_2 是否相同,OTL可以分类两个大类:同构OTL和异构OTL。

  • 同构OTL我们可以理解成是在线的domain adaptation,就是特征和类别都一样,只是特征分布不一样,这个比较常见。
  • 异构OTL简单来说就是类别一样,特征维度和定义都不一样。因为这个概念太大,不好做,所以作者又特别规定了,这里的异构OTL中,源域的特征是包含在目标域中的。就是说,假如源域有12个特征,那么目标域的前12个特征就是源域的,然后目标域还有余下的特征。这样做达到了问题的简化。


借助这个形式化,OTL的问题变成了:目标域数据以流式一个一个来时,如何借助已有的源域数据,为目标域构建可依赖的分类器?作者的目标是建立一个有监督的分类器,就是说,目标域的label是要用于构建分类器的,而不是要获得的目标。目标是分类器。这个要特别注意。

Method

下面我们来看作者提出的方法。作者分别对同构OTL和异构OTL提出了相应的方法。方法本身比较简单,就是基于SVM以及集成学习进行组合。基本思想就是:先针对可用的源域数据建立一个分类器,然后,每来一个目标域数据,就对这个新数据建立一个分类器,然后与在源域上建立的这个分类器进行组合。核心问题是:确定源域和新数据分类器各自应该以怎么样的权重进行组合。

由于源域数据在同构和异构两部分中都会用到,我们先说源域数据上的分类器构建。用 h 来表示在源域数据上的分类器, k(\cdot,\cdot) 是个核函数,那么这个分类器可以被表示成

h(x)=\sum_{s=1}^{S} \alpha_s y_{1s} k(x_{1s},x)

其中的 (x_{1s},y_{1s}) 表示源域数据中的支持向量, \alpha_s 是协方差。因为在源域中有足够的数据和标记,这个 h(x) 可以很容易被学习到。


同构在线迁移学习(Homogeneous Online Transfer Learning)

同构OTL的学习目标是要把 h(x) 和来自第 t 轮的目标域样本 x_{2t} 上的分类器 f_t(x) 进行融合。具体来说,对于第 t 轮的目标域样本 x_{2t} ,我们可以用下面的式子来预测它的标记:

\hat{y_{2t}} = \mathrm{sign} \left(w_{1,t}\Pi(h(x_{2t})) + w_{2,t}\Pi(f_t(x_{2t})) - \frac{1}{2}\right)

其中的 w_{1,t},w_{2,t} 分别是源域分类器和目标域分类器的权重,这个 \Pi(x) 函数可不是连乘,而是作者自己定义的一个归一化函数: \Pi(x) = \mathrm{max}(0,\min({1,\frac{x+1}{2})}) 。这就是为了平衡这两部分的权重。

两部分的权重可以由下面的公式来进行更新:


其中的这个 s(g) 是个指数损失函数: s_g(g) = \exp(-\eta l^*(\Pi(g(x_{2t})),\Pi(y_{2t}))) ,其中的 l*(z,y) = (z-y)^2 ,就是一个平方损失。这样交替地来学习权重,就可以完成这个同构的OTL。

总的来说,这个思想比较简单,也比较好理解。可能对于这个权重更新会理解比较困难。我的理解就是,类似于adaboost的思想,哪部分损失大,就把哪部分的权重给高一些。

备注:我在读这个文章的时候读到这部分就很困惑:为什么有个 -\frac{1}{2} ?为什么要增加一个归一化函数 \Pi(\cdot) ?归一化函数又为什么是 \frac{x+1}{2} 这个形式?于是就给作者发邮件。作者很好,第二天就回答我了。这里加 -\frac{1}{2} 的目的是为了把输出从原来的 [0,1] 映射到 [-\frac{1}{2},\frac{1}{2}] 这个范围里,所以正负号就一目了然地标识了输出的label(二类分类)。为什么是这个形式的归一化函数?是为了凸优化求解方便。感谢作者的耐心指导。


异构在线迁移学习(Heterogeneous Online Transfer Learning)

异构的OTL和同构的思想差不多,借鉴了一种多视图学习(multi-view learning)的思想。多视图学习简单来说就是把同样的数据用不同的角度去分析,然后再把结果进行组合。多视图是对目标域数据进行的:在异构的OTL中,目标域的特征包含了源域的前N个。那么就可以对目标域的数据进行拆分:前一半和源域相同的是第一个视图,后一半是第二个视图。

学习的目标就是,如何把在这两个视图上学习到的分类器 f^{(1)}_tf^{(2)}_t 进行有机的组合。目标域的标记就变成了

\hat{y_t} = \mathrm{sign}(\frac{1}{2} (f^{(1)}_t(x^{(1)}_{2t}) + f^{(2)}_t(x^{(2)}_{2t})))

在一开始的时候,因为目标域没有数据,所以设定 f^{(1)}_1=h,f^{(2)}_1=0 。然后,用如下的方法进行更新:

其中的 \gamma_1,\gamma_2C 是参数, l_t 是一个损失函数:


这样就可以在线更新两个分类器,进而学习完成。

Experiments

作者在一些公开数据集上进行了相关的实验以验证他提出方法的精确性。特别的,除了传统的对比精度以外,因为是在线学习,所以还特别对比了当目标数据变化时,算法的精度变化情况。这在以后的在线迁移学习中要特别注意。作者的OTL方法是开源的,可以在这里进行下载。


总结

这是在线迁移学习研究的第一篇文章,值得好好研究。作者在文章里首先提出了OTL问题的定义,为后来研究打下了基础。然后,提出了一种很简单却很有道理的方法进行解决。后来的OTL方法基本都是在作者的这个框架里进行的。作者后来又对实验进行了丰富,写了一篇期刊文章发在了人工智能领域顶级期刊Artificial Intelligence上。

想看最新的OTL方面的文章,可以去Google Scholar搜索Online transfer learning,也可以关注华南理工大学的Qingyao Wu老师,他和他的学生在这上面发了一些文章。总的来说,从2010年本文第一次发在ICML上到今天的2018年,在OTL方面的文章非常少,我总结只有不到20篇(见这里)。迁移学习想真正被广泛应用于工业界,在线的研究必不可少。我感觉这个领域还可以大有作为,也期待我们一起努力!

最后照例吐槽知乎不支持markdown,写公示很费劲!得一个一个点击图标插入!

扩展

1. 本文是有监督的,也就是说目标域的label是被用上的。能否改成无监督?

2. 用深度网络进行?

3. Multi-source?这个Qingyao Wu他们在做。

4. 和时间序列结合?毕竟时间序列就满足stream这个特点,数据不断地来。

5. 总之,OTL是一个很有前景的研究方向。


References

[1] 本文所讲述的ICML-10文章:Zhao P, Hoi S C. OTL: A framework of online transfer learning[C]//ICML. 2010: 1231-1238.

[2] 本文后来完整发表的期刊文章:Zhao P, Hoi S C H, Wang J, et al. Online transfer learning[J]. Artificial Intelligence, 2014, 216: 76-102.

[3] 本文介绍的OTL方法的代码:stevenhoi.org/otl

[4] 本文两个作者的个人主页:http://stevenhoi.org 以及 Peilin Zhao's Homepage

[5] 更多OTL研究的文章:jindongwang/transferlearning

[6] 华南理工大学Qingyao Wu老师的个人主页:sites.google.com/site/q

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

[作者简介]王晋东(不在家),中国科学院计算技术研究所博士生,目前研究方向为机器学习、迁移学习、人工智能等。作者联系方式:微博@秦汉日记 ,个人网站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最佳论文解读)

文章被以下专栏收录