本文是对《Adaptation Regularization: A General Framework for Transfer Learning》进行学习。
1 问题引入
之前论文的侧重点均是学习一种映射,通过该映射可以把源域数据和目标域数据拉近,然后拿映射后的源域数据训练分类器,并将分类器应用到目标域数据上,这些论文中学习映射和训练分类器是两个独立的过程。ARTL则换了一个思路,给出了一个框架,将学习映射和训练分类器一起进行。
2 ARTL
首先我们来看一下ARTL的目标函数:
f = a r g m i n f ∈ H K ∑ i = 1 n l ( f ( x i ) , y i ) + σ ∣ ∣ f ∣ ∣ K 2 + λ D f , K ( J s , J t ) + γ M f , K ( P s , P t ) f=argmin_{f\in H_{K}}\sum_{i=1}^{n}l(f(x_{i}),y_{i})+\sigma ||f||_{K}^{2}+\lambda D_{f,K}(J_{s},J_{t})+\gamma M_{f,K}(P_{s},P_{t}) f=argminf∈HK∑i=1nl(f(xi),yi)+σ∣∣f∣∣K2+λDf,K(Js,Jt)+γMf,K(Ps,Pt)(1)
接下来的内容将围绕以下三个方面进行展开。
2.1 结构风险最小化
我们先看(1)式中的前两项,很容易可以看出这是一个结构风险最小化的内容,第一项是经验风险,第二项是正则化,以限制模型复杂度。在论文中采用了两种比较常用的损失函数,SVM中的合页损失函数: m a x ( 0 , 1 − y i f ( x i ) ) max(0,1-y_{i}f(x_{i})) max(0,1−yif(xi)),以及RLS中的平方误差函数: ( y i − f ( x i ) ) 2 (y_{i}-f(x_{i}))^{2} (yi−f(xi))2,在后面的内容会进行介绍。
2.2 联合分布适应
其实这部分的思想和JDA是一样的,两篇论文的一作也是同一个人。
首先是边缘分布对齐,之前的论文中是用MMD来衡量两个域之间距离,式子如下:
M M D H 2 ( D s , D ( t ) ) = ∣ ∣ 1 n ∑ i = 1 n ϕ ( x i ) − 1 m ∑ j = n + 1 n + m ϕ ( x j ) ∣ ∣ H 2 MMD_{H}^{2}(D_{s},D(t))=||\frac{1}{n}\sum_{i=1}^{n}\phi (x_{i})-\frac{1}{m}\sum_{j=n+1}^{n+m}\phi (x_{j})||_{H}^{2} MMDH2(Ds,D(t))=∣∣n1∑i=1nϕ(xi)−m1∑j=n+1n+mϕ(xj)∣∣H2,其中 ϕ \phi ϕ将样本映射到RKHS,下标H表示RKHS,n和m分别为源域和目标域的样本数量,上式表示的是映射后的RKHS中两个域之间的距离。
之前的论文中,均是对上式进行最小化,来缩小两个域映射后的距离。在ARTL中没有对该距离进行缩小,而是直接缩小两个域通过分类器映射后的差异,即下式:
D f , K ( P s , P t ) = ∣ ∣ 1 n ∑ i = 1 n f ( x i ) − 1 m ∑ j = n + 1 n + m f ( x j ) ∣ ∣ H 2 D_{f,K}(P_{s},P_{t})=||\frac{1}{n}\sum_{i=1}^{n}f(x_{i})-\frac{1}{m}\sum_{j=n+1}^{n+m}f(x_{j})||_{H}^{2} Df,K(Ps,Pt)=∣∣n1∑i=1nf(xi)−m1∑j=n+1n+mf(xj)∣∣H2(2)
其中 P s , P t P_{s},P_{t} Ps,Pt表示源域和目标域的边缘分布。
同样的我们可以获得条件分布适应的公式:
D f , K ( c ) ( Q s , Q t ) = ∣ ∣ 1 n ( c ) ∑ x i ∈ D s ( c ) f ( x i ) − 1 m ( c ) ∑ x i ∈ D t ( c ) f ( x j ) ∣ ∣ H 2 D_{f,K}^{(c)}(Q_{s},Q_{t})=||\frac{1}{n^{(c)}}\sum_{x_{i}\in D_{s}^{(c)}}f(x_{i})-\frac{1}{m^{(c)}}\sum_{x_{i}\in D_{t}^{(c)}}f(x_{j})||_{H}^{2} Df,K(c)(Qs,Qt)=∣∣n(c)1∑xi∈Ds(c)f(xi)−m(c)1∑xi∈Dt(c)f(xj)∣∣H2(3)
其中上标 ( c ) (c) (c)表示类别C。
将(2)(3)合并可得到联合分布适应的目标函数:
D f , K ( J s , J t ) = D f , K ( P s , P t ) + ∑ c = 1 C D f , K c ( Q s , Q t ) D_{f,K}(J_{s},J_{t})=D_{f,K}(P_{s},P_{t})+\sum_{c=1}^{C}D_{f,K}^{c}(Q_{s},Q_{t}) Df,K(Js,Jt)=Df,K(Ps,Pt)+∑c=1CDf,Kc(Qs,Qt)(4)
这一节写得比较简略,详细内容可参照JDA那篇博客。
2.3 流形正则
其实引入流形的思想之前在SSTCA中也提到了,其思路就是如果两个点在原来的结构中比较近,那么这两个点的边缘分布和条件分布也比较相似,映射后的数据也应保持这一特性。
流形正则项如下:
M f , K ( P s , P t ) = ∑ i , j = 1 n + m ( f ( x i ) − f ( x j ) ) 2 W i j = ∑ i , j = 1 n + m f ( x i ) L i j f ( x j ) M_{f,K}(P_{s},P_{t})=\sum_{i,j=1}^{n+m}(f(x_{i})-f(x_{j}))^{2}W_{ij}=\sum_{i,j=1}^{n+m}f(x_{i})L_{ij}f(x_{j}) Mf,K(Ps,Pt)=∑i,j=1n+m(f(xi)−f(xj))2Wij=∑i,j=1n+mf(xi)Lijf(xj)(5)
其中W定义如下 W i j = { c o s ( x i , x j ) if x i ∈ N p ( x j ) ∨ x j ∈ N p ( x i ) 0 otherwise, W_{ij}=\begin{cases} cos(x_{i},x_{j}) & \text{ if } x_{i}\in N_{p}(x_{j})\vee x_{j}\in N_{p}(x_{i}) \\ 0 & \text{ otherwise, } \end{cases} Wij={
cos(xi,xj)0 if xi∈Np(xj)∨xj∈Np(xi) otherwise, (6)
我看了一下源码,这里的cos表示的应该是两个进行过标准化的样本求内积,另外 N p ( x i ) N_{p}(x_{i}) Np(xi)表示距离样本 x i x_{i} xi最近的p个点; L = I − D − 1 / 2 W D − 1 / 2 L=I-D^{-1/2}WD^{-1/2} L=I−D−1/2WD−1/2,其中D为对角矩阵, D i i = ∑ j = 1 n W i j D_{ii}=\sum_{j=1}^{n}W_{ij} Dii=∑j=1nWij。
可以看到如果两个样本比较近,那么其对应的