迁移学习(一)

迁移学习综述(一)(学习笔记)

A Survey of Recent Adances in Transfer leanning

1.引言

传统机器学习方法只有在一个共同的假设下才能很好地工作:训练和测试数据都来自相同的特征空间和相同的分布。当分布发生变化时,大多数统计模型需要使用新收集的训练数据从头开始重建。在许多现实的应用程序中,回忆所需的训练数据和重建模型是昂贵的或不可能的。如果能减少重新收集训练数据的需要和工作,那就太好了。在这种情况下,知识转移或任务域之间的迁移学习是可取的。

在现实世界中,我们观察到许多迁移学习的例子。例如,我们可能会发现,学会辨认苹果可能有助于辨认梨。同样,学习弹奏电子琴可能有助于学习钢琴。迁移学习的研究是基于这样一个事实:人们可以智能地应用之前学到的知识,更快地或更好地解决新问题。机器学习领域迁移学习的基本动机在“学会学习”的NIPS-95研讨会上进行了讨论,该研讨会关注终身机器学习方法的需求,该方法可以保留和重用以前学习过的知识。
在这里插入图片描述
上图可看出传统学习技术与迁移学习技术的学习过程差异。我们可以看到,传统的机器学习技术尝试从头开始学习每个任务,而迁移学习技术则尝试在目标任务拥有较少高质量训练数据时,将之前的一些任务中的知识转移到目标任务中

2.符号说明

域(Domain):包含特征空间(feature space)边缘概率分布(marginal probability distrubution) 两部分。
D = ( X , P ( X ) ) D =(X,P(X)) D=(X,P(X))
任务(Task):包含标签(label)映射函数(mapping function) 两部分。
T = ( Y , f ( ⋅ ) ) T =(Y,f(\cdot)) T=(Y,f())
注释: f ( ⋅ ) f(\cdot) f()是不能直接观测到的,是通过训练数据学习得到的,是在 X X X Y Y Y x i x_i xi y i y_i yi的对应关系。从概率角度出发可以写成 P ( y ∣ x ) P(y|x) P(yx)

源域 (Source Domain): D s = { ( x s 1 , y s 1 ) , . . . , ( x s n , y s n ) } D_s=\{ (x_{s1},y_{s1}),...,(x_{sn},y_{sn})\} Ds={(xs1,ys1),...,(xsn,ysn)}
目标域 (Target Domain): D t = { ( x t 1 , y t 1 ) , . . . , ( x t n , y t n ) } D_t=\{ (x_{t1},y_{t1}),...,(x_{tn},y_{tn})\} Dt={(xt1,yt1),...,(xtn,ytn)}
0 ≤ n S ≪ n T 0 \leq n_S \ll n_T 0nSnT

定义:给定一个源域 D s D_s Ds和源域任务 T s T_s Ts,一个目标域 D t D_t Dt和目标域任务 T t T_t Tt。迁移学习的目标就是在 D s ≠ D t D_s\not=D_t Ds=Dt T s ≠ T t T_s\not=T_t Ts=Tt的情况下用 D s D_s Ds T s T_s Ts的知识帮助目标域 D t D_t Dt学习得到一个效果更好的函数 f ( ⋅ ) f(\cdot) f()
根据上述定于我们可以知道, D s ≠ D t D_s\not=D_t Ds=Dt有两种情况:
(1) X s ≠ X t X_s\not=X_t Xs=Xt
(2) P s ( X ) ≠ P t ( X ) P_s(X)\not=P_t(X) Ps(X)=Pt(X)
T s ≠ T t T_s\not=T_t Ts=Tt也有两种情况:
(1) Y s ≠ Y t Y_s\not=Y_t Ys=Yt
(2) f s ( ⋅ ) ≠ f t ( ⋅ ) f_s(\cdot)\not=f_t(\cdot) fs()=ft()

3.迁移学习分类

