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

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

这是《小王爱迁移》系列的第二篇,为大家介绍一个非常不错的工作,叫做联合分布适配。和第一篇的TCA一脉相承,但是更简洁更美丽,效果更好。

问题背景

联合分布适配方法(joint distribution adaptation,JDA)解决的也是迁移学习中一类很大的问题:domain adaptation。关于domain adaptation的介绍可以看我之前的介绍。简单概括就是,如何用有标注的源域数据(\mathcal{D}_s=\{\mathbf{x}_s,P(\mathbf{x}_s)\})来标定完全无标注的目标域(\mathcal{D}_t=\{\mathbf{x}_t,P(\mathbf{x}_t)\})

简介

JDA方法首次发表于2013年的ICCV(计算机视觉领域顶会,与CVPR类似),它的作者是清华大学的博士生(现为清华大学助理教授)龙明盛。关于作者我们多说几句。龙明盛是迁移学习方面的专家,博士期间与香港科技大学的Qiang Yang、伊利诺伊大学芝加哥分校的Philip S. Yu以及伯克利的Jordan联合发表过多篇顶级文章。他的个人网站是:Mingsheng Long - Tsinghua University。博士论文里所有一作文章都是顶会和顶刊,非常厉害。

JDA这个方法,看名字就知道,是一个概率分布适配的方法,而且适配的是联合概率。先来简单普及一下知识:边缘概率、条件概率和联合概率。对于一个随机变量Xx \in X是它的元素,对于每一个元素,都对应一个类别y \in Y。那么,它的边缘概率为P(X),条件概率为P(y|X),联合概率为p(X,y)。JDA方法就是要适配源域和目标域的联合概率。

方法

假设

假设是最基本的出发点。那么JDA这个方法的假设是什么呢?就是假设两点:1)源域和目标域边缘分布不同,2)源域和目标域条件分布不同。那么目标来了,同时适配两个分布不就可以了吗?于是作者很自然地提出了联合分布适配方法:适配联合概率。

不过这里我感觉有一些争议:边缘分布和条件分布不同,与联合分布不同并不等价。所以这里的“联合”二字实在是会引起歧义。我的理解是,同时适配两个分布,也可以叫联合,而不是概率上的“联合”。尽管作者在文章里第一个公式就写的是适配联合概率,但是这里感觉是有一些问题的。我们抛开它这个有歧义的,把“联合”理解成同时适配两个分布。

那么,JDA方法的目标就是,寻找一个变换\mathbf{A},使得经过变换后的P(\mathbf{A}^\top \mathbf{x}_s)P(\mathbf{A}^\top \mathbf{x}_t)的距离能够尽可能地接近,同时,P(y_s|\mathbf{A}^\top \mathbf{x}_s)P(y_t|\mathbf{A}^\top \mathbf{x}_t)的距离也要小。很自然地,这个方法也就分成了两个步骤。

边缘分布适配

首先来适配边缘分布,也就是P(\mathbf{A}^\top \mathbf{x}_s)P(\mathbf{A}^\top \mathbf{x}_t)的距离能够尽可能地接近。其实这个操作就是迁移成分分析(TCA)。我们仍然使用MMD距离来最小化源域和目标域的最大均值差异。MMD距离是

\left \Vert \frac{1}{n} \sum_{i=1}^{n} \mathbf{A}^\top \mathbf{x}_{s_i} - \frac{1}{m} \sum_{i=1}^{m} \mathbf{A}^\top \mathbf{x}_{t_i} \right \Vert ^2_\mathcal{H}

这个式子实在不好求解。我们引入核方法,化简这个式子,它就变成了

D(\mathcal{D}_s,\mathcal{D}_t)=tr(\mathbf{A}^\top \mathbf{X} \mathbf{M}_0 \mathbf{X}^\top \mathbf{A})

其中\mathbf{A}就是变换矩阵,我们把它加黑加粗,\mathbf{X}是源域和目标域合并起来的数据。\mathbf{M}_0是一个MMD矩阵:

(\mathbf{M}_0)_{ij}=\begin{cases} \frac{1}{n^2}, & \mathbf{x}_i,\mathbf{x}_j \in \mathcal{D}_s\\ \frac{1}{m^2}, & \mathbf{x}_i,\mathbf{x}_j \in \mathcal{D}_t\\ -\frac{1}{mn}, & \text{otherwise} \end{cases}

n,m分别是源域和目标域样本的个数。

好了,到此为了没有什么创新点,因为这就是一个TCA,杨强老师已经做完了。

条件分布适配

这是我们要做的第二个目标,适配源域和目标域的条件概率分布。也就是说,还是要找一个变换\mathbf{A},使得P(y_s|\mathbf{A}^\top \mathbf{x}_s)P(y_t|\mathbf{A}^\top \mathbf{x}_t)的距离也要小。那么简单了,我们再用一遍MMD啊。可是问题来了:我们的目标域里,没有y_t,没法求目标域的条件分布!

这条路看来是走不通了。哪条路呢?就是去建模P(y_t|\mathbf{x}_t)不行嘛。那么,能不能有别的办法可以逼近这个条件概率?一想,有啊,类条件概率\mathbf{x}_t|y_t啊。根据贝叶斯公式P(y_t|\mathbf{x}_t)=p(y_t)p(\mathbf{x}_t|y_t),我们如果忽略P(\mathbf{x}_t),那么岂不是就可以用P(\mathbf{x}_t|y_t)来近似P(y_t|\mathbf{x}_t)

而这样的近似也不是空穴来风。在统计学上,有一个东西叫做充分统计量,它是什么意思呢?大概意思就是说,如果样本里有太多的东西未知,样本足够好,我们就能够从中选择一些统计量,近似地代替我们要估计的分布。好了,我们为近似找到了理论依据。

实际怎么做呢?我们依然没有y_t。采用的方法是,用(\mathbf{x}_s,y_s)来训练一个简单的分类器(比如knn、逻辑斯特回归),到\mathbf{x}_t上直接进行预测。总能够得到一些伪标签\hat{y}_t的吧。我们根据伪标签来计算,这个问题就可解了。

类与类之间的MMD距离表示为

\sum_{c=1}^{C}\left \Vert \frac{1}{n_c} \sum_{\mathbf{x}_{s_i} \in \mathcal{D}^{(c)}_s} \mathbf{A}^\top \mathbf{x}_{s_i} - \frac{1}{m_c} \sum_{\mathbf{x}_{t_i} \in \mathcal{D}^{(c)}_t} \mathbf{A}^\top \mathbf{x}_{t_i} \right \Vert ^2_\mathcal{H}

其中,n_c,m_c分别标识源域和目标域中来自第c类的样本个数。同样地我们用核方法,得到了下面的式子

\sum_{c=1}^{C}tr(\mathbf{A}^\top \mathbf{X} \mathbf{M}_c \mathbf{X}^\top \mathbf{A})

其中\mathbf{M}_c

(\mathbf{M}_c)_{ij}=\begin{cases} \frac{1}{n^2_c}, & \mathbf{x}_i,\mathbf{x}_j \in \mathcal{D}^{(c)}_s\\ \frac{1}{m^2_c}, & \mathbf{x}_i,\mathbf{x}_j \in \mathcal{D}^{(c)}_t\\ -\frac{1}{m_c n_c}, & \begin{cases} \mathbf{x}_i \in \mathcal{D}^{(c)}_s ,\mathbf{x}_j \in \mathcal{D}^{(c)}_t \\ \mathbf{x}_i \in \mathcal{D}^{(c)}_t ,\mathbf{x}_j \in \mathcal{D}^{(c)}_s \end{cases}\\ 0, & \text{otherwise}\end{cases}

学习策略

现在我们把两个距离结合起来,得到了一个总的优化目标:

\min \sum_{c=0}^{C}tr(\mathbf{A}^\top \mathbf{X} \mathbf{M}_c \mathbf{X}^\top \mathbf{A}) + \lambda \Vert \mathbf{A} \Vert ^2_F

