1. 简介

在本篇文章中,我们将深入探讨迁移学习(Transfer Learning)领域自适应(Domain Adaptation)之间的区别与联系。

迁移学习是一个广泛的概念,指的是将一个机器学习任务中获得的知识,迁移到另一个任务中。而领域自适应则是迁移学习的一种特殊情况,它主要关注数据分布的变化

2. 经典监督学习

为了更好地理解迁移学习,我们先回顾一下经典监督学习的结构。

我们以一个猫狗图像分类任务为例。在监督学习中,我们从原始数据集 ![A](/wp-content/ql-cache/quicklatex.com-816b613a4f79d4bf9cb5196a9654120_l3.svg "Rendered by QuickLaTeX.com) 中提取特征 ![X](/wp-content/ql-cache/quicklatex.com-996ff7036e644e89f8ac379fa58d0cf7_l3.svg "Rendered by QuickLaTeX.com),然后为其分配标签 ![Y](/wp-content/ql-cache/quicklatex.com-42ae22abcaa05c2d6c2fdc3746446019_l3.svg "Rendered by QuickLaTeX.com)。例如一张图像中包含狗的脚、脸、身体等特征,我们将其标记为“狗”。

模型训练完成后,我们将其部署到实际应用中,面对的是一个不同但相似的数据集,比如同样是猫狗图片,但可能来自不同角度、不同光照条件。

下图展示了监督学习中两个数据集 ![A](/wp-content/ql-cache/quicklatex.com-816b613a4f79d4bf9cb5196a9654120_l3.svg "Rendered by QuickLaTeX.com) 与 ![B](/wp-content/ql-cache/quicklatex.com-c74288aabc0e2ca280d25d92bf1a1ec2_l3.svg "Rendered by QuickLaTeX.com) 的关系:

SupervisedLearning

我们可以看到,特征提取方式和预测函数 ![f](/wp-content/ql-cache/quicklatex.com-f5844370b6482674a233a3063f762555_l3.svg "Rendered by QuickLaTeX.com) 在训练和部署阶段保持一致。

3. 迁移学习

迁移学习是一种机器学习技术,其基本结构与监督学习相似,但允许源任务和目标任务之间在数据、特征、标签甚至模型结构上有较大差异。

3.1. 迁移学习架构

迁移学习的基本结构如下图所示:

TransferLearning

可以看到,源任务和目标任务之间的关键联系在于预测函数 ![f](/wp-content/ql-cache/quicklatex.com-f5844370b6482674a233a3063f762555_l3.svg "Rendered by QuickLaTeX.com) 与 ![g](/wp-content/ql-cache/quicklatex.com-e88010d25c51c0c42c505ee1004ed182_l3.svg "Rendered by QuickLaTeX.com) 的关系。通常,我们会利用 ![f](/wp-content/ql-cache/quicklatex.com-f5844370b6482674a233a3063f762555_l3.svg "Rendered by QuickLaTeX.com) 的一部分来构建 ![g](/wp-content/ql-cache/quicklatex.com-e88010d25c51c0c42c505ee1004ed182_l3.svg "Rendered by QuickLaTeX.com)。

迁移学习涵盖了多种情况:

  • 数据不同,特征不同,标签不同
  • 数据不同,特征相同,标签不同
  • 数据不同,特征不同,标签相同

3.2. 示例:图像分类任务

以猫狗分类模型为例,假设我们现在想识别牛和马的图片。

虽然牛马与猫狗差异很大,但它们都是哺乳动物,具有相似的轮廓结构。我们可以将源模型中用于提取轮廓的层“冻结(freeze)”,并将其作为新模型的一部分使用:

Transfer-LearningExample

图中绿色部分表示需要训练的层,灰色部分为冻结层。冻结层在训练过程中不会被更新,仅用于提取通用特征。

踩坑提醒:迁移学习中,冻结层的选择非常关键。太浅的层提取的是边缘等低级特征,可能不够泛化;太深的层则可能过度依赖源任务的语义信息。

4. 领域自适应

领域自适应是迁移学习的一个子集,其核心在于仅改变数据分布(领域),保持特征空间和标签空间一致

4.1. 架构示意

领域自适应的结构如下图所示:

DomainAdaption

可以看到,源域和目标域的特征空间相同,预测函数 ![f](/wp-content/ql-cache/quicklatex.com-f5844370b6482674a233a3063f762555_l3.svg "Rendered by QuickLaTeX.com) 保持不变,但数据分布不同。

4.2. 应用场景

例如,源域中我们只有贵宾犬和黑猫的图像,而目标域中则是雪纳瑞犬和白猫的图像。

虽然两类图像都属于猫狗类别,但颜色、体型等特征有较大差异。领域自适应的目标就是让模型在目标域上依然保持良好表现。

4.3. 类型划分

根据目标域中标签的可用情况,领域自适应可以分为三类:

  • 无监督领域自适应(Unsupervised Domain Adaptation):目标域无标签
  • 半监督领域自适应(Semi-supervised Domain Adaptation):目标域部分有标签
  • 监督领域自适应(Supervised Domain Adaptation):目标域全部有标签

5. 领域自适应方法

由于领域自适应仅改变数据分布,因此我们可以通过以下方法来优化模型表现。

5.1. 基于分布差异的方法(Divergence-based)

这类方法的核心思想是:让模型学习到在源域和目标域都表现良好的特征表示

常用技术包括:

  • ✅ Maximum Mean Discrepancy (MMD)
  • ✅ Correlation Alignment (CORAL)
  • ✅ Contrastive Domain Discrepancy
  • ✅ Wasserstein Metric

这些方法的目标是最小化两个领域之间的分布差异,从而提升模型在目标域上的泛化能力。

5.2. 迭代方法(Iterative Approach)

迭代方法的基本思路是:

  1. 使用源域模型对目标域样本进行预测;
  2. 对置信度高的样本打标签;
  3. 用这些样本重新训练模型;
  4. 逐步加入置信度较低的样本。

这种方法通过逐步提升模型对目标域的理解,从而实现更好的自适应效果。

📚 参考论文:https://arxiv.org/abs/2001.04129

6. 总结

迁移学习为我们提供了一种高效的方法,将已有模型的知识迁移到新任务中。而领域自适应作为其子集,专门解决数据分布变化带来的挑战。

在实际应用中,我们经常遇到训练数据与实际数据分布不一致的问题。此时,使用基于分布差异或迭代的方法,可以有效提升模型表现。

总结要点

概念 是否改变数据 是否改变特征 是否改变标签 是否改变模型结构
迁移学习
领域自适应

⚠️ 关键区别:领域自适应只改变数据分布,其余保持一致;而迁移学习可以改变更多维度。

迁移学习和领域自适应是当前深度学习研究的重要方向,尤其在跨领域任务、小样本学习等场景中具有广泛的应用前景。


原始标题:Transfer Learning vs Domain Adaptation