迁移学习
1、通俗定义
-
迁移学习是一种学习的思想和模式
-
迁移学习作为机器学习的一个重要分支,侧重于将已经学习过的知识迁移应用于新的问题中
-
迁移学习的核心问题是,找到新问题和原问题之间的相似性,才可以顺利地实现知识地迁移
-
定义:迁移学习,是指利用数据、任务或者是模型之间地相似性,将在旧领域学习过的模型,应用于新领域的一种学习过程。
2、为什么要迁移学习
1、大数据与少标记之间的矛盾
我们正处在一个大数据时代。每天、每时,社交网络、智能交通、视频监控、行业物流等领域都产生着海量的图像、文本、语音、语言等各类数据。然而,这些大数据也带来了严重的问题:它们总是缺乏完善的数据标注。传统有监督机器学习模型的训练和更新均依赖于数据的标注,这些数据往往是很初级的原始形态,很少有数据被加以正确的人工标注。
如何解决:只凭借少量的标注数据,无法准确地训练高可用度的模型,为解决这个问题,可以参赛用一些与目标数据相似的有标注的数据,从而利用这些数据来构建模型,增加我们目标数据的标注。
2、大数据与弱计算之间的矛盾
大数据需要强计算能力的设备来进行存储和计算,但是普通的研究人员从头训练一个普通的BERT模型,也是仅拥有一般硬件设备的研究人员所无法承受的。
如何解决:迁移学习提供了一种基于大数据“预训练”的模型在自己的特定数据集上进行“微调”的技术,大大降低了训练难度和成本,并且可以保证在自己的任务上取得优良的表现。
3、普适化模型与个性化需求之间的矛盾
机器学习的目标是构建一个尽可能通用的模型使其能很好地适应不同用户、不同设备、不同环境、不同需求。基于此愿望,我们构建了多种多样的普适化模型服务于现实应用。然而,人们的个性化需求五花八门,短期内根本无法用一个通用的模型去满足。
如何解决:为了解决个性化需求的挑战,我们利用迁移学习的思想,进行自适应的学习。考录到不同用户之间的相似性和差异性,我们对普适化模型进行灵活的调整,以便完成我们的任务。
4、特定应用的需求
为了满足特定领域应用的需求,我们可以利用上述介绍过的手段(微调),从数据和模型方法上进行迁移学习。
总结
矛盾 | 传统机器学习 | 迁移学习 |
---|---|---|
大数据与少标注 | 增加人工标注,但是昂贵且耗时 | 数据的迁移标注 |
大数据与弱计算 | 只能依赖强大计算能力,但是受众少 | 模型迁移 |
普适化模型与个性哈需求 | 通用模型无法满足个性化需求 | 模型自适应调整 |
特定应用 | 冷启动问题无法解决 | 数据迁移 |
3、研究领域
1、按目标域标签分类
类比如机器学习。按照目标领域有无标签,迁移学习可以分为以下三个大类:
1、监督迁移学习(Supervised Transfer Learning)
2、半监督迁移学习(Semi-Supervised Transfer Learning)
3、无监督迁移学习(UnSupervised Transfer Learning)
2、按照学习方法分类
1、基于实例的迁移学习方法(Instance-based Transfer Learning ):于实例的迁移学习方法通过权重重用对源域和目标域的样例进行迁移。通过给不同的样本赋予不同权重,例如给相似的样本更高的权重来完成迁移。
2、基于模型的迁移学习方法(Model-based Transfer Learning ):通过对特征进行变换来完成迁移。
3、基于特征的迁移学习方法(Feature-based Transfer Learning ):通过在不同模型间进行参数的迁移来进行迁移学习。
4、基于关系的迁移学习方法(Relation-based Transfer Learning ):通过挖掘和利用领域和实体间的关系来进行迁移学习。
此分类按照实例、特征、模型的机器学习逻辑进行区分。另外,不同领域之间的高层关系也可以被用来进行分类。
3、按特征空间分类
1、同构迁移学习(Homogeneous Transfer Learnin)
2、异构迁移学习(Heterogeneous Transfer Learning)
此分类相对直观:如果特征语义和维度都相同则为同构;反之则为异构。例如,不同图片的迁移就可以认为是同构的;而图片到文本的迁移则是异构的。
4、按离线与在线形成分类
1、离线迁移学习(Offline Transfer Learning)
2、在线迁移学习(Online Transfer Learning)
目前,绝大多数的迁移学习方法均采用了离线方式,即源域和目标域均给定、迁移一次即可。这种方式的缺点是显而易见的:算法无法对新加入的数据进行学习,模型也无法更新。与之相对的是在线的方式:随着数据的动态加入,迁移学习算法也可以不断更新。
4、基本概念
1、领域
是进行学习的主体。领域主要由两部分构成:数据和生成这些数据的概率分布。通常用D来表示一个domain,用大写P来表示一个概率分布。知识从源领域传递到目标领域,就完成了迁移。
源领域(Source Domain):源领域是有知识、有大量数据标注的领域,是我们迁移的对象。
目标领域(Target Domain):目标领域是我们最终要赋予知识、赋予标注的对象。
领域上的数据,通常用小写粗体x来表示,也是向量的表示形式。用大写的黑体X来表示一个领域的数据,这是一种矩阵的形式。我们用大写花体X来表示数据的特征空间。通常使用小写下标s和t分别指代两个领域。结合领域的表示方式,则:Ds表示源领域,Dt表示目标领域。
2、任务
任务(Task):是学习的目标。任务主要由两部分组成:标签和标签对应的函数。通常使用花体Y来表示一个标签空间,用f()来表示一个学习函数。对应的是,源领域和目标领域的类别空间分别表示为Ys,Yt,我们用小写 y s 和 y t y_s和y_t ys和yt分别表示源领域和目标领域的实际类别。 y s ∈ Y s , y t ∈ Y t y_s{\in}Y_s,y_t{\in}Y_t ys∈Ys,yt∈Yt
3、迁移学习
给定一个有标签的源域 D t = { X i , y i } i = 1 n + m D_t={\{X_i,y_i}\}^{n+m}_{i=1} Dt={Xi,yi}i=1n+m和一个无标签的目标域 D t = { X j } j = n + 1 n + m D_t={\{X_j}\}^{n+m}_{j=n+1} Dt={Xj}j=n+1n+m。这两个领域数据分布 P ( X s ) 和 P ( X t ) P(X_s)和P(X_t) P(Xs)和P(Xt)不同,即 P ( X s ) ≠ P ( X t ) P(X_s){\neq}P(X_t) P(Xs)=P(Xt)。迁移学习的目的就是借助 D s D_s Ds的知识,来学习目标域 D t D_t Dt的知识(标签)。
进一步考虑,则是:
(1)特征空间的异同:即 X s 和 X t X_s和X_t Xs和Xt是否相等
(2)类别空间的异同:即 y s 和 y t y_s和y_t ys和yt是否相等
(3)条件概率分布的异同:即 Q s ( y s ∣ x s ) 和 Q_s(y_s|x_s)和 Qs(ys∣xs)和Q_t(y_t|x_t)$是否相等
5、迁移学习方法
1、分布差异的度量
迁移学习的核心是找到源域和目标域之间的相似性,并加以合理地利用。所谓的相似性是普遍的:不同人之间的身体结构是相似的;自行车和摩托车的骑行方式是相似的;羽毛球和网球的打球方式是相似的。而这种相似也可以理解成:以不变应万变。
有了这种相似性的思想后,接下来需要度量和利用这种相似性。度量工作的目标有两个:一是度量两个领域的相似性,不仅要定性地告诉我们它们是否相似,还要定量地给出相似程度;二是以度量为准则,通过我们所要采用的学习手段,增大两个领域之间的相似性,以完成迁移学习。
一句话总结:相似性是核心,度量准则是重要手段。那么这种相似性应该如何刻画?从迁移学习的问题定义出发,答案呼之欲出:通过对源域和目标域不同的概率分布建模来刻画二者的相似性。
2、边缘分布、条件分布、联合分布
当目标域是图3.1所示的目标域I时,源域和目标域数据整体存在较大的分布差异(即整体不相似),因此,边缘分布的迁移更重要;而当目标域是图3.1所示的目标域时,源域和目标域整体有较高的相似性,差异主要体现在个体差异(即整体相似、具体到每个类不太相似),因此,应该优先考虑条件概率分布上的差异。
概率学的基本知识告诉我们,联合概率和边缘概率、条件概率之间具有如下关系:P(x,y)=P(x)P(y|x)=P(y)P(x|y)
根据公式中描述的边缘概率、条件概率、联合概率的性质,按照由特殊到一般、由易到难的逻辑,我们可以大致将迁移学习的方法进行如下分类。
1、边缘分布自适应(Marginal Distribution Adaptation,MDA)
2、条件分布自适应(Conditional Distribution Adaptation,CDA)
3、联合分布自适应(JointDistribution Adaptation,JDA)
4、动态分布自适应(Dynamic Distribution Adaptation,DDA)
边缘分布:边缘分布自适应假设源域和目标域的条件概率分布可能相似,但边缘概率分布(即整体数据分布)不同。因此,它专注于调整整个数据空间的分布,使得源域和目标域的整体数据分布更加接近。例如,在跨领域推荐系统中,用户的行为数据在不同领域(如电商和社交媒体)中可能呈现出完全不同的分布特性,此时边缘分布自适应可以通过学习一个特征变换来减小这种差异。
边缘分布自适应方法用源域和目标域之间的边缘分布距离来近似二者之间的联合分布距离:
D ( P s ( x , y ) , P t ( x , y ) ) ≈ D ( P S ( x ) , P t ( x ) ) D(P_s(x,y),P_t(x,y)){\approx}D(P_S(x),P_t(x)) D(Ps(x,y),Pt(x,y))≈D(PS(x),Pt(x))
条件分布:条件分布自适应假设源域和目标域的边缘概率分布(即整体数据分布)可能相似,但条件概率分布(即给定某个特征下标签的分布)不同。因此,它专注于调整特征空间中的条件分布,使得在相同特征下,源域和目标域的标签分布更加接近。例如,在图像分类中,如果源域和目标域的图像在整体风格上相似,但某些类别的图像在细节上存在差异,那么条件分布自适应可以帮助提高分类精度。
条件分布自适应方法用源域和目标域之间的条件分布距离来近似二者之间的联合分布距离,即
D ( P s ( x , y ) , P t ( x , y ) ) ≈ D ( P S ( y ∣ x ) , P t ( x ∣ y ) ) D(P_s(x,y),P_t(x,y)){\approx}D(P_S(y|x),P_t(x|y)) D(Ps(x,y),Pt(x,y))≈D(PS(y∣x),Pt(x∣y))
联合分布:联合分布自适应方法同做出了更一般的假设,其目标是减小源域和目标域的联合概率分布的距离,从而完成迁移学习。特别地,由于联合分布无法直接进行度量,因此,联合分布自适应方法用源域和目标域之间的边缘分布距离和条件分布距离之和来近似二者之间的联合分布距离。
D ( P s ( x , y ) , P t ( x , y ) ) ≈ D ( P S ( x ) , P t ( x ) ) + D ( P S ( y ∣ x ) , P t ( x ∣ y ) ) D(P_s(x,y),P_t(x,y)){\approx}D(P_S(x),P_t(x))+D(P_S(y|x),P_t(x|y)) D(Ps(x,y),Pt(x,y))≈D(PS(x),Pt(x))+D(PS(y∣x),Pt(x∣y))
动态分布:动态分布自适应方法通过采用一种平衡因子μ来动态调整两个分布之间的距离:
D ( P s ( x , y ) , P t ( x , y ) ) ≈ ( 1 − u ) D ( P S ( x ) , P t ( x ) ) + u D ( P S ( y ∣ x ) , P t ( x ∣ y ) ) D(P_s(x,y),P_t(x,y)){\approx}(1-u)D(P_S(x),P_t(x))+uD(P_S(y|x),P_t(x|y)) D(Ps(x,y),Pt(x,y))≈(1−u)D(PS(x),Pt(x))+uD(PS(y∣x),Pt(x∣y))
其中μ∈[0,1]表示平衡因子。当μ→0,表示源域和目标域数据本身存在较大的差异性,因此边缘分布适配更重要;当μ→1时,表示源域和目标域数据集有较高的相似性,因此条件分布适配更重要。
3、分布差异的统一表征
从表中可以清晰地看出,随着假设的不同,问题退化形式亦不同。从边缘分布自适应到最近的动态分布自适应,研究者们对于迁移学习中的概率分布差异的度量的认知和探索也在不断发展。显然,上述表格表明,动态分布自适应的问题退化形式更为一般,通过改变μ的值,动态分布自适应可以退化为其他方法。
(1)令μ=0,则退化为边缘分布自适应方法。
(2)令μ=1,则退化为条件分布自适应方法。
(3)令μ=0.5,则退化为联合分布自适应方法。
4、迁移学习方法统一表征
在迁移学习问题中,期望迁移学习算法可以在目标域没有标签的情况下还可借助于源域学习到目标域上的一个最优的模型。在此过程中运用一些手段来减小源域和目标域的数据分布差异。因此,从SRM准则出发将迁移学习统一表征为下面的形式。
迁移学习算法统一框架在迁移学习中给定一个 D t = { X i , y i } i = 1 N s D_t={\{X_i,y_i}\}^{N_s}_{i=1} Dt={Xi,yi}i=1Ns和一个无标签的目标域 D t = { X j } j = 1 N t D_t={\{X_j}\}^{N_t}_{j=1} Dt={Xj}j=1Nt,两个领域的联合概率分布不同,即 P s ( x , y ) ≠ P t ( x , y ) P_s(x,y) ≠ P_t(x,y) Ps(x,y)=Pt(x,y)。迁移学习方法的统一表征可以被表示为
其中:
- v ∈ R N v{\in}R^N v∈RN为源域样本的权重,v¡∈[0,1]。 N s N_s Ns为源域样本的数量。
- T为作用于源域和目标域上的特征变换函数。
- 为方便理解,采用 1 N s \frac{1}{N_s} Ns1来计算平均值。显式引入样本权重v后,平均值亦需更新为加权平均值。具体计算方式并不统一,需要根据问题来相应处理。
用 R ( T ( D s ) , T ( D t ) ) R(T(Ds),T(Dt)) R(T(Ds),T(Dt)) 来代替SRM中的正则化项R(f)。此替代并非等价,只是形式上的替代。事实上,由于正则化项的广泛应用,通常我们可以在模型的目标函数中加入特定的正则化项。为了强调迁移学习的特殊性,为了叙述方便,将此项称为迁移正则化项(TransferRegularization )。
通过对公式 中 v i v_i vi和 T取不同的情况,对迁移学习的方法进行表征,由此也派生出了三大类迁移学习方法。
1)样本权重迁移法
核心思想:通过调整源域样本的权重,使得在迁移过程中,与目标域更相似的源域样本对目标域模型的训练产生更大的影响。
应用场景:当源域和目标域之间存在一定程度的相似性,但直接迁移可能因样本分布差异而导致性能下降时,样本权重迁移法能够有效地缓解这一问题。
2)特征变换迁移法
核心思想:学习一个特征变换 T,使得变换后的源域和目标域数据在特征空间中更加接近,从而减小它们之间的差异。
分类:特征变换迁移法可以进一步分为统计特征变换和几何特征变换。统计特征变换显式地最小化源域和目标域的分布差异,而几何特征变换则从几何分布的角度出发,隐式地实现这一目标。
应用场景:当源域和目标域之间的数据分布差异较大时,特征变换迁移法能够有效地将源域的知识迁移到目标域中。
3)模型预训练迁移法
核心思想:首先在一个大型数据集(源域)上预训练一个模型,然后将该模型作为初始点,在目标域的数据集上进行微调。
应用场景:在深度学习领域,预训练的模型通常已经包含了丰富的先验知识,通过微调这些模型可以快速适应新的任务(目标域),而无需从头开始训练。
其中最为常用的是模型预训练方法。在迁移学习中,常见的预训练模型包括BERT、GPT、ResNet等。这些模型在各自的领域(如自然语言处理、计算机视觉)内取得了显著的成果,并被广泛应用于各种具体任务中。