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

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

本次介绍一篇刚发表在ICCV-17上的迁移学习文章。这个论文是第一篇使用张量(tensor)进行domain adaptation的文章。虽然方法本身并不复杂,但是可以作为今后工作的一些参考,还是比较有意义的。作者也慷慨地放出了方法的代码(见本文最后),我们也可以进行实践提升了。

Motivation

现有的那些domain adaptation方法都只是针对向量(vector)的。而这种表示所带来的问题就是,当把这些数据应用于高维度表示(如卷积)时,数据首先要经过向量化(vectorization)。此时,无法精准完备地保留一些统计属性。所以作者要提出,不经过向量化来进行domain adaptation的方法。作者很自然地用到了tensor(张量)

Method

基本知识

鉴于我们通常操作的都是一维二维的向量和矩阵,对tensor还比较陌生,所以作者先介绍了tensor基本的一些概念。

Tensor的回顾:首先作者回顾了一下tensor的定义。简单来说,tensor可以看作是向量(1维)和矩阵(2维)的高维泛化。比如 \mathbf{M} \in \mathbb{R}^{m \times n} 就是一个2维矩阵,那么很自然的,3维矩阵呢,4维呢。这时候tensor就出场了。比如 \mathcal{M} \in \mathbb{R}^{m \times n \times p} 就是一个3维的tensor。这时候这个3维,也可以叫做这个tensor的mode是3。一般来说,一个mode为 K 的tensor可以表示成 \mathcal{M} \in \mathbb{R}^{n_1 \times n_2 \times \cdots \times n_K} 。一般用大写黑体表示矩阵,大写花体表示tensor,以示区别。

Tucker分解:在tensor里有一个很重要的概念就是Tucker分解(Tucker decomposition),就是把一个tensor分解成一个core tensor和一系列矩阵相乘的形式。对tensor \mathcal{X} 进行Tucker分解表示为:


其中这个 \mathcal{G} 就叫做core tensor,这一系列的矩阵 \mathbf{U}^{(k)} 是第 k 个mode的因子矩阵。

对Tucker分解的理解可以类比着PCA来看。Tucker分解就是一个高维度的PCA。通过Tucker分解,一个高维的tensor可以由很多子矩阵可近似,也就很自然地达到了降维。

Naive Tensor Subspace Learning

作者基于tensor的Tucker分解,很快提出了一个基本的迁移学习算法,叫做Naive Tensor Subspace Learning。这个算法的motivation就是,假设source和target共享了一部分subspace。用tensor重新表示source和target后(这部分没啥意思),优化问题变成了:


这个式子很好理解:优化目标就是说,让source和target各自与它们的Tucker分解之差最小。其中这个 \mathcal{U} 就是假设它们共享的那部分subspace(刚好是一系列矩阵)。这里的 \mathcal{G}_s\mathcal{G}_t 分别对应于source和target中specific的不共享的那部分。只要求出了这个 \mathcal{U} ,这个问题就解决了。用现成的一些Tucker分解算法就可以得到解决。

Tensor-Aligned Invariant Subspace Learning

作者显然不满足说上面的算法,他称之为baseline。既然有baseline了,那就要基于baseline继续开发出更强大的算法。作者在这里说,上面的算法只假设了source和target共享某些subspace,这只是在它们的差异小时才有效。而在更一般的条件下,这种共享变量要通过一个线性变换来做。于是作者又提出了一个加强版的算法,名字叫做Tensor-Aligned Invariant Subspace Learning (TAISL)。这个算法的形式如下



这里又引入了一个新的tensor是 \mathcal{M} ,它由一系列的变换矩阵 \mathbf{M}^{(k)} 组成。这个 \mathcal{M} 的作用就是,把来自source中的样本通过线性变换,和target进行对齐。经过一些设计上的考虑,问题最终表示成了



上面这个式子对 \mathcal{M} 加了一些约束使得这个式子好求解。带有 \lambda 的这一项作用是衡量 \mathcal{M} 对source的重构误差。

其实作者提的这个算法就是对ICCV-13的那个subspace alignment的扩展版。

学习优化

对上面问题的优化求解,作者用了交替优化策略。最终可以被很好地进行求解。这部分篇幅较多,不再介绍。

实验

实验用了两个公认的数据集:office+caltech,以及ImageNet+VOC2007。只不过作者没有采用传统特征,用了VGG-16的CONV5_3特征。样本选择上,对于offiice+caltech数据集,随机从每一个class选择20个sample(如果是webcam或dslr则选8个);对于ImageNet+VOC2007,按照文章提供的方法进行了选择。

从对比实验效果来看,作者的这个方法又快又好地完成了任务。详细实验过程和结果请看原文。

总结

其实这个文章咋一看上去还是挺吸引人的,但是细读下来,感觉比如好的motivation并没有。一句话来说,就是把传统基于矩阵的那一套方法扩展到了tensor上,效果还很好。这是第一篇基于tensor做的文章,以后肯定会越来越多。比如distribution adaptation是不是可以和tensor结合?

可喜的是作者在Github上开源了本文的代码,全是用Matlab写的:github.com/poppinace/TA

References

[1] 本文讲解的文章:Hao Lu, Lei Zhang, et al. When Unsupervised Domain Adaptation Meets Tensor Representations. ICCV 2017.

[2] ICCV-13的subspace alignment文章:Fernando B, Habrard A, Sebban M, et al. Unsupervised visual domain adaptation using subspace alignment[C]//Proceedings of the IEEE international conference on computer vision. 2013: 2960-2967.

[3] 更多tensor的介绍:

张量分解-张量介绍 - 熊伏枥个人空间

张量分解-Tucker分解 - 熊伏枥个人空间

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

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

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

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

文章被以下专栏收录