之前整理总结迁移学习资料的时候有网友评论,大意就是现在的类似资料大全的东西已经太多了,想更深入地了解特定的细节。从这篇文章开始我将以《小王爱迁移》为名写一系列的介绍分析性的文章,与大家共享迁移学习中的代表性方法、理论与自己的感想。由于我的水平有限,请各位多多提意见,我们一起进步。今天第一篇必须以我最喜爱的杨强老师的代表性方法 TCA 为主题!(我的第一篇文章也是基于 TCA 做的)
【我刚整理重写好的加速版 TCA 代码(matlab):jindongwang/transferlearning】
问题背景
机器学习中有一类非常有效的方法叫做降维(dimensionality reduction),用简单的话来说就是,把原来很高维度的数据(比如数据有 1000 多列)用很少的一些代表性维度来表示(比如 1000 多维用 100 维来表示)而不丢失关键的数据信息。这些降维方法多种多样,比如:主成分分析(PCA,principal component analysis)、局部线性嵌入(LLE,locally linear embedding)、拉普拉斯特征映射(Laplacian eigen-map)等。这些方法的过程大体都是一个大的矩阵作为输入,然后输出一个小矩阵。那么在迁移学习中,有没有这样的方法,通过降维来达到数据维度减少,而且能达到迁移学习目的呢?答案是显然的,就是我们要说的迁移成分分析(TCA,transfer component analysis)。看,名字就跟 PCA 很像。
TCA 最早是由香港科技大学杨强教授团队提出,首次出现在 AAAI-09 上,后来整理丰富成了一篇期刊文章,发表在 11 年的 IEEE Trans. Neural Network(现在这个期刊名字后面多了 and Learning System)上。这个方法是迁移学习领域经典性的文章,从 2011 年到现在接近 6 年过去,在 Google scholar 上引用量为 569 次,并且在持续增长。
简介
TCA 属于基于特征的迁移学习方法。那么,它做了一件什么事呢?用通俗的语言来说,跟 PCA 很像:PCA 是一个大矩阵进去,一个小矩阵出来,TCA 呢,是两个大矩阵进去,两个小矩阵出来。从学术角度讲,TCA 针对 domain adaptation 问题中,源域和目标域处于不同数据分布时,将两个领域的数据一起映射到一个高维的再生核希尔伯特空间。在此空间中,最小化源和目标的数据距离,同时最大程度地保留它们各自的内部属性。直观地理解就是,在现在这个维度上不好最小化它们的距离,那么我就找个映射,在映射后的空间上让它们最接近,那么我不就可以进行分类了吗?
我一直强调,任何问题都要看它的本质,TCA 本质是什么呢?完成迁移学习的要求。迁移学习的要求是什么呢?让源域和目标域距离尽可能小呗。