Transfer component analysis
论文
Pan, S. J., Tsang, I. W., Kwok, J. T., and Yang, Q. (2011). Domain adaptation via transfer component analysis. IEEE TNN, 22(2):199–210.
数据分布自适应
由于源域和目标域的数据概率分布不同,通过变换将不同的数据分布的距离拉近。
边缘分布自适应
边缘分布自适应,数据整体不相似,边缘分布自适应方法的目标是减小源域和目标域的边缘概率分布的距离,从而完成迁移学习。
边缘分布是指在多维随机变量中,只包含其中部分变量的概率分布。区别于条件概率分布。
边缘分布自适应的方法称为迁移成分分析(Transfer Component Analysis,TCA)。TCA 假设存在一个特征映射 ϕ,使得映射后数据的分布 P(ϕ(xs)) ≈ P(ϕ(xt))。TCA 假设如果边缘分布接近,那么两个领域的条件分布也会接近,即条件分布 P(ys|ϕ(xs)) ≈ P(yt|ϕ(xt))。
TCA的本质是最小化源域和目标域的距离,机器学习中的距离有很多,包括欧氏距离、马氏距离、曼哈顿距离、余弦相似度等,TCA中使用的是最大均值差异MMD。MMD距离的计算公式为:
其中n1,n2分别表示源域和目标域的样本数。简单来讲,MMD 就是求映射后源域和目标域的均值的差。
因为在涉及到空间变换以及后面的操作过程中经常会使用到核技巧(核函数),此处补充核函数的知识,之前已经学习整理了核希尔伯特空间的知识,关于核函数的知识整理是在该基础上进一步学习的。所以需要把再生核希尔伯特空间与核技巧之间的关系理解清楚。
核函数,最开始在SVM建立非线性学习器中使用,非线性分类器的建立理论上包括两个步骤,(1)首先使用一个非线性映射将数据变换到一个特征空间F,(2)然后再特征空间中使用线性学习器进行分类。引入核函数的目的就是将上述两个步骤简化为一个步骤,以达到减小计算开销的目的,核函数的方法实现为:在特征空间中直接计算内积<ϕ(xi),ϕ(x)>,就像在原始输入点的函数一样,就有可能将两个步骤融合到一起建立一个非线性的学习器,此方法称为核函数方法。将内积替换成核函数的方法称为核技巧(kernel trick)。
简单粗暴的,我们给出核函数的定义,假设核函数为k,对所有的x,z∈X,满足k(x,z)=<ϕ(x),ϕ(z)>,此处ϕ(·)表示原始输入空间X到内积空间F的映射。
那么,如果不使用核技巧,我们就需要先计算线性映射ϕ(x1)和ϕ(x2),然后计算他们的内积,而使用核技巧之后,就可以直接计算出ϕ(x1)和ϕ(x2)的内积,即<ϕ(x1),ϕ(x2)>=k(x1,x2)。
核函数的选取并不唯一,常用的核函数有高斯核、多项式核、线性核、sigmoid核等。此处我们仍以SVM为例对核函数进行分析,对于原始数据线性不可分问题,我们往往会考虑使用核技巧,但是在使用核技巧时,核函数的选取会有很大的变数,如果不小心选择了不合适的核函数,也就i意味着将数据映射到一个不合适的特征空间中,很有可能会导致分类器的性能不佳。并且核函数需要满足下面的定理:假设X为输入空间,k(·,·) 是定义在XxX上的对称函数,则k是核函数的充要条件是对于任意数据D={x1,x2,…,xm},核矩阵K总是半正定的。(SVM中的核技巧可以参考周志华的《机器学习》)。
最后,回到本节开始时我们讲到的再生核希尔伯特空间与核技巧之间的关系,可以理解为定义了一个核函数就相当于定义了一个再生核希尔伯特空间,由于核函数的再生性(应该是指 k(x,z)=<ϕ(x),ϕ(z)>),我们就不用再去计算高维空间中的内积,只需要计算核函数就可以了,这样就达到了降低计算量的目的。
讲完希尔伯特空间与核函数之后,我们现在再回到前面的TCA(迁移成分分析)。前面我们提到,迁移学习的本质就是要最小化源域与目标域的距离,TCA的思想是通过特征映射来使映射后的数据分布接近,现在我们先假设这个特征映射 ϕ 是已知的,那么我们该怎么求距离呢?我们知道距离的定义方式有很多,包括欧氏距离、马氏距离、曼哈顿距离等,在这里,TCA使用的是最大均值差异(maxmium mean discrepancy,MMD)。MMD距离的计算公式为:
其中n1,n2分别表示源域和目标域的样本数。用人话来说,MMD 就是求映射后源域和目标域的均值的差。进展到这里,前面说过,我们是假设特征映射ϕ 是已知的,也就是说,实际上我们还是不知道这个 ϕ ,怎么样才能找到这个 ϕ 呢,这就要用到前面我们补充的希尔伯特空间以及核函数的知识,ϕ 只是TCA过程中的一步,根据已有的研究,我们可以根部不用求这个映射ϕ ,说人话,我们就是用核函数来表示这个很难求的映射 ϕ 。
现在我们在TCA中使用核技巧,前面的MMD距离进行平方展开后,展开式中有平方项和二次项乘积组成。首先,TCA先引入一个核矩阵K:
MMD矩阵为L:
这样前面的MMD距离公式就可以表示为:
t
r
(
K
L
)
−
λ
∗
t
r
(
K
)
tr(KL)-\lambda*tr(K)
tr(KL)−λ∗tr(K). 我们的目的就是要最小化这个距离,到这里,这个问题其实就是可解的了,但是它是一个数学中半定规划(SDP)问题(手动狗头,关于这个半定规划,目前还没有研究透彻,以后研究完了再回来补充),总之,在这里我们知道用计算机来求解这个半定规划问题是非常耗时的就可以了,为了解决这问题,TCA的提出者采用了下面的非常巧妙的方法。
TCA的作者使用降维的方法来构造结果,使用一个低维矩阵W:
对该公式进行解释:核矩阵K可以分解为:
K
=
(
K
K
−
1
/
2
)
(
K
−
1
/
2
K
)
K=(KK^{-1/2})(K^{-1/2}K)
K=(KK−1/2)(K−1/2K) . 在作者的原文中给出,
W
~
\tilde{W}
W~是一个(n1+n2)*m 维的变换矩阵,即特征映射 ϕ 。
再捋一下思路,
(1)TCA的目标是将所有数据以核矩阵表示,并最小化MMD距离
t
r
(
K
L
)
−
λ
∗
t
r
(
K
)
tr(KL)-\lambda*tr(K)
tr(KL)−λ∗tr(K), 以及最大化数据方差;
(2)我们将核矩阵K进行分解,称为经验核映射:
K
=
(
K
K
−
1
/
2
)
(
K
−
1
/
2
K
)
K=(KK^{-1/2})(K^{-1/2}K)
K=(KK−1/2)(K−1/2K) .
然后利用
W
~
\tilde{W}
W~将经验核映射特征转换为m维空间,核矩阵表示为:
其中
W
~
\tilde{W}
W~是一个
(
n
1
+
n
2
)
∗
m
(n_{1}+n_{2}) *m
(n1+n2)∗m 维的变换矩阵,并且
这样任意两个xi和xj之间对应的核值就是
所以这里的理解是原空间中定义一个核函数,并对应一个核矩阵K,然后通过特征变换矩阵
W
~
\tilde{W}
W~ 将原特征转换为m空间,原核矩阵在m维空间中表示为新核矩阵
K
~
\tilde{K}
K~
(3)进一步,我们利用
K
~
\tilde{K}
K~ 与 K 的关系将MMD 距离表示为:
(4)更加抽象,我先将结果写出来,我们的目标是最小化两个域之间的MMD距离,同时特征变换 ϕ 还应该保留对目标监督学习任务有用的数据属性,因此需要最大限度的保留数据的方差,所以将投影样本的方差表示为:
H 是中心矩阵,1是值为1的列向量,I是单位矩阵,这一步是参考了PCA、KPCA的方法.
(5)整理之后,我们将最后的核学习问题表示为:
其中,μ>0是一个平衡参数,
t
r
(
W
T
W
)
tr(W^TW)
tr(WTW)是正则化项,用来控制W的复杂性;约束条件的目的是维持各自数据的特征属性,用于后面的学习任务,在步骤(4)中我们说要最大化数据的方差就是这个意思,此处我们换一种解释,将最大化数据方差理解为维持数据的散度,直接给出定义:对于矩阵A的散度就是
A
H
A
T
AHA^T
AHAT.
(6)对于步骤(5)中的最优化问题,作者在论文中又进一步给出了它的拉格朗日对偶问题,此处我们直接给出结论,该最优化问题W的解就是
W
=
(
K
L
K
+
µ
I
)
−
1
K
H
K
W= (KLK+µI)^{-1}KHK
W=(KLK+µI)−1KHK的前m个特征值。
到这里TCA的理论部分的任务就算基本完成了。
TCA步骤总结:输入两个特征矩阵,分别是表示源域和目标域,先求出矩阵L、H,然后选择合适的核函数进行映射计算K,接着求W= (KLK+µI)−1KHK 的前m个特征值。这样我们就得到了源域和目标域的降维后的数据,之后就可以基于此使用传统的机器学习方法进行训练。
TCA 伪代码
参考
https://blog.csdn.net/qq_40824311/article/details/102624859