看到没,通过c=0 \cdots C就把两个距离统一起来了!其中的\lambda \Vert \mathbf{A} \Vert ^2_F是正则项,使得模型良好定义。

我们还缺一个限制条件,不然这个问题无法解。限制条件是什么呢?和TCA一样,变换前后数据的方差要维持不变。怎么求数据的方差呢,还和TCA一样:\mathbf{A}^\top \mathbf{X} \mathbf{H} \mathbf{X}^\top \mathbf{A} = \mathbf{I},其中的\mathbf{H}也是中心矩阵,\mathbf{I}是单位矩阵。也就是说,我们又添加了一个优化目标是要\max \mathbf{A}^\top \mathbf{X} \mathbf{H} \mathbf{X}^\top \mathbf{A}(这一个步骤等价于PCA了)。和原来的优化目标合并,我们就是要好了,统一写一下优化目标

\min \frac{\sum_{c=0}^{C}tr(\mathbf{A}^\top \mathbf{X} \mathbf{M}_c \mathbf{X}^\top \mathbf{A}) + \lambda \Vert \mathbf{A}}{ \mathbf{A}^\top \mathbf{X} \mathbf{H} \mathbf{X}^\top \mathbf{A}}

这个式子实在不好求解。怎么弄啊,这么一大串。也不用惆怅,有个东西叫做rayleigh quotient,上面两个一样的这种形式。因为\mathbf{A}是可以进行拉伸而不改改变最终结果的,而如果下面为0的话,整个式子就求不出来值了。所以,我们直接就可以让下面不变,只求上面。所以我们最终的优化问题形式搞成了

 \min \quad \sum_{c=0}^{C}tr(\mathbf{A}^\top \mathbf{X} \mathbf{M}_c \mathbf{X}^\top \mathbf{A}) + \lambda \Vert \mathbf{A} \Vert ^2_F \quad \text{s.t.} \quad \mathbf{A}^\top \mathbf{X} \mathbf{H} \mathbf{X}^\top \mathbf{A} = \mathbf{I}

怎么解?太简单了,用拉格朗日法嘛。不说了。最后变成了

\left(\mathbf{X} \sum_{c=0}^{C} \mathbf{M}_c \mathbf{X}^\top + \lambda \mathbf{I}\right) \mathbf{A} =\mathbf{X} \mathbf{H} \mathbf{X}^\top \mathbf{A} \Phi

其中的 \Phi 是拉格朗日乘子。别看这个东西复杂,又有要求解的 \mathbf{A} ,又有一个新加入的 \Phi 。但是它在matlab里是可以直接解的(用eigs函数即可)。这样我们就得到了变换\mathbf{A},问题解决了。

可是伪标签终究是伪标签啊,肯定精度不高,怎么办?那好办。有个东西叫做迭代,一次不行,我们再做一次。后一次做的时候,我们用上一轮得到的标签来作伪标签。这样的目的是得到越来越好的伪标签,而参与迁移的数据是不会变的。这样往返多次,结果就自然而然好了。


总结

JDA方法比较巧妙,同时适配两个分布,然后非常精巧地规到了一个优化目标里。用弱分类器迭代,最后达到了很好的效果,值得我们去学习。和TCA的主要区别有两点:1)TCA是无监督的(边缘分布适配不需要label),JDA需要源域有label;2)TCA不需要迭代,JDA需要迭代。源代码:ise.thss.tsinghua.edu.cn


Acknowledgements

特别感谢澳大利亚University of Wollongong的美丽聪明的Jing Zhang对本文提出的修改意见。


References

[1] JDA方法原文:Long M, Wang J, Ding G, et al. Transfer feature learning with joint distribution adaptation[C]//Proceedings of the IEEE International Conference on Computer Vision. 2013: 2200-2207.

[2] TCA方法原文:Pan S J, Tsang I W, Kwok J T, et al. Domain adaptation via transfer component analysis[J]. IEEE Transactions on Neural Networks, 2011, 22(2): 199-210.

[3] Rayleigh quotient: Rayleigh quotient | Wikiwand


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

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

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

文章被以下专栏收录