迁移学习——Distant Domain Transfer Learning

《Distant Domain Transfer Learning》学习
Thirty


摘要

与现有的假设源域和目标域之间存在密切关系的迁移学习问题不同,在分布式时序分类问题中,目标域可以与源域完全不同。
受人类认知过程的启发,两个看似无关的概念可以通过逐步学习中间概念来连接,我们提出了一种选择性学习算法(SLA)来解决DDTL问题,其中监督自动编码器或监督卷积自动编码器作为处理不同类型输入的基础模型。
直观地说,SLA算法从中间域中逐渐选择有用的未标记数据作为桥梁,以打破两个遥远域之间传递知识的巨大分布差距。对图像分类问题的实证研究表明了该算法的有效性,在某些任务中,分类精度比“非转移”方法提高了17%。

一、介绍

成功的知识转移的一个基本要求是源域和目标域应该密切相关。这种关系可以是相关实例、特征或模型的形式,并通过KL散度或A-Distance测量。
在这里插入图片描述

对于头部的标签,我们可以建立准确的学习者,因为有大量的标记数据,但在尾部,由于标记数据稀缺,每个标签的学习者通常没有令人满意的表现。
在这种情况下,我们可以通过重用头部的知识,采用转移学习算法为尾部的标签构建准确的分类器。当尾部的标签与头部的标签相关时,这种策略通常效果很好。
DDTL问题至关重要,因为解决它可以在很大程度上扩展迁移学习的应用范围,并帮助尽可能多地重用以前的知识。
然而,这是一个困难的问题,因为源域和目标域之间的分布差距很大。
人们通过一个或多个中间概念作为桥梁,在两个看似无关的概念之间传递知识。

沿着这条路线,有一些作品旨在解决DDTL问题。例如Tan(2015)引入带注释的图像,在源域文本数据与目标域图像数据之间建立知识转移的桥梁,Xie(2016)利用一些夜间光强信息作为中间桥梁,通过转移来自对象分类任务的知识,基于白天的卫星图像进行贫困预测。
这些研究假设只有一个中间域,中间域中的所有数据都是有用的。
然而,在某些情况下,远域只能通过多个中间域进行关联。仅仅利用一个中间领域是不足以帮助跨长距离领域转移知识的。
此外,给定多个中间域,每个中间域的数据很可能只有一个子集对目标域有用,因此我们需要一个自动选择机制来确定子集。
我们使用重构误差作为两个域之间距离的度量。
即,如果基于目标域训练的模型,源域中某些数据点的数据重构误差较小,则我们认为源域中这些数据点对目标域是有帮助的。
在此基础上,我们提出了一种针对DDTL问题的选择性学习算法(SLA),该算法同时从源域和中间域选择有用的实例,学习所选数据的高级表示,并训练针对目标域的分类器。
SLA的学习过程是一个迭代过程,有选择地从中间域添加新的数据点,并删除源域中无用的数据,逐步修改源特定模型,向目标特定模型转变,直到满足某个停止条件
本文的贡献有三个方面。

  1. 首先,据我们所知,这是第一个使用混合中间域来研究DDTL问题的工作。
  2. 其次,我们提出了一种DDTL的SLA算法。
  3. 第三,我们在多个真实数据集上进行了大量的实验,以证明所提算法的有效性。

二、相关工作

典型的迁移学习算法包括实例加权方法(Dai et al. 2007),特征映射方法(Pan et al. 2011),模型适应方法(Aytar和Zisserman 2011)。
然而,这些方法不能处理DDTL问题,因为它们假设源域和目标域在概念上是接近的。

在TTL中,只有一个中间域,由用户手动选择,并且使用所有的中间域数据。
与TTL不同的是,我们的工作从多个中间域的混合中自动选择子集作为源域和目标域之间的桥梁。

TLMS和我们的工作有两个不同之处。首先,TLMS中的所有源域都有足够的标记数据。其次,TLMS中的所有源域都接近目标域。

STL和我们的工作有两个不同之处。首先,STL中没有所谓的源域。其次,STL的目标是使用来自不同域的所有未标记数据来帮助目标域的学习,而我们的工作旨在从中间域识别有用的实例子集,以连接源域和目标域。

