Skip to content

迁移学习、微调、多任务学习(MTL)与联邦学习

Transfer Learning, Fine-tuning, Multitask Learning and Federated Learning

大多数机器学习模型都是独立训练的,不与其他模型进行任何交互。然而在真实世界的机器学习领域,有许多强大的学习技术依赖于模型之间的交互来提升性能。

ds p1 1

下图总结了四种这样被广泛采用、必须了解的训练方法:

ds p2 1

这种方法在以下情况尤其有用:

  • 目标任务数据较少。
  • 但某个相关任务数据充足。

其工作原理如下:

  • 在相关任务上训练一个神经网络(neural network)模型(基础模型)。
  • 用新的层(layers)替换基础模型的最后几层。
  • 在目标任务上训练该网络,但在反向传播(backpropagation)过程中不更新未被替换层的权重(weights)。通过先在相关任务上训练模型,我们可以捕获目标任务的核心模式。之后,我们可以调整最后几层来捕获特定任务的行为。与此思路有些类似的另一个想法是知识蒸馏(knowledge distillation),它涉及知识的“转移”。我们将在后续章节中讨论它。迁移学习常用于许多计算机视觉任务。

ds p3 1

微调涉及更新预训练(pre-training)模型部分或全部层的权重,以使其适应新任务。这一思路看起来可能与迁移学习类似,但在微调中,我们通常不会替换预训练网络的最后几层。相反,预训练模型本身会被调整以适应新数据。

ds p3 2

顾名思义,模型被训练以同时执行多个任务。模型在任务之间共享知识,旨在提升每个任务的泛化(generalization)能力和性能。

它可以在任务相关、或能从共享表示中受益的场景中发挥作用。事实上,多任务学习的动机不仅是提升泛化能力。通过采用共享层和任务特定部分,我们还能在训练过程中节省算力。

ds p4 1

  • 想象在相关任务上独立训练两个模型。
  • 现在将其与一个拥有共享层、再分出任务特定分支的网络相比较。方案二通常会带来:
  • 在所有任务上更好的泛化能力。
  • 存储模型权重占用更少内存。
  • 训练过程中资源消耗更少。

我们将在下一章讨论它。

本站内容仅供学习交流,版权归原作者所有。