Transfer Learning/zh: Difference between revisions
(Batch translate Transfer Learning unit 28 → zh) |
(Batch translate Transfer Learning unit 32 → zh) |
||
| Line 3: | Line 3: | ||
{{ContentMeta | generated_by = claude-opus | model_used = claude-opus-4-6 | generated_date = 2026-03-13}} | {{ContentMeta | generated_by = claude-opus | model_used = claude-opus-4-6 | generated_date = 2026-03-13}} | ||
<div class="mw-translate-fuzzy"> | |||
'''迁移学习'''(transfer learning)是一种机器学习技术,将在某一任务上训练好的模型作为另一不同但相关任务模型的起点。通过利用在大规模预训练中获得的知识,迁移学习显著减少了下游应用所需的标注数据量、算力和训练时间。 | '''迁移学习'''(transfer learning)是一种机器学习技术,将在某一任务上训练好的模型作为另一不同但相关任务模型的起点。通过利用在大规模预训练中获得的知识,迁移学习显著减少了下游应用所需的标注数据量、算力和训练时间。 | ||
</div> | |||
== 动机 == | == 动机 == | ||
| Line 13: | Line 15: | ||
=== 领域与任务 === | === 领域与任务 === | ||
<div class="mw-translate-fuzzy"> | |||
形式上,一个'''域'''(domain)<math>\mathcal{D} = \{\mathcal{X}, P(X)\}</math> 由特征空间 <math>\mathcal{X}</math> 和边缘分布 <math>P(X)</math> 组成。一个'''任务'''(task)<math>\mathcal{T} = \{\mathcal{Y}, f(\cdot)\}</math> 由标签空间 <math>\mathcal{Y}</math> 和预测函数 <math>f</math> 组成。当源和目标在域、任务或两者上有所不同时,就适用迁移学习。 | 形式上,一个'''域'''(domain)<math>\mathcal{D} = \{\mathcal{X}, P(X)\}</math> 由特征空间 <math>\mathcal{X}</math> 和边缘分布 <math>P(X)</math> 组成。一个'''任务'''(task)<math>\mathcal{T} = \{\mathcal{Y}, f(\cdot)\}</math> 由标签空间 <math>\mathcal{Y}</math> 和预测函数 <math>f</math> 组成。当源和目标在域、任务或两者上有所不同时,就适用迁移学习。 | ||
</div> | |||
=== 领域自适应 === | === 领域自适应 === | ||
<div class="mw-translate-fuzzy"> | |||
当源和目标共享同一任务但数据分布不同(<math>P_s(X) \neq P_t(X)</math>)时,该问题称为'''域适应'''(domain adaptation)。常用技术包括: | 当源和目标共享同一任务但数据分布不同(<math>P_s(X) \neq P_t(X)</math>)时,该问题称为'''域适应'''(domain adaptation)。常用技术包括: | ||
</div> | |||
* '''实例重加权''' — 调整样本权重,使源分布近似于目标分布。 | * '''实例重加权''' — 调整样本权重,使源分布近似于目标分布。 | ||
| Line 25: | Line 31: | ||
== 微调与特征提取 == | == 微调与特征提取 == | ||
<div class="mw-translate-fuzzy"> | |||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
| Line 35: | Line 42: | ||
| '''渐进式解冻''' || 在训练过程中自上而下逐步解冻各层 || 在保持低层特征稳定与适配高层特征之间取得平衡 | | '''渐进式解冻''' || 在训练过程中自上而下逐步解冻各层 || 在保持低层特征稳定与适配高层特征之间取得平衡 | ||
|} | |} | ||
</div> | |||
<div class="mw-translate-fuzzy"> | |||
常见的经验法则是:为预训练层设置比新分类头小 10–100 倍的学习率,以防止已学得的表示发生灾难性遗忘。 | 常见的经验法则是:为预训练层设置比新分类头小 10–100 倍的学习率,以防止已学得的表示发生灾难性遗忘。 | ||
</div> | |||
== 预训练模型 == | == 预训练模型 == | ||
| Line 42: | Line 52: | ||
=== 计算机视觉 === | === 计算机视觉 === | ||
<div class="mw-translate-fuzzy"> | |||
在 ImageNet 上预训练的卷积网络(ResNet、EfficientNet、ViT)是标准骨干网络。低层学习诸如边缘和纹理之类的通用特征,而高层则学习特定于任务的模式。在仅有几千张图像的医学影像数据集上对 ImageNet 模型进行微调,通常优于从零开始训练。 | 在 ImageNet 上预训练的卷积网络(ResNet、EfficientNet、ViT)是标准骨干网络。低层学习诸如边缘和纹理之类的通用特征,而高层则学习特定于任务的模式。在仅有几千张图像的医学影像数据集上对 ImageNet 模型进行微调,通常优于从零开始训练。 | ||
</div> | |||
=== 自然语言处理 === | === 自然语言处理 === | ||
<div class="mw-translate-fuzzy"> | |||
语言模型的预训练改变了自然语言处理(NLP)。主要里程碑包括: | 语言模型的预训练改变了自然语言处理(NLP)。主要里程碑包括: | ||
</div> | |||
<div class="mw-translate-fuzzy"> | |||
* '''Word2Vec / GloVe''' —— 在大规模语料上预训练的静态词嵌入。 | * '''Word2Vec / GloVe''' —— 在大规模语料上预训练的静态词嵌入。 | ||
* '''ELMo''' —— 来自双向 LSTM 的上下文相关嵌入。 | * '''ELMo''' —— 来自双向 LSTM 的上下文相关嵌入。 | ||
* '''BERT'''(Devlin 等,2019)—— 通过掩码语言建模预训练的双向 Transformer;可微调用于分类、问答、命名实体识别等任务。 | * '''BERT'''(Devlin 等,2019)—— 通过掩码语言建模预训练的双向 Transformer;可微调用于分类、问答、命名实体识别等任务。 | ||
* '''GPT 系列''' —— 自回归 Transformer,证明了规模与预训练可实现 few-shot 和 zero-shot 迁移。 | * '''GPT 系列''' —— 自回归 Transformer,证明了规模与预训练可实现 few-shot 和 zero-shot 迁移。 | ||
</div> | |||
== 何时使用迁移学习 == | == 何时使用迁移学习 == | ||
| Line 57: | Line 73: | ||
迁移学习在以下情况下最为有益: | 迁移学习在以下情况下最为有益: | ||
<div class="mw-translate-fuzzy"> | |||
# 目标数据集相对于模型容量较小。 | # 目标数据集相对于模型容量较小。 | ||
# 源域与目标域具有结构上的相似性(例如,都涉及自然图像或自然语言)。 | # 源域与目标域具有结构上的相似性(例如,都涉及自然图像或自然语言)。 | ||
# 没有进行完整预训练所需的计算资源。 | # 没有进行完整预训练所需的计算资源。 | ||
# 在投入大规模数据采集之前需要快速原型验证。 | # 在投入大规模数据采集之前需要快速原型验证。 | ||
</div> | |||
当源领域和目标领域本质上不同时,它可能会损害性能('''负迁移''')——例如,在没有适当自适应的情况下从自然图像迁移到频谱图。 | 当源领域和目标领域本质上不同时,它可能会损害性能('''负迁移''')——例如,在没有适当自适应的情况下从自然图像迁移到频谱图。 | ||
| Line 66: | Line 84: | ||
== 实用技巧 == | == 实用技巧 == | ||
<div class="mw-translate-fuzzy"> | |||
* '''数据增强'''通过人为扩大目标数据集的有效规模,对迁移学习形成补充。 | * '''数据增强'''通过人为扩大目标数据集的有效规模,对迁移学习形成补充。 | ||
* '''学习率预热'''(learning rate warmup)有助于在微调大型预训练模型时稳定训练初期。 | * '''学习率预热'''(learning rate warmup)有助于在微调大型预训练模型时稳定训练初期。 | ||
| Line 71: | Line 90: | ||
* '''逐层学习率衰减'''为较早(更通用)的层分配较小的学习率,为较晚(更任务特定)的层分配较大的学习率。 | * '''逐层学习率衰减'''为较早(更通用)的层分配较小的学习率,为较晚(更任务特定)的层分配较大的学习率。 | ||
* '''中间任务迁移''' —— 在最终目标任务之前先在相关的中间任务上进行微调(例如,先做 NLI 再做情感分析),可进一步提升效果。 | * '''中间任务迁移''' —— 在最终目标任务之前先在相关的中间任务上进行微调(例如,先做 NLI 再做情感分析),可进一步提升效果。 | ||
</div> | |||
== 评估 == | == 评估 == | ||
| Line 78: | Line 98: | ||
:<math>\Delta_{\mathrm{transfer}} = \mathrm{Acc}_{\mathrm{transfer}} - \mathrm{Acc}_{\mathrm{scratch}}</math> | :<math>\Delta_{\mathrm{transfer}} = \mathrm{Acc}_{\mathrm{transfer}} - \mathrm{Acc}_{\mathrm{scratch}}</math> | ||
<div class="mw-translate-fuzzy"> | |||
<math>\Delta_{\mathrm{transfer}}</math> 为正值表明知识迁移成功。从业者还会跟踪收敛速度,因为迁移后的模型往往只需若干分之一的训练轮数即可达到目标性能。 | <math>\Delta_{\mathrm{transfer}}</math> 为正值表明知识迁移成功。从业者还会跟踪收敛速度,因为迁移后的模型往往只需若干分之一的训练轮数即可达到目标性能。 | ||
</div> | |||
== 参见 == | == 参见 == | ||
| Line 90: | Line 112: | ||
== 参考文献 == | == 参考文献 == | ||
<div class="mw-translate-fuzzy"> | |||
* Pan, S. J. and Yang, Q. (2010). "A Survey on Transfer Learning". ''IEEE Transactions on Knowledge and Data Engineering''. | * Pan, S. J. and Yang, Q. (2010). "A Survey on Transfer Learning". ''IEEE Transactions on Knowledge and Data Engineering''. | ||
* Yosinski, J. et al. (2014). "How transferable are features in deep neural networks?". ''NeurIPS''. | * Yosinski, J. et al. (2014). "How transferable are features in deep neural networks?". ''NeurIPS''. | ||
| Line 95: | Line 118: | ||
* Howard, J. and Ruder, S. (2018). "Universal Language Model Fine-tuning for Text Classification". ''ACL''. | * Howard, J. and Ruder, S. (2018). "Universal Language Model Fine-tuning for Text Classification". ''ACL''. | ||
* Zhuang, F. et al. (2021). "A Comprehensive Survey on Transfer Learning". ''Proceedings of the IEEE''. | * Zhuang, F. et al. (2021). "A Comprehensive Survey on Transfer Learning". ''Proceedings of the IEEE''. | ||
</div> | |||
[[Category:Machine Learning]] | [[Category:Machine Learning]] | ||
[[Category:Intermediate]] | [[Category:Intermediate]] | ||
Revision as of 23:42, 27 April 2026
| Article | |
|---|---|
| Topic area | Machine Learning |
| Difficulty | Intermediate |
| Prerequisites | Neural Networks |
迁移学习(transfer learning)是一种机器学习技术,将在某一任务上训练好的模型作为另一不同但相关任务模型的起点。通过利用在大规模预训练中获得的知识,迁移学习显著减少了下游应用所需的标注数据量、算力和训练时间。
动机
从零开始训练深度神经网络通常需要大型数据集和大量的计算资源。在许多实际领域中——医学影像、法律文本分析、低资源语言——标注数据稀缺。迁移学习解决了这种不匹配:在数据丰富的源任务上预训练的模型可以捕获通用特征(边缘、纹理、句法模式),这些特征可以很好地迁移到数据稀缺的目标任务上。
关键概念
领域与任务
形式上,一个域(domain)$ \mathcal{D} = \{\mathcal{X}, P(X)\} $ 由特征空间 $ \mathcal{X} $ 和边缘分布 $ P(X) $ 组成。一个任务(task)$ \mathcal{T} = \{\mathcal{Y}, f(\cdot)\} $ 由标签空间 $ \mathcal{Y} $ 和预测函数 $ f $ 组成。当源和目标在域、任务或两者上有所不同时,就适用迁移学习。
领域自适应
当源和目标共享同一任务但数据分布不同($ P_s(X) \neq P_t(X) $)时,该问题称为域适应(domain adaptation)。常用技术包括:
- 实例重加权 — 调整样本权重,使源分布近似于目标分布。
- 特征对齐 — 学习领域不变的表示(例如,通过对抗训练或最大均值差异)。
- 自训练 — 使用模型对未标注目标数据的预测作为伪标签。
微调与特征提取
| 策略 | 描述 | 适用场景 |
|---|---|---|
| 特征提取 | 冻结所有预训练层;仅训练新的输出头 | 目标数据集非常小;源与目标高度相关 |
| (全量)微调 | 解冻所有层,使用较小的学习率端到端训练 | 目标数据集规模适中;源与目标存在明显差异 |
| 渐进式解冻 | 在训练过程中自上而下逐步解冻各层 | 在保持低层特征稳定与适配高层特征之间取得平衡 |
常见的经验法则是:为预训练层设置比新分类头小 10–100 倍的学习率,以防止已学得的表示发生灾难性遗忘。
预训练模型
计算机视觉
在 ImageNet 上预训练的卷积网络(ResNet、EfficientNet、ViT)是标准骨干网络。低层学习诸如边缘和纹理之类的通用特征,而高层则学习特定于任务的模式。在仅有几千张图像的医学影像数据集上对 ImageNet 模型进行微调,通常优于从零开始训练。
自然语言处理
语言模型的预训练改变了自然语言处理(NLP)。主要里程碑包括:
- Word2Vec / GloVe —— 在大规模语料上预训练的静态词嵌入。
- ELMo —— 来自双向 LSTM 的上下文相关嵌入。
- BERT(Devlin 等,2019)—— 通过掩码语言建模预训练的双向 Transformer;可微调用于分类、问答、命名实体识别等任务。
- GPT 系列 —— 自回归 Transformer,证明了规模与预训练可实现 few-shot 和 zero-shot 迁移。
何时使用迁移学习
迁移学习在以下情况下最为有益:
- 目标数据集相对于模型容量较小。
- 源域与目标域具有结构上的相似性(例如,都涉及自然图像或自然语言)。
- 没有进行完整预训练所需的计算资源。
- 在投入大规模数据采集之前需要快速原型验证。
当源领域和目标领域本质上不同时,它可能会损害性能(负迁移)——例如,在没有适当自适应的情况下从自然图像迁移到频谱图。
实用技巧
- 数据增强通过人为扩大目标数据集的有效规模,对迁移学习形成补充。
- 学习率预热(learning rate warmup)有助于在微调大型预训练模型时稳定训练初期。
- 在验证集上进行早停(early stopping)可防止微调过程中的过拟合,对小数据集尤为重要。
- 逐层学习率衰减为较早(更通用)的层分配较小的学习率,为较晚(更任务特定)的层分配较大的学习率。
- 中间任务迁移 —— 在最终目标任务之前先在相关的中间任务上进行微调(例如,先做 NLI 再做情感分析),可进一步提升效果。
评估
迁移学习的有效性通常通过比较以下内容来衡量:
- $ \Delta_{\mathrm{transfer}} = \mathrm{Acc}_{\mathrm{transfer}} - \mathrm{Acc}_{\mathrm{scratch}} $
$ \Delta_{\mathrm{transfer}} $ 为正值表明知识迁移成功。从业者还会跟踪收敛速度,因为迁移后的模型往往只需若干分之一的训练轮数即可达到目标性能。
参见
参考文献
- Pan, S. J. and Yang, Q. (2010). "A Survey on Transfer Learning". IEEE Transactions on Knowledge and Data Engineering.
- Yosinski, J. et al. (2014). "How transferable are features in deep neural networks?". NeurIPS.
- Devlin, J. et al. (2019). "BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding". NAACL.
- Howard, J. and Ruder, S. (2018). "Universal Language Model Fine-tuning for Text Classification". ACL.
- Zhuang, F. et al. (2021). "A Comprehensive Survey on Transfer Learning". Proceedings of the IEEE.