不忘学习和迁移学习有什么区别?

人工智能 比较 迁移学习 增量学习 领域适应 学而不忘
2021-11-13 02:49:16

我想用我当前的数据集逐步训练我的模型,我在 Github 上问了这个问题,这就是我正在使用的 SSD MobileNet v1。

那里有人告诉我学习不忘我现在在不忘学习和迁移学习之间感到困惑。它们之间有何不同?

我最初的问题,我想要实现的(在 Github 问题中提到)如下。

我已经在ssd_mobilenet_v1_coco模型上训练了我的数据集。我正在获得持续的增量数据。现在,我的数据集非常有限。

我想要实现的是增量训练,即一旦获得新数据,我就可以进一步训练我已经训练过的模型,而不必重新训练所有内容:

  1. 保存训练好的模型Mt
  2. 获取新数据Dt+1
  3. 火车MtDt+1生产Mt+1
  4. t=t+1,然后返回1

我如何执行这种增量培训/学习?我应该使用 LwF 还是迁移学习?

2个回答

无遗忘学习 (LwF) 是一种用于神经网络的增量学习(有时也称为持续或终身学习)技术,是一种试图避免灾难性遗忘的机器学习技术。有几种增量学习方法。LwF 是一种基于正则化概念的增量学习方法。在Parisi 等人的论文Continual lifelong learning with neural networks: A review (2019)的第 3.2 节中,描述了其他基于正则化的持续学习技术。

LwF 可以看作是蒸馏网络微调的组合,它指的是用低学习率重新训练一个已经训练好的模型(这是一种非常基本的技术,可以避免灾难性地忘记先前学习的知识)M使用新的和(通常)更具体的数据集,Dnew,关于数据集,Dold,你最初用它训练给定的模型M.

LwF 与其他持续学习技术相反,仅使用新数据,因此它假设过去的数据(用于预训练网络)不可用。无遗忘的学习论文详细介绍了该技术,还描述了与增量学习技术相关的特征提取微调多任务学习的概念。

LwF 和迁移学习有什么区别?LwF是蒸馏网络和fine-tuning的结合,是一种迁移学习技术,是增量学习的一个特例,新旧任务是不同的,而在增量学习中,一般来说新旧任务不同任务也可以相同(称为域适应)。

我想要实现的是增量训练。因此,一旦获得新数据,我就可以进一步训练我已经训练过的模型,而不必重新训练所有内容。

不忘学习是解决多任务学习的方法之一。如果您的模型经过训练可以解决问题 A,然后有时您需要您的模型来解决新问题 B 而不会忘记问题 A(该模型仍然可以很好地解决问题 A),那么您需要这个。

迁移学习是一种使用经过训练的模型来解决另一个任务(并且可能会忘记原始任务)的方法。例如,您使用最初训练用于对猫或狗进行分类的模型来尝试对山羊或牛进行分类的新任务。您使用它是为了加快您的训练过程。

如果您的新数据与旧数据具有相同的任务,则无需使用多任务学习方法。例如:

  • 如果你的模型训练了 50 张图像来检测图像中的苹果,然后你得到新的 100 张图像来检测苹果,那么你只需要继续你的训练(增量学习)。在这种情况下,您需要(保存)训练后模型的最新参数(最新的学习率值、epoch 等),如果有,那么您只需要再次运行训练(继续 epoch)。
  • 如果你的模型训练了 100 张图像来检测图像中的苹果,然后你得到新的 100 张图像来训练你的模型来检测橙子并且你不在乎你的模型是否会给出一个不好的结果来检测苹果,那么你可以使用迁移学习。您可以将几个第一层冻结为“提取器”并在最后初始化一个新层。
  • 如果您的模型使用 100 张图像进行训练以检测图像中的苹果,然后您获得新的 100 张图像来检测橙子,并且您的模型必须能够很好地检测图像中的苹果和橙子,那么您使用多任务学习。最简单的方法是使用 apple+orange 图像训练模型,但您也可以使用另一种方法,例如 Learning without Forgetting 论文中提出的方法。