迁移学习入门:把已有模型的知识迁移到新任务

训练一个深度学习模型从头开始,往往意味着海量标注数据和昂贵的算力。现实里,多数团队既缺数据又缺算力。迁移学习(Transfer Learning)给出的思路是:先在大规模数据上训练一个「通用底座」模型,再把它的知识迁移到你的具体任务上。这篇我们讲清从预训练、微调到领域自适应与少样本的核心做法。

预训练与微调:现代迁移学习的主干范式

迁移学习的核心是「把一个领域学到的知识,用到另一个相关领域」。今天最主流的落地方式,是先做预训练(Pre-training),再做微调(Fine-tuning)。

预训练阶段:在大规模通用语料或图像上,用自监督或监督任务训练出一个基础模型,让它学会通用特征(如语言的语法语义、图像的边缘纹理)。这一步通常由大厂或研究机构完成(已核验:BERT、ResNet、ViT 等均为典型预训练模型)。

微调阶段:把预训练模型接上你任务的小数据集,继续训练(通常只改最后几层或全量轻量训练),让它适配具体目标。相比从零训练,微调只需少量数据和较少算力就能达到不错效果。

预训练:源任务(大数据) -> 通用底座模型 -> 微调 -> 目标任务(小数据)

特征复用与微调策略:冻结层与分层学习率

微调不是「全量重训」这么简单,关键在「复用哪些特征、更新哪些参数」。神经网络通常具有层级特性:浅层学通用低层特征,深层学任务相关高层特征(已核验:这一观察在视觉模型中被广泛证实,见 Yosinski 等 2014 年研究)。

常用策略:

  • 冻结底层(Freeze):只训练分类头或顶层,底层权重固定,适合数据很少、防过拟合。
  • 分层学习率(Discriminative LR):底层用小学习率(保留通用特征),顶层用大学习率(快速适配),典型工具如 fastai 的 slice 设定。
  • 全量微调(Full Fine-tuning):所有层一起更新,数据充足时效果上限更高,但算力与过拟合风险也更大。
# 分层学习率示意(PyTorch)
optimizer = torch.optim.Adam([
    {"params": base_model.layer1.parameters(), "lr": 1e-5},  # 底层:小
    {"params": base_model.layer4.parameters(), "lr": 1e-4},  # 顶层:大
    {"params": classifier.parameters(),       "lr": 1e-3},  # 新头:最大
])

参数高效微调(PEFT)如 LoRA,则只训练注入的低秩适配器,冻结原模型绝大部分权重(待核实:LoRA 在保持原权重不变的前提下显著降低显存占用,具体节省比例依实现而定)。

领域自适应:当源域与目标域分布不同

预训练与微调默认「源域和目标域足够相似」。但现实中常遇到分布偏移:比如用白天清晰图训练的模型,要部署到夜间模糊监控画面。领域自适应(Domain Adaptation)专门处理「特征分布不同但任务相同」的情形。

核心思路是缩小域间差异,常见做法:

  • 对抗训练(如 DANN):加一个判别器试图区分样本来自哪个域,特征提取器则努力「骗过」它,从而学到域不变特征(已核验:Domain-Adversarial Training 由 Ganin 等 2016 年提出)。
  • 统计对齐:最小化源域与目标域特征的均值或方差,或最大均值差异(MMD)。
  • 自训练与伪标签:用源模型给目标域打伪标签,再迭代 refinement。

Fine-tuning 与 Prompt-tuning 的区别

两者都用预训练模型,但「改什么」截然不同:

  • Fine-tuning:更新模型自身的权重参数,使模型内部表征适配新任务。需要存一份任务专属的权重副本,部署多个任务时成本高。
  • Prompt-tuning 与 Prefix-tuning:冻结原模型,只学习一小段可训练的「提示向量」(软提示),原模型权重不动(已核验:这一概念在 2021 年前后由 Lester 等、Li 与 Liang 等工作系统提出)。

简单对比:

Fine-tuning   : 模型权重变,提示不变   —— 任务多时显存与存储成本高
Prompt-tuning : 模型权重不变,提示变 —— 一份底座服务多任务,轻量灵活

对大模型的少样本场景,Prompt-tuning 类方法往往更经济;需要极致效果且数据充足时,Fine-tuning 仍常占优。

适用场景与局限

迁移学习最适合:

  • 目标数据少、标注贵,但存在相关的大数据预训练模型(已核验:这是它最普遍的落地前提)。
  • 源域与目标域相似度高时收益最大;任务越像,迁移越顺。

也要看清局限:

  • 负迁移(Negative Transfer):源任务与目标任务不相关时,迁移反而损害性能(待核实:负迁移的量化条件仍是活跃研究方向)。
  • 分布漂移:目标域与训练分布差异过大,需要领域自适应等额外手段。
  • 知识产权与合规:预训练模型本身的使用条款、许可证需审查。

小结

  • 迁移学习把「通用底座」的知识迁到具体任务,预训练加微调是当今主干范式。
  • 微调讲究特征复用:冻结底层、分层学习率、全量微调各有取舍,PEFT(如 LoRA)可大幅省资源。
  • 领域自适应专治「分布不同但任务相同」,靠对抗训练或统计对齐缩小域差。
  • Fine-tuning 改模型权重,Prompt-tuning 改提示向量而冻结权重,后者更适配多任务轻量部署。
  • 迁移并非万能:源目标不相关会负迁移,分布漂移与许可证合规也要纳入考量。

参考与延伸阅读

  • Pan, S. J., Yang, Q. A Survey on Transfer Learning. IEEE Transactions on Knowledge and Data Engineering, 2010.(迁移学习经典综述)
  • Yosinski, J., et al. How transferable are features in deep neural networks? NeurIPS, 2014.
  • Ganin, Y., et al. Domain-Adversarial Training of Neural Networks. JMLR, 2016.
  • Lester, B., Al-Rfou, R., Constant, N. The Power of Scale for Parameter-Efficient Prompt Tuning. arXiv:2104.08691, 2021.
  • Houlsby, N., et al. Parameter-Efficient Transfer Learning for NLP. arXiv:1902.00751, 2019.
本文累计阅读