我们的工作与SSA有三方面的不同。

  1. 首先,在SSA中,无标记数据和有标记数据都来自同一个域,而在我们的工作中,有标记的数据要么来自源域,要么来自目标域,无标记数据来自中间域的混合,中间域的分布可能非常不同。
  2. 其次,SSA使用所有有标签和无标签的数据进行学习,而我们的工作则从中间域中选择性地选择一些无标签的数据,并从源域中移除一些有标签的数据,以辅助目标域中的学习。
  3. 第三,SSA没有卷积层,而我们的工作在输入是矩阵或张量时使用卷积滤波器。

三、问题定义

我们用 S = { ( x S 1 , y S 1 ) , ⋅ ⋅ ⋅ , ( x S n S , y S n S ) } S = \{(x^1_S, y^1_S),···,(x^{n_S}_S, y^{n_S}_S)\} S={(xS1,yS1)⋅⋅⋅(xSnS,ySnS)}表示大小为 n S n_S nS的源域标记数据,认为它足够训练源域的精确分类器,用 T = { ( x T 1 , y T 1 ) , ⋅ ⋅ ⋅ , ( x T n T , y T n T ) } T = \{(x^1_T, y^1_T),···,(x^{n_T}_T, y^{n_T}_T)\} T={(xT1,yT1)⋅⋅⋅(xTnT,yTnT)}表示大小为 n T n_T nT的目标域标记数据,认为它不足以学习目标域的精确分类器。此外,我们用 I = { x I 1 , ⋅ ⋅ ⋅ , x I n I } I = \{x^1_I,···,x^{n_I}_I\} I={xI1⋅⋅⋅xInI}表示多个中间域的未标记数据的混合物,其中假设 n I n_I nI足够大。
在这项工作中,领域对应于特定分类问题的概念或类,例如从图像中识别人脸或飞机。在不丧失一般性的前提下,我们假设源域和目标域的分类问题都是二元的。所有的数据点都应该位于同一个特征空间中。设 p S ( x ) 、 p S ( y ∣ x ) 、 p S ( x , y ) p_S(x)、p_S(y|x)、p_S(x, y) pS(x)pS(yx)pS(x,y)分别为源域数据的边际分布、条件分布和联合分布, p T ( x ) 、 p T ( y ∣ x ) 、 p T ( x , y ) p_T (x)、p_T (y|x)、p_T (x, y) pT(x)pT(yx)pT(x,y)为目标域的并行定义, p I ( x ) p_I(x) pI(x)为中间域的边际分布。在DDTL问题上,我们有
p T ( x ) ≠ p S ( x ) , p T ( x ) ≠ p I ( x ) , a n d p S ( y ∣ x ) ≠ p T ( y ∣ x ) p_T(x)\ne p_S(x),p_T(x)\ne p_I(x),and\quad p_S(y|x)\ne p_T(y|x) pT(x)=pS(x),pT(x)=pI(x),andpS(yx)=pT(yx)
DDTL的目的是利用中间域的未标记数据在原本相距较远的源和目标域之间建立桥梁,并利用桥梁将源域的监督知识转移到目标域,训练出针对目标域的准确分类器。

四、选择性学习算法

4.1自动编码器及其变体

