类似 PCA (principal component analysis)借鉴数据降维(主成分分析 PCA,principal component analysis)、局部线性嵌入(LLE,locally linear embedding)、拉普拉斯特征映射(Laplacian eigen-map)的思想。
TCA针对domain adaptation问题中,源域和目标域处于不同数据分布时,将两个领域的数据一起映射到一个高维的再生核希尔伯特空间。在此空间中,最小化源和目标的数据距离,同时最大程度地保留它们各自的内部属性。高维空间映射,把特征空间稀疏化以后再分类。
TCA的假设是什么呢?很简单:源域和目标域的边缘分布是不一样的,也就是说,,所以不能直接用传统的机器学习方法。但是呢,TCA假设存在一个特征映射$ \phi$,使得映射后数据的分布
,更进一步,条件分布
。这不就行了么。好了,我们现在的目标是,找到这个合适的$\phi$,一作映射,这事就解决了。
具体
但是世界上有无穷个这样的,也许终我们一生也无法找到这样的
。庄子说过,吾生也有涯,而知也无涯,以有涯随无涯,殆已!我们肯定不能通过穷举的方法来找
的。那么怎么办呢?
回到迁移学习的本质上来:最小化源域和目标域的距离。好了,我们能不能先假设这个是已知的,然后去求距离,看看能推出什么呢?
更进一步,这个距离怎么算?世界上有好多距离,从欧氏距离到马氏距离,从曼哈顿距离到余弦相似度,我们需要什么距离呢?TCA利用了一个经典的也算是比较“高端”的距离叫做最大均值差异(MMD,maximum mean discrepancy)。这个距离的公式如下:
看着很高端(实际上也很高端)。MMD是做了一件什么事呢?简单,就是求映射后源域和目标域的均值之差嘛。
TCA是怎么做的呢,这里就要感谢矩阵了!我们发现,上面这个MMD距离平方展开后,有二次项乘积的部分!那么,联系在SVM中学过的核函数,把一个难求的映射以核函数的形式来求,不就可以了?于是,TCA引入了一个核矩阵:
这样的好处是,直接把那个难求的距离,变换成了下面的形式:
这里的W矩阵通过特征分解或者奇异值分解得到更低维度矩阵。
TCA最后的优化目标是:
这个式子下面的条件是什么意思呢?那个min的目标我们大概理解,就是要最小化源域和目标域的距离,加上W的约束让它不能太复杂。那么下面的条件是什么呢?下面的条件就是要实现第二个目标:维持各自的数据特征。TCA要维持的是什么特征呢?文章中说是variance,但是实际是scatter matrix,就是数据的散度。就是说,一个矩阵散度怎么计算?对于一个矩阵,它的scatter matrix就是
。这个
就是上面的中心矩阵啦。
解决上面的优化问题时,作者又求了它的拉格朗日对偶。最后得出结论,W的解就是的前m个特征值!简单不?数学美不美?然而,我是想不出的呀!
最后说一个TCA的优缺点。优点是实现简单,方法本身没有太多的限制,就跟PCA一样很好用。缺点就是,尽管它绕开了SDP问题求解,然而对于大矩阵还是需要很多计算时间。主要消耗时间的操作是,最后那个伪逆的求解以及特征值分解。在我的电脑上(i7-4790CPU+24GB内存)跑2000*2000的核矩阵时间大概是20秒。