连续学习(Continual Learning)的定义:
现阶段在深度学习中用的比较多的连续学习的定义一般是:连续学习指模型基于不断进入的训练数据连续更新模型参数,且在训练过程中不使用过去数据的学习方式。
连续学习的问题:
虽然连续学习看起来很适合现实生活,但现阶段的连续学习也有自己的问题。
灾难性遗忘(Catastrophic Forgetting):
什么是灾难性遗忘,这是一个很主观的问题。传统的,我们以为模型在连续拟合新数据的过程中会破坏之前的模型表征空间分布。但其实破坏这个词是带感情色彩的,与其说成破坏或许使用改变会更合适一点。因为破坏给人一种模型在变不好的的印象,但其实,模型表征空间的分布目的是为了拟合当前数据分布。但这并不意味着,只有这一种模型表征空间分布的方式。最简单的例子就是,一个在cifar10上训练过的RN18(10)可以达到95%的精度,其与只在cifar10的5个类上训练的RN18(5)在这5个类上有相同的精度(95%)。然而,RN18(5)则在cifar10全集上的精度远远不如RN18(10)。这个例子就可以说明,为了达到拟合一个数据分布的目的,模型的表征空间分布并不是唯一的。所以,破坏这个词自然就有一些问题。那么所谓的灾难性遗忘指的就是模型在拟合连续训练数据的过程中表征空间的分布不再能很好的拟合过去数据。从而导致模型在之前数据上的拟合能力变差。我们将这种现象称为灾难性遗忘。但其实这个描述中,有个关键的点并没有说具体。那就是拟合能力。我们如何去判断模型的拟合能力?我们常用的方式就是针对特定任务讨论。比如分类任务,在分类任务中,我们将模型在过去类数据上的分类能力作为模型拟合能力的表现形式。从而引出了现阶段比较流行的类增长学习(Class Incremental Learning)。
从上面的描述中,好像这个问题已经被我们定义完了,但其实并没有,还有一个模型本身的局限导致的问题。那就是模型的拟合能力上界!,每一个深度学习模型都有自己的理论拟合能力上限,用什么样的指标定义这个拟合能力就有什么样的指标上限。比如分类任务,每个模型都有自己的分类能力上限。所以,在连续学习过程中,不断的拟合新数据时,在假设灾难性遗忘已经被完美解决的情况下模型也会出现灾难性遗忘`。那么这里就又有一个问题了,如何定义模型的拟合能力上限。以分类任务举例,模型对数据的分类精度达到多少算模型拟合能力的上界?是最多类别下的最低分类精度还是最少类别下的最高分类精度。最低分类精度如何定义?最高分类精度如何定义?现阶段最好的方式就是以上帝视角来让模型全训练所有连续数据的集合,给出的精度就是当前模型在当前总数据下的模型拟合能力上界。通过joint learning 和 continual learning结果的比较就可以说明模型是否存在灾难性遗忘,以及存在的强弱。
###参考文献