自动编码器是一种无监督前馈神经网络,它有一个输入层、一个或多个隐藏层和一个输出层。它通常包括两个过程:编码和解码。
给定一个输入 x ∈ R q x\in \mathbb{R}^q xRq,自动编码器首先通过编码函数 f e ( ⋅ ) f_e(·) fe()对其进行编码,将其映射到一个隐藏的表示,然后通过解码函数 f d ( ⋅ ) f_d(·) fd()对其进行解码,重构x。自动编码器的过程可以总结为
编码: h = f e ( x ) h=f_e(x) h=fe(x),解码: x ^ = f d ( h ) \hat x=f_d(h) x^=fd(h)
其中 x ^ \hat x x^是近似 x x x的重构输入。编码和解码函数对 f e ( ⋅ ) f_e(·) fe() f d ( ⋅ ) f_d(·) fd()的学习是通过最小化所有训练数据的重构误差来完成的,即 min ⁡ f e , f d ∑ i = 1 n ∥ x ^ i − x i ∥ 2 2 \min_{f_e,f_d}\sum^n_{i=1}\|\hat x_i-x_i\|^2_2 minfe,fdi=1nx^ixi22
学习编码和解码函数对后,输入 x x x的编码函数的输出,即 h = f e ( x ) h=f_e(x) h=fe(x)被认为是 x x x的高级和稳健表示。
注意,自动编码器接受一个向量作为输入。当一个矩阵或张量(比如图像)表示的输入实例被提交给一个自动编码器时,该实例的空间信息可能会被丢弃。在这种情况下,更需要卷积自编码器,它是自动编码器的一个变体,通过添加一个或多个卷积层来捕获输入,以及一个或多个相应的反卷积层来生成输出。

4.2通过重构误差进行实例选择

在实践中,由于源域和目标域距离较远,可能只有源域数据的一个子集对目标域有用。在中间区域的情况是相似的。因此,为了从中间域中选择有用的实例,并为目标域从源域中移除不相关的实例,我们提出通过最小化源域和中间域中所选实例以及目标域中所有实例的重构误差来学习一对编码和解码函数。所要最小化的目标函数表达式为:
J 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 ∥ x ^ T i − x T i ∥ 2 2 + R ( v S , v I ) (1) \begin{aligned} \mathcal{J}_{1}\left(f_{e}, f_{d}, \boldsymbol{v}_{S}, \boldsymbol{v}_{T}\right)=& \frac{1}{n_{S}} \sum_{i=1}^{n_{S}} v_{S}^{i}\left\|\hat{\boldsymbol{x}}_{S}^{i}-\boldsymbol{x}_{S}^{i}\right\|_{2}^{2}+\frac{1}{n_{I}} \sum_{i=1}^{n_{I}} v_{I}^{i}\left\|\hat{\boldsymbol{x}}_{I}^{i}-\boldsymbol{x}_{I}^{i}\right\|_{2}^{2} \\ &+\frac{1}{n_{T}} \sum_{i=1}^{n_{T}}\left\|\hat{\boldsymbol{x}}_{T}^{i}-\boldsymbol{x}_{T}^{i}\right\|_{2}^{2}+R\left(\boldsymbol{v}_{S}, \boldsymbol{v}_{I}\right) \end{aligned}\tag{1} J1(fe,fd,vS,vT)=nS1i=1nSvSi x^SixSi 22+nI1i=1nIvIi x^IixIi 22+nT1i=1nT x^TixTi 22+R(vS,vI)(1)
其中 x ^ S i \hat{\boldsymbol{x}}_{S}^{i} x^Si x ^ I i \hat{\boldsymbol{x}}_{I}^{i} x^Ii x ^ T i \hat{\boldsymbol{x}}_{T}^{i} x^Ti是基于自动编码器的 x S i \boldsymbol{x}_{S}^{i} xSi, x I i \boldsymbol{x}_{I}^{i} xIi x T i \boldsymbol{x}_{T}^{i} xTi的重构,
v S = ( v S 1 , ⋅ ⋅ ⋅ , v S n S ) T , v I = ( v I 1 , ⋅ ⋅ ⋅ , v I n S ) T ,和 v S i , v I j ∈ { 0 , 1 } \boldsymbol{v}_{S} = (v^1_{S},···,v^{n_S}_{S})^T,\boldsymbol{v}_{I} = (v^1_{I},···,v^{n_S}_{I})^T,和v^i_S, v^j_ I\in\{0,1\} vS=(vS1⋅⋅⋅vSnS)TvI=(vI1⋅⋅⋅vInS)T,和vSi,vIj{0,1}分别是源域中第 i i i个实例和中间域中第 j j j个实例的选择指标。
当值为1时,选择对应的实例,否则不选择。目标中的最后一项 R ( v S , v I ) R\left(\boldsymbol{v}_{S}, \boldsymbol{v}_{I}\right) R(vS,vI)是对 v S \boldsymbol{v}_{S} vS v I \boldsymbol{v}_{I} vI的正则化项,通过设置 v S \boldsymbol{v}_{S} vS v I \boldsymbol{v}_{I} vI的所有值为零来避免平凡解。本文将 R ( v S , v I ) R\left(\boldsymbol{v}_{S}, \boldsymbol{v}_{I}\right) R(vS,vI)定义为
R ( v S , v I ) = − λ S n S ∑ i = 1 n S v S i − λ I n I ∑ i = 1 n I v I i R\left(\boldsymbol{v}_{S}, \boldsymbol{v}_{I}\right)=-\frac{\lambda_S}{n_S}\sum^{n_S}_{i=1}v^i_S-\frac{\lambda_I}{n_I}\sum^{n_I}_{i=1}v^i_I R(vS,vI)=nSλSi=1nSvSinIλIi=1nIvIi
将这个术语最小化相当于鼓励尽可能多地从源和中间域选择实例。两个正则化参数 λ S \lambda_S λS λ I \lambda_I λI控制了正则项的重要性。请注意,选择了更有用的实例,通过自动编码器可以学习到更健壮的隐藏表示。

