Transfer Learning/zh: Difference between revisions

    From Marovi AI
    (Updating to match new version of source page)
    (Updating to match new version of source page)
     
    (2 intermediate revisions 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}}


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


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


    <div class="mw-translate-fuzzy">
    形式上,一个'''领域''' <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>\mathcal{D} = \{\mathcal{X}, P(X)\}</math> 由特征空间 <math>\mathcal{X}</math> 和边缘分布 <math>P(X)</math> 组成。一个'''任务''' <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>),该问题称为'''{{Term|domain adaptation|领域自适应}}'''。技术包括:
    当源和目标共享相同的任务但数据分布不同时(<math>P_s(X) \neq P_t(X)</math>),该问题称为'''领域自适应'''。技术包括:
    </div>


    * '''实例重加权''' — 调整样本权重,使源分布近似于目标分布。
    * '''实例重加权''' — 调整样本权重,使源分布近似于目标分布。
    Line 31: Line 25:
    == 微调与特征提取 ==
    == 微调与特征提取 ==


    <div class="mw-translate-fuzzy">
    {| class="wikitable"
    {| class="wikitable"
    |-
    |-
    Line 38: Line 31:
    | '''特征提取''' || 冻结所有预训练层;仅训练新的输出头 || 目标数据集非常小;源和目标密切相关
    | '''特征提取''' || 冻结所有预训练层;仅训练新的输出头 || 目标数据集非常小;源和目标密切相关
    |-
    |-
    | '''微调(完整)''' || 解冻所有层,并以较小的学习率进行端到端训练 || 中等规模的目标数据集;源和目标存在明显差异
    | '''{{Term|fine-tuning|微调}}(完全)''' || 解冻所有层,并以较小的{{Term|learning rate|学习率}}进行端到端训练 || 目标数据集中等;源和目标存在显著差异
    |-
    |-
    | '''渐进解冻''' || 在训练过程中从顶层到底层逐步解冻各层 || 平衡较低层特征的稳定性与较高层的自适应能力
    | '''逐步解冻''' || 在训练过程中自上而下逐步解冻各层 || 平衡较低层特征的稳定性与较高层特征的适应性
    |}
    |}
    </div>


    <div class="mw-translate-fuzzy">
    一种常见的经验法则是为预训练层使用比新分类头小 10–100 倍的{{Term|learning rate|学习率}},从而防止已学习表示的灾难性遗忘。
    一个常用的经验法则是对预训练层使用比新分类头小10到100倍的学习率,以防止已学习表示的灾难性遗忘。
    </div>


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


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


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


    <div class="mw-translate-fuzzy">
    语言模型的{{Term|pre-training|预训练}}变革了 NLP。关键里程碑包括:
    语言模型预训练改变了自然语言处理。关键的里程碑包括:
    </div>


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


    == 何时使用迁移学习 ==
    == 何时使用迁移学习 ==
    Line 73: Line 57:
    迁移学习在以下情况下最为有益:
    迁移学习在以下情况下最为有益:


    <div class="mw-translate-fuzzy">
    # 目标数据集相对于模型容量较小。
    # 目标数据集相对于模型容量较小。
    # 源领域和目标领域具有结构上的相似性(例如,两者都涉及自然图像或自然语言)。
    # 源域和目标域具有结构相似性(例如,两者都涉及自然图像或自然语言)。
    # 无法获得用于完整预训练的计算资源。
    # 缺乏进行完整{{Term|pre-training|预训练}}所需的计算资源。
    # 在投入大规模数据收集之前需要进行快速原型设计。
    # 在投入大规模数据收集之前需要快速原型设计。
    </div>


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


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


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


    <div class="mw-translate-fuzzy">
    正的 <math>\Delta_{\mathrm{transfer}}</math> 表示知识迁移成功。从业者还会跟踪{{Term|convergence|收敛}}速度,因为迁移后的模型通常能在一小部分{{Term|epoch|轮次}}内达到目标性能。
    正的 <math>\Delta_{\mathrm{transfer}}</math> 表示知识迁移成功。从业者还会跟踪收敛速度,因为迁移的模型通常可以在一小部分epoch内达到目标性能。
    </div>


    == 参见 ==
    == 参见 ==
    Line 112: Line 90:
    == 参考文献 ==
    == 参考文献 ==


    <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''.
    * 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''.
    </div>


    [[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.