迁移学习进阶:用预训练撬动小数据
迁移学习(transfer learning)的目标是:源任务上训练的模型所捕捉的知识,能被复用到目标任务,尤其是后者标注样本很少时。它的直觉是——大模型在海量数据上学到的通用表示(边缘、语义、语法)对新任务同样有用,不必从零训练。
特征提取与微调
最朴素的做法是「特征提取」:冻结预训练骨干网络,只训练新增的顶层分类器,把骨干当作固定特征提取器。当目标数据稍多时则采用「微调」(fine-tuning):解冻部分或全部层,用较小学习率在原任务损失上继续训练,让表示适配新分布。HF Transformers 文档与 PyTorch 教程给出了冻结层与学习率分组的实操示例。
领域自适应
当源域与目标域数据分布不同(例如合成图到真实图),需要领域自适应来缩小分布差异。方法包括对抗训练(如 DANN,用判别器区分域、特征提取器试图混淆它)与基于矩匹配的对齐损失。这类方法在训练数据宝贵且采集成本高的场景价值突出。
选型与风险
预训练模型并非越大越好:小数据集上过大的模型易过拟合,应先试轻量骨干。还要注意「负迁移」——当源任务与目标任务差异过大,迁移反而损害性能。训练集与预训练数据的领域重叠度越高,迁移收益越稳。医疗、法律等敏感领域还需确认预训练数据的合规来源。
小结
迁移学习用预训练知识缓解小数据困境,主力范式是特征提取与微调,领域自适应解决分布偏移,并需警惕负迁移。落地时按目标数据规模选择冻结策略,优先选领域相近的预训练模型,并在验证集上确认迁移带来真实收益。
参考与延伸阅读
- 迁移学习综述(已核验):https://arxiv.org/abs/1911.02685
- DANN 领域对抗训练(已核验):https://arxiv.org/abs/1505.07818
- Hugging Face 微调指南与 PyTorch 迁移学习教程(已核验):https://huggingface.co/docs/transformers/training 与 https://pytorch.org/tutorials/beginner/transfer_learning_tutorial.html
本文累计阅读 — 次