4.3辅助信息的合并

通过解决最小化问题(1),可以通过 v S \boldsymbol{v}_{S} vS v T \boldsymbol{v}_{T} vT从源域和中间域中选择目标域的有用实例,并通过编码函数 h = f e ( x ) h=f_e(x) h=fe(x)同时学习不同域数据的高级隐藏表示。
然而,学习过程是在一种无监督的方式。因此,学习到的隐藏表示可能与目标域的分类问题无关。
这促使我们在学习不同领域的隐藏表示时加入了辅助信息。
具体来说,我们建议通过最小化以下函数,将辅助信息纳入到学习中:
J 2 ( f c , f e , f d ) = 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 ) ) (2) \begin{aligned} \mathcal{J}_{2}\left(f_{c}, f_{e}, f_{d}\right)=& \frac{1}{n_{S}} \sum_{i=1}^{n_{S}} v_{S}^{i} \ell\left(y_{S}^{i}, f_{c}\left(\boldsymbol{h}_{S}^{i}\right)\right)+\frac{1}{n_{T}} \sum_{i=1}^{n_{T}} \ell\left(y_{T}^{i}, f_{c}\left(\boldsymbol{h}_{T}^{i}\right)\right) \\ &+\frac{1}{n_{I}} \sum_{i=1}^{n_{I}} v_{I}^{i} g\left(f_{c}\left(\boldsymbol{h}_{I}^{i}\right)\right) \end{aligned}\tag{2} J2(fc,fe,fd)=nS1i=1nSvSi(ySi,fc(hSi))+nT1i=1nT(yTi,fc(hTi))+nI1i=1nIvIig(fc(hIi))(2)
式中 f c ( ⋅ ) f_c(·) fc()为输出分类概率的分类函数, g ( ⋅ ) g(·) g() 0 ≤ z ≤ 1 0\le z\le1 0z1时定义为 g ( z ) = − z l n z − ( 1 − z ) l n ( 1 − z ) g(z) =−z ln z−(1−z) ln(1−z) g(z)=zlnz(1z)ln(1z)的熵函数,用于在中间域选择高预测置信度的实例。

4.4总体目标函数

