Transfer Learning/zh: Difference between revisions

    From Marovi AI
    (Batch translate Transfer Learning unit 28 → zh)
    (Updating to match new version of source page)
     
    (One intermediate revision by one other user not shown)
    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}}


    '''迁移学习'''(transfer learning)是一种机器学习技术,将在某一任务上训练好的模型作为另一不同但相关任务模型的起点。通过利用在大规模预训练中获得的知识,迁移学习显著减少了下游应用所需的标注数据量、算力和训练时间。
    '''迁移学习'''是一种机器学习技术,其中在某个任务上训练的模型被重新用作另一个不同但相关任务的模型的起点。通过利用从大规模{{Term|pre-training|预训练}}中获得的知识,迁移学习显著减少了下游应用所需的标注数据量、计算资源和训练时间。


    == 动机 ==
    == 动机 ==
    Line 13: Line 13:
    === 领域与任务 ===
    === 领域与任务 ===


    形式上,一个''''''(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> 组成。当源和目标在域、任务或两者上有所不同时,就适用迁移学习。
    形式上,一个'''领域''' <math>\mathcal{D} = \{\mathcal{X}, P(X)\}</math> 由一个{{Term|latent space|特征空间}} <math>\mathcal{X}</math> 和一个边缘分布 <math>P(X)</math> 组成。一个'''任务''' <math>\mathcal{T} = \{\mathcal{Y}, f(\cdot)\}</math> 由一个标签空间 <math>\mathcal{Y}</math> 和一个预测函数 <math>f</math> 组成。当源和目标在领域、任务或两者上有所不同时,便适用迁移学习。


    === 领域自适应 ===
    === 领域自适应 ===


    当源和目标共享同一任务但数据分布不同(<math>P_s(X) \neq P_t(X)</math>)时,该问题称为'''域适应'''(domain adaptation)。常用技术包括:
    当源和目标共享同一任务但数据分布不同时(<math>P_s(X) \neq P_t(X)</math>),该问题称为'''{{Term|domain adaptation|领域自适应}}'''。技术包括:


    * '''实例重加权''' — 调整样本权重,使源分布近似于目标分布。
    * '''实例重加权''' — 调整样本权重,使源分布近似于目标分布。
    Line 27: Line 27:
    {| class="wikitable"
    {| class="wikitable"
    |-
    |-
    ! 策略 !! 描述 !! 适用场景
    ! 策略 !! 描述 !! 何时使用
    |-
    |-
    | '''特征提取''' || 冻结所有预训练层;仅训练新的输出头 || 目标数据集非常小;源与目标高度相关
    | '''特征提取''' || 冻结所有预训练层;仅训练新的输出头 || 目标数据集非常小;源和目标密切相关
    |-
    |-
    | '''(全量)微调''' || 解冻所有层,使用较小的学习率端到端训练 || 目标数据集规模适中;源与目标存在明显差异
    | '''{{Term|fine-tuning|微调}}(完全)''' || 解冻所有层,并以较小的{{Term|learning rate|学习率}}进行端到端训练 || 目标数据集中等;源和目标存在显著差异
    |-
    |-
    | '''渐进式解冻''' || 在训练过程中自上而下逐步解冻各层 || 在保持低层特征稳定与适配高层特征之间取得平衡
    | '''逐步解冻''' || 在训练过程中自上而下逐步解冻各层 || 平衡较低层特征的稳定性与较高层特征的适应性
    |}
    |}


    常见的经验法则是:为预训练层设置比新分类头小 10–100 倍的学习率,以防止已学得的表示发生灾难性遗忘。
    一种常见的经验法则是为预训练层使用比新分类头小 10–100 倍的{{Term|learning rate|学习率}},从而防止已学习表示的灾难性遗忘。


    == 预训练模型 ==
    == 预训练模型 ==
    Line 42: Line 42:
    === 计算机视觉 ===
    === 计算机视觉 ===


    在 ImageNet 上预训练的卷积网络(ResNet、EfficientNet、ViT)是标准骨干网络。低层学习诸如边缘和纹理之类的通用特征,而高层则学习特定于任务的模式。在仅有几千张图像的医学影像数据集上对 ImageNet 模型进行微调,通常优于从零开始训练。
    在 ImageNet 上预训练的卷积网络(ResNet、EfficientNet、ViT)可作为标准骨干网络。较低层学习边缘和纹理等通用特征,而较高层则学习特定于任务的模式。在仅有数千张图像的医学影像数据集上对 ImageNet 模型进行{{Term|fine-tuning|微调}},通常优于从零开始训练。


    === 自然语言处理 ===
    === 自然语言处理 ===


    语言模型的预训练改变了自然语言处理(NLP)。主要里程碑包括:
    语言模型的{{Term|pre-training|预训练}}变革了 NLP。关键里程碑包括:


    * '''Word2Vec / GloVe''' —— 在大规模语料上预训练的静态词嵌入。
    * '''Word2Vec / GloVe''' — 在大型语料库上预训练的静态词{{Term|embedding|嵌入}}。
    * '''ELMo''' —— 来自双向 LSTM 的上下文相关嵌入。
    * '''ELMo''' 来自双向 {{Term|long short-term memory|LSTM}} 的上下文化{{Term|embedding|嵌入}}。
    * '''BERT'''(Devlin 等,2019)—— 通过掩码语言建模预训练的双向 Transformer;可微调用于分类、问答、命名实体识别等任务。
    * '''BERT'''(Devlin 等,2019)— 通过掩码语言建模预训练的双向 {{Term|transformer|Transformer}};可针对分类、问答、命名实体识别等任务进行微调。
    * '''GPT 系列''' —— 自回归 Transformer,证明了规模与预训练可实现 few-shot 和 zero-shot 迁移。
    * '''GPT 系列''' 自回归 {{Term|transformer|Transformer}},证明了规模与{{Term|pre-training|预训练}}能够实现少样本和零样本迁移。


    == 何时使用迁移学习 ==
    == 何时使用迁移学习 ==
    Line 58: Line 58:


    # 目标数据集相对于模型容量较小。
    # 目标数据集相对于模型容量较小。
    # 源域与目标域具有结构上的相似性(例如,都涉及自然图像或自然语言)。
    # 源域和目标域具有结构相似性(例如,两者都涉及自然图像或自然语言)。
    # 没有进行完整预训练所需的计算资源。
    # 缺乏进行完整{{Term|pre-training|预训练}}所需的计算资源。
    # 在投入大规模数据采集之前需要快速原型验证。
    # 在投入大规模数据收集之前需要快速原型设计。


    当源领域和目标领域本质上不同时,它可能会损害性能('''负迁移''')——例如,在没有适当自适应的情况下从自然图像迁移到频谱图。
    当源领域和目标领域本质上不同时,它可能会损害性能('''负迁移''')——例如,在没有适当自适应的情况下从自然图像迁移到频谱图。
    Line 66: Line 66:
    == 实用技巧 ==
    == 实用技巧 ==


    * '''数据增强'''通过人为扩大目标数据集的有效规模,对迁移学习形成补充。
    * '''数据增强'''通过人为扩大目标数据集的有效规模来补充迁移学习。
    * '''学习率预热'''(learning rate warmup)有助于在微调大型预训练模型时稳定训练初期。
    * '''{{Term|learning rate|学习率}}预热'''有助于在对大型预训练模型进行{{Term|fine-tuning|微调}}时稳定早期训练。
    * 在验证集上进行'''早停'''(early stopping)可防止微调过程中的过拟合,对小数据集尤为重要。
    * 在验证集上的'''早停'''可防止{{Term|fine-tuning|微调}}过程中的{{Term|overfitting|过拟合}},尤其是在小数据集上。
    * '''逐层学习率衰减'''为较早(更通用)的层分配较小的学习率,为较晚(更任务特定)的层分配较大的学习率。
    * '''逐层{{Term|learning rate|学习率}}衰减'''为较早(更通用)的层分配较小的学习率,为较晚(更特定于任务)的层分配较大的学习率。
    * '''中间任务迁移''' —— 在最终目标任务之前先在相关的中间任务上进行微调(例如,先做 NLI 再做情感分析),可进一步提升效果。
    * '''中间任务迁移''' — 在最终目标之前对相关的中间任务进行{{Term|fine-tuning|微调}}(例如,在情感分析之前进行 NLI)可以进一步改善结果。


    == 评估 ==
    == 评估 ==
    Line 78: Line 78:
    :<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>


    <math>\Delta_{\mathrm{transfer}}</math> 为正值表明知识迁移成功。从业者还会跟踪收敛速度,因为迁移后的模型往往只需若干分之一的训练轮数即可达到目标性能。
    正的 <math>\Delta_{\mathrm{transfer}}</math> 表示知识迁移成功。从业者还会跟踪{{Term|convergence|收敛}}速度,因为迁移后的模型通常能在一小部分{{Term|epoch|轮次}}内达到目标性能。


    == 参见 ==
    == 参见 ==
    Line 92: Line 92:
    * 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''.
    * Devlin, J. et al. (2019). "BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding". ''NAACL''.
    * Devlin, J. et al. (2019). "BERT: {{Term|pre-training|Pre-training}} of Deep Bidirectional {{Term|transformer|Transformers}} for Language Understanding". ''NAACL''.
    * Howard, J. and Ruder, S. (2018). "Universal Language Model Fine-tuning for Text Classification". ''ACL''.
    * Howard, J. and Ruder, S. (2018). "Universal Language Model {{Term|fine-tuning|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''.


    [[Category:Machine Learning]]
    [[Category:Machine Learning]]
    [[Category:Intermediate]]
    [[Category:Intermediate]]

    Latest revision as of 23:44, 27 April 2026

    Other languages:
    Article
    Topic area Machine Learning
    Difficulty Intermediate
    Prerequisites Neural Networks

    迁移学习是一种机器学习技术,其中在某个任务上训练的模型被重新用作另一个不同但相关任务的模型的起点。通过利用从大规模预训练中获得的知识,迁移学习显著减少了下游应用所需的标注数据量、计算资源和训练时间。

    动机

    从零开始训练深度神经网络通常需要大型数据集和大量的计算资源。在许多实际领域中——医学影像、法律文本分析、低资源语言——标注数据稀缺。迁移学习解决了这种不匹配:在数据丰富的源任务上预训练的模型可以捕获通用特征(边缘、纹理、句法模式),这些特征可以很好地迁移到数据稀缺的目标任务上。

    关键概念

    领域与任务

    形式上,一个领域 $ \mathcal{D} = \{\mathcal{X}, P(X)\} $ 由一个特征空间 $ \mathcal{X} $ 和一个边缘分布 $ P(X) $ 组成。一个任务 $ \mathcal{T} = \{\mathcal{Y}, f(\cdot)\} $ 由一个标签空间 $ \mathcal{Y} $ 和一个预测函数 $ f $ 组成。当源和目标在领域、任务或两者上有所不同时,便适用迁移学习。

    领域自适应

    当源和目标共享同一任务但数据分布不同时($ P_s(X) \neq P_t(X) $),该问题称为领域自适应。技术包括:

    • 实例重加权 — 调整样本权重,使源分布近似于目标分布。
    • 特征对齐 — 学习领域不变的表示(例如,通过对抗训练或最大均值差异)。
    • 自训练 — 使用模型对未标注目标数据的预测作为伪标签。

    微调与特征提取

    策略 描述 何时使用
    特征提取 冻结所有预训练层;仅训练新的输出头 目标数据集非常小;源和目标密切相关
    微调(完全) 解冻所有层,并以较小的学习率进行端到端训练 目标数据集中等;源和目标存在显著差异
    逐步解冻 在训练过程中自上而下逐步解冻各层 平衡较低层特征的稳定性与较高层特征的适应性

    一种常见的经验法则是为预训练层使用比新分类头小 10–100 倍的学习率,从而防止已学习表示的灾难性遗忘。

    预训练模型

    计算机视觉

    在 ImageNet 上预训练的卷积网络(ResNet、EfficientNet、ViT)可作为标准骨干网络。较低层学习边缘和纹理等通用特征,而较高层则学习特定于任务的模式。在仅有数千张图像的医学影像数据集上对 ImageNet 模型进行微调,通常优于从零开始训练。

    自然语言处理

    语言模型的预训练变革了 NLP。关键里程碑包括:

    • Word2Vec / GloVe — 在大型语料库上预训练的静态词嵌入
    • ELMo — 来自双向 LSTM 的上下文化嵌入
    • BERT(Devlin 等,2019)— 通过掩码语言建模预训练的双向 Transformer;可针对分类、问答、命名实体识别等任务进行微调。
    • GPT 系列 — 自回归 Transformer,证明了规模与预训练能够实现少样本和零样本迁移。

    何时使用迁移学习

    迁移学习在以下情况下最为有益:

    1. 目标数据集相对于模型容量较小。
    2. 源域和目标域具有结构相似性(例如,两者都涉及自然图像或自然语言)。
    3. 缺乏进行完整预训练所需的计算资源。
    4. 在投入大规模数据收集之前需要快速原型设计。

    当源领域和目标领域本质上不同时,它可能会损害性能(负迁移)——例如,在没有适当自适应的情况下从自然图像迁移到频谱图。

    实用技巧

    • 数据增强通过人为扩大目标数据集的有效规模来补充迁移学习。
    • 学习率预热有助于在对大型预训练模型进行微调时稳定早期训练。
    • 在验证集上的早停可防止微调过程中的过拟合,尤其是在小数据集上。
    • 逐层学习率衰减为较早(更通用)的层分配较小的学习率,为较晚(更特定于任务)的层分配较大的学习率。
    • 中间任务迁移 — 在最终目标之前对相关的中间任务进行微调(例如,在情感分析之前进行 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.