迁移学习:场景、自学习与多任务学习
1. 传统机器学习与迁移学习概述
在传统机器学习中,针对不同的数据源(数据和标签)需要学习不同的模型。对于具有训练数据和标签的源(任务或领域),系统学习的模型(如模型 A 和模型 B)仅对与源相似的目标(任务或领域)有效。在大多数情况下,为特定源学习的模型不能用于不同目标的预测。若模型需要大量训练数据,那么收集数据、标注数据、训练模型和验证模型的工作必须针对每个源进行。从成本和资源的角度来看,当系统数量众多时,这项工作会变得难以管理。
而迁移学习系统则不同,它可以从源系统或模型中提取知识,并以某种方式进行迁移,使其在目标上发挥作用。例如,使用源 A 的训练数据为某个任务训练的模型 A,可以提取知识并迁移到另一个目标任务。
2. 迁移学习的定义
为了精确定义迁移学习,我们先明确两个概念:领域和任务。
-
领域(Domain)
:领域 $D = (X, P(X))$ 由特征空间 $X$ 和边缘概率分布 $P(X)$ 定义,其中 $X$ 表示训练数据样本 $X = {x_1, x_2, …, x_n} \in X$。例如,在二分类的情感分析任务中,$X$ 对应词袋表示,$x_i$ 对应语料库中的第 $i$ 个词项。当两个系统的特征空间或边缘概率分布不同时,我们称这两个领域不匹配。
-
任务(Task)
:任务 $T = (Y, f(\cdot))$ 由标签空间 $Y$ 和目标预测函数 $f(\cdot)$ 定义。标签空间包含所有实际标签的集合,例如二分类中的真和假。目标预测函数 $f(\cdot)$ 用于根据数据预测标签,从概率角度可解释为 $f(\cdot) \approx p(y|x)$。
给定源领域 $D_S$、源任务 $T_S$、目标领域 $D_T$ 和目标任务 $T_T$,迁移学习可以定义为:在目标领域 $D_T$ 中,利用源领域 $D_S$ 和源任务 $T_S$ 的知识来学习目标预测函数 $f_T(\cdot) = P(Y_T|X_T)$ 的过程,其中 $D_S \neq D_T$ 或 $T_S \neq T_T$。
3. 迁移学习场景
基于源和目标的领域和任务的不同组成部分,迁移学习有以下四种场景:
1.
特征空间不同($X_S \neq X_T$)
:例如在情感分类中,特征是为两种不同语言定义的。在自然语言处理(NLP)中,这通常被称为跨语言适应。
2.
源和目标之间的边缘概率分布不同($P(X_S) \neq P(X_T)$)
:比如,使用简写形式的聊天文本和使用正式语言的电子邮件文本都在讨论情感。
3.
源和目标之间的标签空间不同($Y_S \neq Y_T$)
:这意味着源任务和目标任务完全不同。例如,一个任务的标签对应情感(积极、中性、消极),另一个任务的标签对应情绪(愤怒、悲伤、快乐)。
4.
预测函数或条件概率分布不同($P(Y_S|X_S) \neq P(Y_T|X_T)$)
:例如,一个分布是平衡的,而另一个分布完全倾斜或高度不平衡;源中有相等数量的积极和消极情感案例,但目标中积极案例比消极案例少得多。
4. 迁移学习类别
基于源和目标之间“如何迁移”和“迁移什么”,迁移学习可以进一步分为多种类型,以下是深度学习领域中常见的几类:
-
自学习(Self - Taught Learning)
:当源标签不可用,但存在大量源数据和少量到大量的目标数据时,这种学习类别被称为自学习。在语音和文本等许多现实应用中,标注成本或工作量存在限制,而大量数据可用于学习并迁移到有标签的特定任务,这种技术非常成功。其核心假设是在源上采用某种无监督学习来捕获有助于将知识迁移到目标的特征。
-
多任务学习(Multitask Learning)
:当目标不仅是在目标任务上表现良好,而且要在源和目标任务上共同学习并都表现良好,且这些任务略有不同时,这种迁移学习形式称为多任务学习。其核心假设是在相关任务之间共享信息(这些任务应该有一些相似性)可以提高整体泛化能力。
-
领域适应(Domain Adaptation)
:与多任务学习相关,当源和目标之间的任务不同时,领域适应是一种学习形式,其中源和目标的领域(即数据的特征空间或边缘分布)不同。其核心原则是从源中学习一种领域不变的表示,以便有效地迁移到具有不同领域的目标。根据可用的标注数据数量(0、1、n),领域适应可以是零样本学习、一样本学习和少样本学习。
5. 自学习
自学习包括两个不同的步骤:
1. 从无标签的源数据集中以无监督的方式学习特征。
2. 使用有标签的目标数据集和分类器对这些学习到的特征进行微调。
5.1 自学习技术
-
无监督预训练和有监督微调
- 无监督特征学习算法(Algorithm 1) :
Data: Training Dataset x1(S),x2(S),··· ,xn(S) such that xi(S) ∈Rd, layers= L
Result: Weight matrix Wl ∈Rd and bl ∈R for each layer l
begin
appendClassifierLayer(hL)
for l = k to L do
Wl,bl = trainUnsupervised((x1(S),x2(S)..xn(S)))
return Wl,bl for each layer l
此算法的输入是大小为 $n$ 的源无标签数据集,下标 $(S)$ 表示源。学习的第一部分以无监督的方式从源进行,与传统机器学习中的特征或降维以及流形学习有很多相似之处。该过程通常采用线性和非线性技术来找到输入的潜在表示,其维度小于输入。在深度学习中,上述算法中的“train”对应许多无监督技术,如主成分分析(PCA)或独立成分分析(ICA)层、受限玻尔兹曼机、自编码器、稀疏自编码器、去噪自编码器、收缩自编码器和稀疏编码技术等,可用于特征学习。根据算法的不同,训练可以逐层进行或在所有层上进行。
自编码器是无监督学习方法中最流行的技术,层之间进行基本的编码和解码以匹配输入。神经元数量或层大小在自编码器学习中起着重要作用。当大小小于输入时,称为欠完备表示,可以看作是一种压缩机制,用于在较低维度中找到表示;当大小大于输入时,称为过完备表示,需要正则化技术(如稀疏性)来强制学习重要特征。在许多实际应用中,自编码器会堆叠在一起,从输入中创建分层或高级特征。
- **有监督微调算法(Algorithm 2)**:
Data: Training Dataset (x1(T),y2),(x2(T),y2),..(xm(T),yn) such that xi(T) ∈Rd and
yi ∈{+1,−1}, Trained Layers h1,h2,··· ,hL, Training layer start k
Result: Weight matrix Wl ∈Rd and bl ∈R for each layer l
begin
appendClassifierLayer(hL+1)
for l = k to L do
Wl,bl = train((x1(T),y1),(x2(T),y2),..(xm(T),yn))
return Wl,bl for each layer l
一旦学习到这些特征,下一步是使用目标数据集和分类器层(如 softmax)对其进行微调。有多种选择,例如在某个级别 $k > 1$ 冻结学习层的状态,仅使用其余层进行微调,或者使用所有层进行微调。
5.2 自学习理论
相关研究表明,预训练不仅提供了良好的起始条件,还捕获了参数之间的复杂依赖关系。无监督预训练可以作为一种正则化形式,引导权重朝着更好的极小值吸引盆发展。预训练过程获得的正则化影响有监督学习的起始点,并且与标准正则化技术(如 L1/L2)相比,这种影响不会随着数据量的增加而消失。在小训练数据设置中,无监督预训练具有很多优势。此外,在某些情况下,训练示例的顺序会影响结果,但预训练可以减少这种情况下的方差。
5.3 自学习在 NLP 中的应用
- 使用序列自编码器或基于语言模型的系统进行无监督特征学习,然后进行有监督训练,在文本分类任务(如 IMDB、DBpedia 和 20 Newsgroup 数据集)中取得了很好的效果。序列自编码器使用 LSTM 编码器 - 解码器以无监督的方式捕获依赖关系,LSTM 的权重用于在有监督设置中初始化带有 softmax 分类器的 LSTM。
- 预训练用于语言建模的 LSTM 编码器可以在不进行微调的情况下有效地用于情感分类。
- TopicRNN 架构(使用 RNN 处理局部句法依赖关系,使用主题建模处理全局语义潜在表示)可以是一种非常有效的特征提取器,在情感分类任务中取得了接近最先进的结果。
- 从多个嵌入中以无监督的方式学习特征并应用于各种有监督的 NLP 任务(如组块和命名实体识别)可以获得接近最先进的结果。
5.4 自学习在语音中的应用
- 早期研究表明,无监督预训练为权重提供了很好的初始化,在深度信念网络上使用有标签的微调进一步提高了自动语音识别任务的结果。
- 无监督预训练用于逐层学习受限玻尔兹曼机(RBMs),然后使用有标签的示例进行微调,不仅可以减少过拟合,还可以减少在有标签示例上的学习时间。
- 在大型数据集上进行无监督特征学习可以学习音素,有助于使用深度卷积网络进行各种音频分类任务。
下面用 mermaid 流程图展示自学习的步骤:
graph LR
A[无标签源数据集] --> B(无监督学习特征)
B --> C[学习到的特征]
D[有标签目标数据集] --> E(使用分类器微调特征)
C --> E
E --> F[微调后的特征]
6. 多任务学习
在机器学习中,通常是针对手头的任务,根据相应的数据集学习一个模型,这可以看作是单任务学习。而多任务学习(MTL)则是尝试从多个任务及其相应的数据集中进行联合学习。多任务学习的目标是通过利用相关任务训练信号中包含的特定领域信息来提高泛化能力,也可以称为归纳迁移过程。多任务学习引入的归纳偏置是通过迫使模型更喜欢解释多个任务而不是单个任务的假设。当每个任务的标注数据有限,并且任务之间的知识或学习到的特征存在重叠时,多任务学习通常很有效。
6.1 多任务学习技术
在深度学习中,处理多任务学习通常有两种通用方法:
-
硬参数共享
:这是神经网络中最古老的技术之一,使用单个模型,隐藏层共享公共权重,任务特定的权重在输出层学习。硬参数共享的最重要好处是通过在任务之间强制更多的泛化来防止过拟合。
-
软参数共享
:每个任务有独立的模型和单独的参数,并施加约束以使不同任务的参数更加相似。通常使用正则化技术来实施这些约束。
6.2 多线性关系网络(Multilinear Relationship Network,MRN)
MRN 是最早用于多任务学习的深度学习网络之一,在图像识别的不同任务中表现出了最先进的性能。它是 AlexNet 架构的改进,前几层是卷积层,一个全连接层学习可迁移的特征,而靠近输出的其余全连接层学习任务特定的特征。
假设存在 $T$ 个任务,训练数据为 $X_t, Y_t$($t = 1$ 到 $T$),其中 $X_t = {x_t^1, \cdots, x_t^N}$,$Y_t = {y_t^1, \cdots, y_t^N}$,第 $t$ 个任务有 $N_t$ 个训练示例和标签,特征空间维度为 $D$,标签空间基数为 $C$。第 $t$ 个任务在第 $l$ 层的网络参数为 $W_{t,l} \in R^{D_l^1 \times D_l^2}$,参数张量 $W_l = [W_{1,l}; \cdots; W_{T,l}] \in R^{D_l^1 \times D_l^2 \times T}$。全连接层(fc6 - fc8)学习的映射为 $h_{t,l}^n = a_l(W_{t,l}h_{t,l - 1}^n + b_{t,l})$,其中 $h_{t,l}^n$ 是每个数据实例 $x_t^n$ 的隐藏表示,$W_{t,l}$ 是权重,$b_{t,l}$ 是偏置,$a_l$ 是激活函数(如 ReLU)。第 $t$ 个任务的分类器为 $y = f_t(x)$,经验误差为:
$$\min \sum_{n = 1}^{N_t} J(f_t(x_t^n), y_t^n)$$
其中 $J(\cdot)$ 是交叉熵损失函数,$f_t(x_t^n)$ 是网络为数据点 $x_t^n$ 分配到标签 $y_t^n$ 的条件概率。MRN 在全连接的任务特定层上对参数张量具有张量正态先验,类似于贝叶斯模型,可作为任务相关学习的正则化。
给定训练数据,任务特定层 $L = {fc7, fc8}$ 的网络参数 $W = {W_l : l \in L}$ 的最大后验(MAP)估计为:
$$P(W|X,Y) \propto P(W) \cdot P(Y|X,W)$$
$$P(W|X,Y) = \prod_{l \in L} P(W_l) \cdot \prod_{t = 1}^{T} \prod_{n = 1}^{N_t} P(y_t^n|x_t^n, W_l)$$
假设每层的先验 $P(W_l)$ 和参数张量 $W_l$ 相互独立。最大似然估计(MLE)部分 $P(Y|X,W)$ 用于在较低层学习可迁移的特征,层(conv1 - fc6)的所有参数是共享的。任务特定层(fc7, fc8)不共享,以避免负迁移。先验部分 $p(W)$ 定义为张量正态分布:
$$p(W) = TN_{D_l^1 \times D_l^2 \times T}(O, \Sigma_l^1, \Sigma_l^2, \Sigma_l^3)$$
下面用表格总结多任务学习的两种方法:
| 方法 | 特点 | 优点 |
| ---- | ---- | ---- |
| 硬参数共享 | 单个模型,隐藏层共享公共权重,输出层学习任务特定权重 | 防止过拟合,提高泛化能力 |
| 软参数共享 | 每个任务有独立模型和单独参数,施加约束使参数更相似 | 可灵活调整任务间参数关系 |
综上所述,迁移学习及其相关的自学习和多任务学习技术在不同领域都有广泛的应用和良好的效果,通过合理利用这些技术,可以提高模型的性能和泛化能力。
7. 多任务学习与自学习的对比
为了更清晰地理解多任务学习和自学习,下面从多个方面对它们进行对比:
| 对比项 | 自学习 | 多任务学习 |
| ---- | ---- | ---- |
| 数据标签情况 | 源数据无标签,目标数据有少量到大量标签 | 源和目标任务都有标签 |
| 核心目标 | 利用大量无标签源数据学习特征并迁移到有标签的特定目标任务 | 联合学习源和目标任务,提高整体泛化能力 |
| 应用场景 | 标注成本高、数据量大的场景,如语音和文本处理 | 任务之间有知识或特征重叠且标注数据有限的场景 |
| 主要技术 | 无监督预训练和有监督微调 | 硬参数共享和软参数共享 |
8. 迁移学习的挑战与应对策略
迁移学习虽然有很多优势,但也面临一些挑战,以下是常见的挑战及应对策略:
-
领域差异过大
:当源领域和目标领域差异过大时,迁移的知识可能无法有效应用。应对策略是采用领域适应技术,学习领域不变的表示,例如使用对抗训练的方法,让模型学习到不受领域影响的特征。
-
负迁移问题
:迁移的知识可能对目标任务产生负面影响,导致性能下降。可以通过选择合适的源任务和源数据,以及在迁移过程中进行适当的正则化来避免负迁移。例如,在多任务学习中,不共享可能导致负迁移的任务特定层。
-
标注数据不足
:无论是自学习还是多任务学习,都可能面临标注数据不足的问题。对于自学习,可以利用大量无标签数据进行无监督学习;对于多任务学习,可以通过任务之间的信息共享来提高泛化能力,减少对标注数据的依赖。
9. 迁移学习的未来发展趋势
- 跨模态迁移学习 :随着多媒体数据的不断增加,跨模态迁移学习将成为一个重要的研究方向。例如,将图像中的知识迁移到文本任务中,或者将语音信息迁移到视觉任务中。
- 强化迁移学习 :结合强化学习和迁移学习,让智能体在不同的环境中快速学习和适应。例如,在机器人控制中,将一个环境中学习到的策略迁移到另一个相似的环境中。
- 自动化迁移学习 :开发自动化的迁移学习工具和框架,让非专业人员也能轻松使用迁移学习技术。例如,自动选择合适的源任务和迁移方法,自动调整模型参数。
10. 总结
迁移学习作为一种强大的机器学习技术,通过自学习和多任务学习等形式,能够有效地利用已有的知识和数据,提高模型在不同任务和领域的性能。自学习通过无监督预训练和有监督微调,在语音和文本等领域取得了很好的效果;多任务学习通过共享信息,在任务之间有重叠时能够提高整体泛化能力。
然而,迁移学习也面临着领域差异、负迁移和标注数据不足等挑战。未来,跨模态迁移学习、强化迁移学习和自动化迁移学习等方向将为迁移学习带来更广阔的发展空间。
在实际应用中,我们需要根据具体的任务和数据情况,选择合适的迁移学习方法,并采取相应的策略来应对挑战,以充分发挥迁移学习的优势。
下面用 mermaid 流程图展示迁移学习的整体流程:
graph LR
A[源数据和任务] --> B{选择迁移学习类型}
B -->|自学习| C(无监督预训练)
C --> D(有监督微调)
D --> E[目标任务模型]
B -->|多任务学习| F(硬/软参数共享)
F --> G[源和目标任务联合学习]
G --> E
B -->|领域适应| H(学习领域不变表示)
H --> E
通过对迁移学习的深入理解和应用,我们可以在不同的领域中更高效地利用数据和知识,推动机器学习技术的发展。
超级会员免费看
18万+

被折叠的 条评论
为什么被折叠?