将方程中的两个目标结合起来。(1)和(2),我们得到DDTL的最终目标函数如下:
min ⁡ Θ , v J = J 1 + J 2 , s . t . v S i , v T i ∈ { 0 , 1 } (3) \min_{\boldsymbol{\Theta,v}}\mathcal{J}=\mathcal{J}_{1}+\mathcal{J}_{2},\quad s.t.v^i_S,v^i_T\in\{0,1\}\tag{3} Θ,vminJ=J1+J2,s.t.vSi,vTi{0,1}(3)
其中 v = { v S , v T } \boldsymbol{v} =\{\boldsymbol{v_S}, \boldsymbol{v_T}\} v={vS,vT},和 Θ \boldsymbol{\Theta} Θ表示函数 f c ( ⋅ ) , f e ( ⋅ ) 和 f d ( ⋅ ) f_c(·),f_e(·)和f_d(·) fc()fe()fd()的所有参数
为了解决问题(3),我们使用块坐标衰减(block coordinate decenent, BCD)方法,在每次迭代中,每个块中的变量依次优化,同时保持其他变量不变。
在问题(3)中,有两个变量块: Θ \boldsymbol{\Theta} Θ v \boldsymbol{v} v。当 v \boldsymbol{v} v中的变量固定时,我们可以使用反向传播(BP)算法更新 Θ \boldsymbol{\Theta} Θ,这样可以很容易地计算梯度。反过来,当 Θ \boldsymbol{\Theta} Θ中的变量固定时,我们可以得到 v \boldsymbol{v} v的解析解如下:
v S i = { 1 i f l ( y s i , f c ( f e ( x S i ) ) ) + ∥ x ^ S i − x S i ∥ 2 2 < λ S 0 o t h e r w i s e (4) v^i_S=\begin{cases}1\quad if\mathcal{l}(y^i_s,f_c(f_e(\boldsymbol x^i_S)))+\left\|\hat{\boldsymbol{x}}_{S}^{i}-\boldsymbol{x}_{S}^{i}\right\|_{2}^{2}<\lambda_S\\0\quad otherwise\end{cases}\tag{4} vSi= 1ifl(ysi,fc(fe(xSi)))+ x^SixSi 22<λS0otherwise(4)
v I i = { 1 i f ∥ x ^ I i − x I i ∥ 2 2 + g ( f c ( f e ( x I i ) ) ) < λ I 0 o t h e r w i s e (5) v^i_I=\begin{cases}1\quad if\left\|\hat{\boldsymbol{x}}_{I}^{i}-\boldsymbol{x}_{I}^{i}\right\|_{2}^{2}+g(f_c(f_e(\boldsymbol x^i_I)))<\lambda_I\\0\quad otherwise\end{cases}\tag{5} vIi= 1if x^IixIi 22+g(fc(fe(xIi)))<λI0otherwise(5)
由式(4)可知,对于源域中的数据,在优化过程中只选择重构误差小、训练损失小的数据。同样,由式(5)可以发现,对于中间区域的数据,只会选择重构误差小、预测置信度高的数据。
对这种学习策略的直观解释有两个方面:

  1. 用一个固定的 Θ \boldsymbol{\Theta} Θ更新 v \boldsymbol{v} v时,将源域中“无用”的数据删除,选择那些可以连接源和目标域的中间数据进行训练;
  2. v \boldsymbol{v} v固定的情况下更新 Θ \boldsymbol{\Theta} Θ时,模型只在选择的“有用”数据样本上进行训练。
    解决问题(3)的整体算法总结在算法1中。
    在这里插入图片描述
    问题(3)对应的深度学习架构如图2所示。
    在这里插入图片描述

从图2中,我们注意到除了实例选择组件 v \boldsymbol{v} v之外,图2中的其余架构可以分别通过合并边信息被视为一个通用的自动编码器或卷积自动编码器。
在续集中,我们将 f e ( ⋅ ) f_e(·) fe() f d ( ⋅ ) f_d(·) fd()使用antoencoder的架构(除了实例选择组件)称为SAN (Supervised AutoeNcoder),将卷积antoencoder用作SCAN (Supervised convolutional AutoeNcoder)。

五、实验

在本节中,我们从三个方面对提出的SLA算法进行了实证研究

  1. 首先,在源域和目标域较远的情况下,验证了算法的有效性。
  2. 其次,我们对选定的中间数据进行可视化,以理解算法的工作原理。
  3. 第三,我们通过将SLA生成的中间实例学习顺序与其他人工设计的顺序进行比较来评估中间实例学习顺序的重要性。

5.1基线方法

使用三类方法作为基线

  1. 监督式学习
    在这一类中,我们选择了两种监督学习算法,SVM和卷积神经网络(CNN)作为基线。
    对于SVM,我们使用线性核函数。对于CNN,我们实现了一个由核大小为 3 × 3 3 \times 3 3×3的两个卷积层组成的网络,其中每个卷积层后面都有一个核大小为 2 × 2 2 \times 2 2×2的max pooling层、一个全连接层和一个逻辑回归层。
  2. 转移学习
    在这一类中,我们选择了五种迁移学习算法,包括自适应支持向量机(ASVM) (Aytar和Zisserman 2011),测地流核(GFK) (Gong等人2012),Landmark (LAN) (Gong, Grauman和Sha 2013),深度迁移学习(DTL) (Y osinski等人2014)和传递迁移学习(TTL) (Tan等人2015)。
  3. 自学(STL)
    我们在所有中间域数据上应用自编码器或卷积自编码器来学习一个通用的特征表示,然后用所有源域和目标域标记的数据用新的特征表示训练分类器
    在这些基线中,CNN可以接收张量作为输入,DTL和STL可以同时接收向量和张量作为输入,而其他模型只能接收向量作为输入。SCAN中使用的卷积自编码器组件与CNN模型具有相同的网络结构,不同之处在于全连接层连接两个unpooling层和两个反卷积层来重构输入。对于所有基于深度学习的模型,我们使用所有的训练数据进行预训练。

5.2数据集

实验使用的数据集包括Caltech-256 (Griffin, Holub和Perona 2007)和动物属性(AwA)。
Caltech-256数据集包含256个对象类别的30607张图像,每个类别的实例数从80到827不等。
AwA数据集包含50个动物类别的30475张图像,每个类别的样本数量从92到1168不等。

5.3性能比较

在实验中,对于每个目标域,我们随机抽取6个标记的实例进行训练,并使用其余的实例进行测试。
每次配置重复10次。
平均准确率的比较结果如图3所示。
在这里插入图片描述
我们提出的SLA方法在所有设置下都获得了最好的性能。
在这里插入图片描述
在这里插入图片描述

在表1和表2中,我们还报告了不同方法在某些选定任务上的平均准确率和标准偏差。在这些任务中,我们可以看到SLA-SCAN在精度上比CNN提高了10%以上,有时甚至达到17%。对于SLA-SAN,其精度比SVM提高了约10%。

5.4详细结果

为了理解中间域中的数据如何帮助连接源域和目标域,如图4所示,
在这里插入图片描述
我们表明,随着迭代学习的进行,源域的正样本数量减少,问题(3)的目标函数值也减少。

5.5不同学习顺序的比较

如图4所示,SLA算法可以学习到一个顺序的有用中间数据,并将其添加到学习过程中。为了比较加入学习的中间数据的不同顺序,我们手工设计了三种排序策略。

  1. 在第一种策略中,我们用Random表示,将中间区域的数据随机分成十个子集。在每次迭代中,我们在学习过程中添加一个子集。
  2. 在第二种策略中,我们用Category表示,我们先用SLA算法得到一个顺序,然后利用中间数据的附加类别信息,将中间数据一个类别一个类别地加入到学习过程中。
    因此,类别的顺序就是它们在SLA算法学习到的顺序中首次出现的顺序。
  3. 第三种策略,用Reverse表示,与第二种策略相似,只是添加的类别的顺序颠倒了。在实验中,源域数据的去除方法与SLA算法的原始学习过程相同。
    在这里插入图片描述

从图5所示的结果中,我们可以看到,手动设计的三种策略获得的准确率远远低于SLA。此外,在三种策略中,“Category”的性能最好,这是因为该生成的订单接近于SLA。

六、总结

本文研究了一种新的DDTL问题,源域和目标域距离较远,但可以通过一些中间域连接。为了解决DDTL问题,我们提出了SLA算法,从中间域逐步选择未标记的数据来连接两个遥远的域。在两个基准图像数据集上进行的实验表明,SLA能够在准确性方面达到最先进的性能。
作为一个未来的发展方向,我们将扩展所提出的算法以处理多源域。


Reference

Distant Domain Transfer Learning

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值