迁移学习三大灵魂问题
何时迁移?(When?)
询问在什么情况下,迁移技能应该被使用。源域数据是否与目标与数据相关
【1】如果原训练样本已经足够并且能够实现较好的效果,再用迁移学习就会因为源域冗余等限制使得目标域任务效果不好。
【2】各种不用散度的训练样本,直接从源域迁移到目标域,源域样本和目标域样本巨大分歧即,当源域和目标域之间没有关联时,可能会导致蛮力传递失败。在最坏的情况下,它甚至可能损害在目标领域的学习性能,这种情况通常被称为负迁移。目前关于迁移学习的研究主要集中在
迁移什么?(What?)
哪些知识可以跨领域或任务转移。有些知识是特定于单个领域或任务的,有些知识可能是不同领域之间的共同知识,从而有助于提高目标领域或任务的性能。在发现哪些知识可以转移后,需要开发相应的学习算法进行知识转移。
(1)Instance-based TL(样本迁移)
尽管源域数据不可以整个直接被用到目标域里,但是在源域中还是找到一些可以重新被用到目标域中的数据 **instance reweighting(样本重新调整权重)importance sampling(重要性采样)**是instance-based TL里主要用到的两项技术。
(2)Feature-representation-transfer(特征迁移)
找到一些好的有代表性的特征,通过特征变换把源域和目标域的特征变换到同样的空间,使得这个空间中源域和目标域的数据具有相同的分布,然后进行传统的机器学习就可以了。
(3)Parameter-transfer(参数/模型迁移)
假设源域和目标域之间共享一些参数,或者共享模型hyperparameters(超参数)的先验分布。这样把原来的模型迁移到新的域时,也可以达到不错的精度。
(4)Relational-knowledge-transfer(关系迁移)
把相似的关系进行迁移。

