增量学习分享

增量学习主要应用于判别性任务。在这个场景中,分类任务是按顺序学习的。在序列的最后,判别模型应该能够记住所有的任务。从一个任务到下一个任务的简单的微调方法会导致灾难性遗忘,也就是说,无法在之前的任务上保持初始性能。之前提出的方法可以分为四种类型。

第一种方法,称为排练,是保留以前任务的样本。这些样本可以用不同的方式来克服遗忘。该方法不能用于以前任务的数据不可用的场景。此外,这种方法的可扩展也会受到质疑,因为存储样本所需的内存会随着任务的数量线性增长。

第二种方法采用正则化。正则化约束权重的更新,以保持之前任务中的知识,从而避免遗忘。弹性权重增强(EWC)已成为这类正则化的标准方法。它估计权重的重要性,并对正则化进行相应的调整。另一种众所周知的正则化方法是蒸馏,它将之前学到的知识转移到一个新的模型中。它使模型能够同时了解先前的任务和当前的任务。

第三种方法是使用动态架构来维护过去的知识并学习新的信息。实现这种方法的显著方法是渐进网络(PNN)、不遗忘学习(LWF)和PathNet。

第四种,也是最近的一种方法是生成重放,它使用生成模型从之前的任务中生成样本。这种方法也被称为伪排练。

增量学习方法通常是通过在每个任务结束时计算一个度量来评估的。能够保持最高性能的方法是最好的。在判别设置中,分类精度是最常用的度量指标。

损失函数

增量学习分享_第1张图片
K是当前任务, θ ^ i k \hat{θ}_i^{k} θ^ik是第k个任务训练结束后的网络参数。EWC利用二阶信息来选择重要的参数,在任务A的似然函数的性能曲面上优先沿着平坦的区域搜索任务B的参数。

增量学习分享_第2张图片
增量学习分享_第3张图片
增量学习分享_第4张图片
SI与EWC关键的不同点只在于正则项的系数。其经过的路径上进行积分来衡量参数的重要性。

CWR

  • 在第一个任务中,以标准方式对基础神经网络进行训练。
  • 第一个任务完成后,除输出层的参数外,网络的所有参数都被冻结。对于输出层的参数,保留了两个副本:一个临时版本表示为tw, 另一个“合并”版本表示为cw。
  • 训练由tw完成。在开始每项任务的训练之前,tw会被随机重新初始化。完成每项任务的训练后,对应于该任务类别的tw参数被复制到cw中。
  • 对于测试,使用cw

CWR+
与CWR相比,CWR+有两个不同之处。

  1. 首先,在每个任务之前,tw中的参数被设置为零,而不是随机(重新)初始化。
  2. 其次,在每项任务完成后,首先通过减去其平均值来标准化tw中的参数(在该点之前,所有类别均采用平均值,权重和偏差采用单独的平均值),然后将对应于该任务类别的标准化参数复制到cw中。

Memory-Efficient Incremental Learning Through
ECCV20

特征蒸馏,余弦损失
增量学习分享_第5张图片
训练自适应网络
增量学习分享_第6张图片

Can we gain more from orthogonality regularizations in training deep networks
NIPS18

特征层的正交损失
在这里插入图片描述

一些方法的代码地址
PASS:https://github.com/Impression2805/CVPR21_PASS
EEC: https://github.com/aliayub7/EEC
PCL: https://github.com/morning-dews/PCL
CLIP zero-shot: https://github.com/openai/CLIP

你可能感兴趣的:(日记,学习,机器学习,深度学习)