摘要
在本文中,我们研究了一种新的转移学习问题,称为远域迁移学习(DDTL)。与现有的迁移学习问题不同,假设源域和目标域之间存在密切关系,在DDTL问题中,目标域可能与源域完全不同。例如,源域对面部图像进行分类,但目标域区分平面图像。受人类认知过程的启发,通过逐渐学习中间概念可以连接两个看似无关的概念,我们提出了一种选择性学习算法(SLA),用监督自动编码器或监督卷积自动编码器作为处理不同类型的基础模型来解决DDTL问题。投入直观地,SLA算法从中间域逐渐选择有用的未标记数据作为桥梁,以打破用于在两个远域之间传递知识的大分布间隙。对图像分类问题的实证研究证明了所提算法的有效性,并且在某些任务上,分类精度方面的改进比“非转移”方法高达17%。
问题定义
- 源域: S = { ( x S 1 , y S 1 ) , ⋯   , ( x S n S , y S n S ) } \mathcal{S}=\{(x_\mathcal{S}^1,y_\mathcal{S}^1),\cdots,(x_\mathcal{S}^{n_\mathcal{S}},y_\mathcal{S}^{n_\mathcal{S}})\} S={(xS1,yS1),⋯,(xSnS,ySnS)},其中有 n S n_\mathcal{S} nS个数据,足够源域做精确的分类。
- 目标域: T = { ( x T 1 , y T 1 ) , ⋯   , ( x T n T , y T n T ) } \mathcal{T}=\{ (x_\mathcal{T}^1,y_\mathcal{T}^1),\cdots,(x_\mathcal{T}^{n_\mathcal{T}},y_\mathcal{T}^{n_\mathcal{T}}) \} T={(xT1,yT1),⋯,(xTnT,yTnT)},仅有 n T n_\mathcal{T} nT个数据,不够训练好的分类器。
- 中间域: I = { x I 1 , ⋯   , x I n I } \mathcal{I}=\{ x^1_\mathcal{I},\cdots, x^{n_\mathcal{I}}_\mathcal{I}\} I={xI1,⋯,xInI},有足够多的( n I n_\mathcal{I} nI个)无标记数据。
算法
1. Auto-Encoders and Its Variant
- encoding function编码函数:把输入数据映射成隐藏的表示(hidden representation)即, h = f e ( x ) h=f_e(x) h=fe(x).
- decoding function解码函数:重构 x x x即, x ^ ≈ f d ( h ) \hat{x} \approx f_d(h) x^≈fd(h).
- 重构误差: min f e , f d ∑ i = 1 n ∥ x ^ i − x i ∥ 2 2 \min_{f_e,f_d}\sum_{i=1}^n \Vert \hat{x}_i-x_i \Vert^2_2 fe,fdmini=1∑n∥x^i−xi∥22
2. Instance Selection via Reconstruction Error(通过重构误差的实例选择)
要从中间域中选择有用的实例,并从源域中删除目标域的不相关实例,我们建议通过最小化源域和中间域中所选实例的重建错误来学习一对编码和解码函数, 和目标域中的所有实例同时进行。 要最小化的目标函数表述如下:
T
1
=
(
f
e
,
f
d
,
v
S
,
v
T
)
=
1
n
S
∑
i
=
1
n
S
v
S
i
∥
x
^
S
i
−
x
S
i
∥
2
2
+
1
n
I
∑
i
=
1
n
I
v
I
i
∥
x
^
I
i
−
x
I
i
∥
2
2
+
1
n
T
∑
i
=
1
n
T
v
T
i
∥
x
^
T
i
−
x
T
i
∥
2
2
+
R
(
v
s
,
v
T
)
\mathscr{T}_1=(f_e,f_d,v_S,v_T)= \frac{1}{n_S}\sum_{i=1}^{n_\mathcal{S}} v^i_S \Vert \hat{x}^i_S-x^i_S \Vert^2_2+\frac{1}{n_I}\sum_{i=1}^{n_\mathcal{I}} v^i_I \Vert \hat{x}^i_I-x^i_I \Vert^2_2 + \frac{1}{n_T}\sum_{i=1}^{n_\mathcal{T}} v^i_T \Vert \hat{x}^i_T-x^i_T \Vert^2_2 + R(v_s,v_T)
T1=(fe,fd,vS,vT)=nS1i=1∑nSvSi∥x^Si−xSi∥22+nI1i=1∑nIvIi∥x^Ii−xIi∥22+nT1i=1∑nTvTi∥x^Ti−xTi∥22+R(vs,vT)其中
v
S
=
(
v
S
1
,
⋯
 
,
v
S
n
S
)
T
,
v
I
=
(
v
I
1
,
⋯
 
,
v
I
n
I
)
T
v_S=(v^1_S,\cdots,v^{n_S}_S)^T,v_I=(v^1_I,\cdots,v^{n_I}_I)^T
vS=(vS1,⋯,vSnS)T,vI=(vI1,⋯,vInI)T ,并且
v
S
i
,
v
I
j
∈
{
0
,
1
}
v_S^i,v_I^j\in\{0,1\}
vSi,vIj∈{0,1}是选择指示数,对源域中实例
i
i
i 和目标域实例
j
j
j。
R
(
v
s
,
v
T
)
R(v_s,v_T)
R(vs,vT)是
v
S
,
v
T
v_S,v_T
vS,vT的正则项,是为了避免无效的答案(即,所有的
v
S
,
v
T
v_S,v_T
vS,vT值都是0
R
(
v
s
,
v
T
)
=
−
λ
S
n
S
∑
i
=
1
n
S
v
S
i
−
λ
I
n
I
∑
i
=
1
n
I
v
I
i
R(v_s,v_T)=-\frac{\lambda_S}{n_S}\sum_{i=1}^{n_S}v_S^i-\frac{\lambda_I}{n_I}\sum_{i=1}^{n_I}v_I^i
R(vs,vT)=−nSλSi=1∑nSvSi−nIλIi=1∑nIvIi其中
λ
S
,
λ
I
\lambda_S,\lambda_I
λS,λI是衡量两者重要性的参数。
3. Incorporation of Side Information(合并辅助信息)
T 1 \mathscr{T}_1 T1可以通过 v S , v T v_S,v_T vS,vT,从源域和中间域中,挑选出对目标域有用的样本。并且同时通过编码函数 f e f_e fe,在不同的域中学习出高层次的数据隐含表示(high-level hidden representations).但是隐含表示可能与目标域的分类任务不相关。为了解决这个问题,我们需要合并从不同域中学习到的隐含表示。
- 在源域和目标域中,标记数据可以作为辅助信息
- 中间域没有标签,所以中间域的预测值作为辅助信息
用预测值的置信度来引导隐含表示的学习
T 2 = 1 n S ∑ i = 1 n S v S i ℓ ( y S i , f c ( h S i ) ) + 1 n T ∑ i = 1 n T ℓ ( y T i , f c ( h T i ) ) + 1 n I ∑ i = 1 n I v I i g ( f c ( h I i ) ) \mathscr{T}_2=\frac{1}{n_S}\sum_{i=1}^{n_S}v_S^i \ell(y^i_S,f_c(h_S^i))+\frac{1}{n_T}\sum_{i=1}^{n_T} \ell(y^i_T,f_c(h_T^i))+\frac{1}{n_I}\sum_{i=1}^{n_I}v_I^i g(f_c(h_I^i)) T2=nS1i=1∑nSvSiℓ(ySi,fc(hSi))+nT1i=1∑nTℓ(yTi,fc(hTi))+nI1i=1∑nIvIig(fc(hIi)).
其中, f c ( ⋅ ) f_c(\cdot) fc(⋅)分类函数; ∀ 0 ≤ z ≤ 1 , g ( z ) = − z ln z − ( 1 − z ) ln ( 1 − z ) \forall 0\leq z\leq 1 , g(z)=-z\ln z-(1-z)\ln (1-z) ∀0≤z≤1,g(z)=−zlnz−(1−z)ln(1−z).