根据域和任务的不同组合可以分为以下四大类(根据迁移学习迁移什么知识可以分为三类。)
(1) D s = D t D_s=D_t Ds=Dt T s = T t T_s=T_t Ts=Tt (传统机器学习)
(2) D s = D t D_s=D_t Ds=Dt T s ≠ T t T_s\not=T_t Ts=Tt (归纳式学习或转换式学习 (ITL/TTL))
(3) D s ≠ D t D_s\not=D_t Ds=Dt T s = T t T_s=T_t Ts=Tt (转换式学习 Transductive Transfer learning)
(4) D s ≠ D t D_s\not=D_t Ds=Dt T s ≠ T t T_s\not=T_t Ts=Tt (无监督学习 Unsupervised Transfer Learning

Inductive Transfer LearningTransductives Transfer LeanringUnsupervised Transfer Leanring
Instance-transfer ✓ \checkmark ✓ \checkmark
Feature-representation-transfer ✓ \checkmark ✓ \checkmark ✓ \checkmark
Parameter-transfer ✓ \checkmark
Relational-knowledge-transfer ✓ \checkmark

按照源域目标域标签可用情况划分

Y t Y_t Yt Y s Y_s Yscategorysub-domain
可用可用InductiveSelf-taught learning
可用不可用InductiveMulti-task learning
不可用不可用TransductiveDomain adaptation
不可用不可用Unsupervised

如何迁移?(How?)
迁移学习技术方法。

4.归纳式迁移学习方法( Inductive Transfer Learning)

4.1 实例迁移(instance-transfer)
尽管源域数据不能直接重用,但仍然有某些部分的数据可以与目标领域中的少数标记数据一起重用。

TrAdaBoost Y t = Y s , P t ( X ) ≠ P s ( X ) Y_t=Y_s,P_t(X)\not=P_s(X) Yt=Ys,Pt(X)=Ps(X)
假设源域和目标域的数据使用完全相同特征和标签的集合,但是数据在两个域中的分布是不同的。由于源域和目标域之间分布的差异,一些**源域数据(instance)**可能对学习目标域有用,但一些可能不会有用,甚至可能有害。它尝试迭代地重新加权源域数据,以减少“坏的”源数据的影响,同时鼓励“好的”源数据为目标域贡献更多。对于每一轮迭代,TrAdaBoost都会在加权源数据和目标数据上训练基分类器。错误只在目标数据上计算。TrAdaBoost使用与AdaBoost相同的策略来更新目标域中分类错误的示例,而使用与AdaBoost不同的策略来更新源域中分类错误的源示例。

4.2 传递特征表示的知识(Transferring Knowledge of Feature Representations)
寻找“好的”特征表示,以减少领域差异和分类或回归模型误差。如果源域中有大量的标记数据,可以使用监督学习方法来构造特征表示。如果源域中没有可用的标记数据,使用无监督学习方法来构造特征表示。其基本思想是学习一种跨相关任务共享的低维表示(稀疏特征学习方法)。

4.2.1 监督特征构造方法
a r g m i n A , U ∑ t ∈ { T , S } ∑ i = 1 n i L ( y t i , < a t , U T x t i > ) + γ ∥ A ∥ 2 , 1 2 s . t .     U ∈ O d . argmin_{A,U}\sum_{t\in\{T,S\}}\sum_{i=1}^{n_i}L(y_{t_i},<a_t,U^Tx_{t_i}>)+\gamma \begin{Vmatrix}A\end{Vmatrix}_{2,1}^2 \\s.t. \space \space \space U\in O^d. argminA,Ut{T,S}i=1niL(yti,<at,UTxti>)+γA2,12s.t.   UOd.

4.2.2无监督特征构造方法
a r g m i n a , b ∑ i ∥ x S i − ∑ j a S i j b j ∥ 2 2 + β ∥ a S i ∥ 1 s . t .     ∥ b j ∥ 2 ≤ 1 ,    ∀ j ∈ 1 , . . . , s . argmin_{a,b}\sum_{i}\begin{Vmatrix}x_{S_i}-\sum_ja_{S_i}^jb_j \end{Vmatrix}_{2}^2 +\beta \begin{Vmatrix} aS_i\end{Vmatrix}_1 \\s.t. \space \space \space \begin{Vmatrix} b_j\end{Vmatrix}_2\leq1, \space \space \forall j\in 1,...,s. argmina,bixSijaSijbj22+βaSi1s.t.   bj21,  j1,...,s.
a S i j a_{S_i}^j aSij是输入 x S i x_{S_i} xSi在基底 b j b_j bj下的新表示; β \beta β是一个平衡特征构造项和正则化项的系数。学习基向量 b b b后,对目标域数据应用下属模型优化,学习得到基于基向量 b b b更高层次的特征。
a T i ∗ = a r g m i n a T i ∥ x T i − ∑ j a T i j b j ∥ 2 2 + β ∥ a T i ∥ 1 a_{T_i}^*=argmin_{a_{T_i}}\begin{Vmatrix}x_{T_i}-\sum_ja_{T_i}^jb_j \end{Vmatrix}_{2}^2 +\beta \begin{Vmatrix} aT_i\end{Vmatrix}_1 aTi=argminaTixTijaTijbj22+βaTi1
最后,可以对 a T i ∗ {a_{T_i}^*} aTi使用相应标签的判别算法训练分类或回归模型,以便在目标领域中使用。这种方法的一个缺点是,优化 b b b时在源域学习到的所谓高阶基向量可能不适合在目标域使用。

4.3 参数知识转移 (Transferring Knowledge of Parameters)
假设相关任务的个体模型应该共享一些参数或超参数的先验分布
多任务学习试图同时完美地学习源任务和目标任务,而迁移学习的目的只是利用源域数据来提高目标域的性能。因此,在多任务学习中,源数据和目标数据的损失函数的权值是相同的。相反,在迁移学习中,不同领域的损失函数的权重是不同的。直观地说,我们可以给目标域的loss function分配一个更大的权重,以确保我们在目标域中可以获得更好的性能。

  • eg1.Evgeniou和Pontil[48]假设支持向量机中每个任务的参数w可以分为两项。一个是针对任务的常见术语,另一个是特定于任务的术语。
    w S = w 0 + v S     a n d     w T = w 0 + v T w_S=w_0+v_S \space \space \space and \space \space \space w_T=w_0+v_T wS=w0+vS   and   wT=w0+vT 将支持向量机扩展到多任务学习案例可以写成这样: m i n w 0 , v t , ξ t i J ( w 0 , v t , ξ t i ) = ∑ t ∈ { S , T } ∑ i = 1 n t ξ t i + λ 1 2 ∑ t ∈ { S , T } ∥ v t ∥ 2 + λ 2 ∥ w 0 ∥ 2 s . t .     y t i ( w 0 + u t ) ⋅ x t i ≥ 1 − ξ t + i , ξ t i ≥ 0 , i ∈ { 1 , 2 , . . . , n }    a n d    t ∈ { S , T } . min_{w_0,v_t,\xi _{t_i} }J(w_0,v_t,\xi _{t_i}) \\ = \sum_{t\in{\{S,T\}}}\sum_{i=1}^{n_t}\xi _{t_i}+ \cfrac{\lambda _1}{2}\sum_{t\in \{S,T\}}\begin{Vmatrix}v_t \end{Vmatrix}^2+\lambda_2\begin{Vmatrix}w_0 \end{Vmatrix}^2 \\s.t. \space \space \space y_{t_i}(w_0+u_t)\cdot x_{t_i}\ge 1-\xi _{t+i} ,\\ \xi _{t_i} \ge 0,i\in\{1,2,...,n\} \space \space and \space \space t\in\{S,T\}. minw0,vt,ξtiJ(w0,vt,ξti)=t{S,T}i=1ntξti+2λ1t{S,T}vt2+λ2w02s.t.   yti(w0+ut)xti1ξt+i,ξti0,i{1,2,...,n}  and  t{S,T}.
    eg2.局部加权集成学习框架,将多个模型结合起来进行迁移学习,根据模型对目标域内每个测试例的预测能力动态分配权重。
    eg3.MT-IVM过共享相同的GP先验来学习多个任务的高斯过程参数
    eg4.使用自由形式协方差矩阵来建模任务间依赖关系,其中GP先验用于诱导任务之间的相关性。
    eg5.分层贝叶斯框架(HB)

4.4 知识转移关系(Transferring Relational Knowledge)
关系-知识迁移方法处理的是关系领域的迁移学习问题,其中数据是不同分布。并且可以用多种关系来表示,如网络数据和社交网络数据。这种方法不假设从每个域提取的数据是独立的和同分布的,这是传统的假设。它尝试将数据之间的关系从源域转移到目标域。在此背景下,统计关系学习技术被提出来解决这些问题。

  • eg: Mihalkova等人[50]提出了一种利用马尔可夫逻辑网络(MLNs)跨关系域转移关系知识的算法TAMAR MLNs[56]是一个强大的形式主义,它结合了一阶逻辑的紧凑表达和概率的灵活性,用于统计关系学习。在mln中,关系域中的实体用谓词表示,它们的关系用一阶逻辑表示。
    TAMAR的动机是,如果两个域彼此相关,那么可能存在连接源域到目标域的实体及其关系的映射。例如,教授可以被认为在学术领域扮演类似于在工业管理领域的经理的角色。此外,教授和学生之间的关系类似于经理和员工之间的关系。因此,可能存在从教授到经理的映射,以及从教授-学生关系到经理-工人关系的映射。

5.转换式迁移学习方法( Transductive Transfer Learning)

转导迁移学习一词最早由Arnold等人提出,他们要求源和目标任务相同,尽管领域可能不同。在这些条件之上,他们进一步要求在训练时目标域中所有未标记的数据都是可用的,但我们认为这个条件可以放宽;相反,在我们对转导迁移学习设置的定义中,我们只要求在训练时看到部分未标记的目标数据,以获得目标数据的边际概率。
ps:(1) X s ≠ X t X_s\not=X_t Xs=Xt(2) P s ( X ) ≠ P t ( X ) P_s(X)\not=P_t(X) Ps(X)=Pt(X)
希望通过最小化预期风险来学习目标域的最优模型。
5.1 转移实例的知识(Transferring the Knowledge of Instances)
实例迁移方法的动机是重要抽样。为了了解基于重要性的抽样方法在这种情况下可能有何帮助要进行概率评估,ERM评估
θ ∗ = a r g m i n θ ∈ Θ 1 n ∑ i = 1 n [ l ( x i , y i , θ ) ] \theta ^*=argmin_{\theta\in \Theta}\cfrac{1}{n}\sum_{i=1}^n[l(x_i,y_i,\theta)] θ=argminθΘn1i=1n[l(xi,yi,θ)]

  • 如果 P s ( X ) = P t ( X ) P_s(X)=P_t(X) Ps(X)=Pt(X),从源域数据中学习模型 P ( X S ) P(X_S) P(XS)
    θ ∗ = a r g m i n θ ∈ Θ ∑ ( x , y ) ∈ D S P ( D S ) l ( x , y , θ ) \theta ^*=argmin_{\theta\in \Theta}\sum_{(x,y)\in D_S}P(D_S)l(x,y,\theta) θ=argminθΘ(x,y)DSP(DS)l(x,y,θ)

  • 如果 P s ( X ) ≠ P t ( X ) P_s(X)\not=P_t(X) Ps(X)=Pt(X),修改上述优化问题,学习一个对目标域泛化能力高的模型

θ ∗ = a r g m i n θ ∈ Θ ∑ ( x , y ) ∈ D S P ( D T ) P ( D S ) l ( x , y , θ ) ≃ a r g m i n θ ∈ Θ ∑ i = 1 n S P T ( X T i , y T i ) P S ( X S i , y S i ) l ( x S I , y S I , θ ) \theta ^*=argmin_{\theta\in \Theta}\sum_{(x,y)\in D_S}\cfrac{P(D_T)}{P(D_S)}l(x,y,\theta)\\ \simeq argmin_{\theta\in \Theta}\sum_{i=1}^{n_S}\cfrac{P_T(X_{T_i},y_{T_i})}{P_S(X_{S_i},y_{S_i})}l(x_{S_I},y_{S_I},\theta) θ=argminθΘ(x,y)DSP(DS)P(DT)l(x,y,θ)argminθΘi=1nSPS(XSi,ySi)PT(XTi,yTi)l(xSI,ySI,θ)
通过 P T ( X T i , y T i ) P S ( X S i , y S i ) \cfrac{P_T(X_{T_i},y_{T_i})}{P_S(X_{S_i},y_{S_i})} PS(XSi,ySi)PT(XTi,yTi)对每一个 ( X S i , y S i ) (X_{S_i},y_{S_i}) (XSi,ySi)添加惩罚值可以学习目标域的精确模型。又因为 P ( Y T ∣ X T ) = P ( Y S ∣ X S ) P(Y_T|X_T)=P(Y_S|X_S) P(YTXT)=P(YSXS),所以 P T ( X T i , y T i ) P S ( X S i , y S i ) = P ( x S i ) P ( x T i ) \cfrac{P_T(X_{T_i},y_{T_i})}{P_S(X_{S_i},y_{S_i})}=\cfrac{P(x_{S_i})}{P(x_{T_i})} PS(XSi,ySi)PT(XTi,yTi)=P(xTi)P(xSi),我们就只需要评估
P ( x S i ) P ( x T i ) \cfrac{P(x_{S_i})}{P(x_{T_i})} P(xTi)P(xSi)即可。

5.1 传递特征表示的知识(Transferring Knowledge of Feature Representations)
利用目标域的未标记数据提取一些相关的特征,可以减少域之间的差异。

6.无监督迁移学习( UnsupervisedTransfer Learning)

在训练的源域和目标域没有观察到标记的数据。自学聚类是无监督迁移学习的一个实例,其目的是利用源域中大量的无标记数据对目标域中的少量无标记数据进行聚类。STC尝试学习跨领域的公共特征空间,这有助于在目标领域进行聚类。

应用省略

7.总结(2010年)

在未来的研究中,有几个重要的问题亟待解决。首先,如何避免负迁移是一个开放的问题。许多提出的迁移学习算法都假定源域和目标域在某种意义上是相互关联的。然而,如果这一假设不成立,负迁移可能会发生,这可能会导致学习者的表现不如没有迁移。因此,如何保证迁移学习中不发生负迁移是迁移学习的关键问题。为了避免负迁移学习,我们需要首先研究源域或任务与目标域或任务之间的可迁移性。基于合适的可迁移性度量,我们可以选择相关的源领域或任务,从中提取知识,用于学习目标任务。为了定义领域和任务之间的可转移性,我们还需要定义标准来度量领域或任务之间的相似性。基于距离度量,我们可以对域或任务进行集群,这可能有助于度量可转移性。一个相关的问题是,当一个完整的域不能用于迁移学习时,我们是否还可以在目标域中迁移部分域来进行有用的学习。

此外,现有的迁移学习算法主要集中在改进源域和目标域或任务之间不同分布的泛化。在这样做的过程中,他们假设源域和目标域之间的特征空间是相同的。然而,在许多应用程序中,我们可能希望跨具有不同特征空间的领域或任务转移知识,并从多个这样的源领域转移知识。我们把这种迁移学习称为异质迁移学习

PS:个人学习笔记,仅供参考!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值