增量学习Geeks

增量学习(IncrementalLearning),亦称为持续学习(ContinualLearning)或终身学习(Life-LongLearning),是一种机器学习方法,它允许模型通过对新数据进行持续学习而不是重头训练整个模型。这种方法允许模型不断地学习新的知识,并在不断实际复杂多变的环境变化。

具体来讲,「增量学习的能力就是能够不断地处理现实世界中连续的信息流,在吸收新知识的同时保留甚至整合、优化旧知识的能力。」

在机器学习领域,增量学习致力于解决模型训练的一个普遍缺陷**:「灾难性遗忘(catastrophicforgetting)」**,也就是说,一般的机器学习模型(尤其是基于反向传播的深度学习方法)在新任务上训练时,在旧任务上的表现通常会显著下降。

造成灾难性遗忘的一个主要原因是传统模型假设数据分布是固定或平稳的,训练样本是独立同分布的,所以模型可以一遍又一遍地看到所有任务相同的数据,但当数据变为连续的数据流时,训练数据的分布就是非平稳的,模型从非平稳的数据分布中持续不断地获取知识时,新知识会干扰旧知识,从而导致模型性能的快速下降,甚至完全覆盖或遗忘以前学习到的旧知识。

为了克服灾难性遗忘,我们希望模型一方面必须表现出从新数据中整合新知识和提炼已有知识的能力(可塑性),另一方面又必须防止新输入对已有知识的显著干扰(稳定性)。这两个互相冲突的需求构成了所谓的**「稳定性-可塑性困境(stability-plasticitydilemma)」**。

聊到增量学习,不得不提的一个反例必然是非增量学习,其假定模型每次都可以同时访问每个类别的所有情况下的图像。显然,这是不切实际的。下面简要概括下它的三大局限性:

由此可见,引入增量学习是非常有必要的。

但增量学习目前还没有一个特别清晰的定义,因此比较容易与在线学习,迁移学习和多任务学习等概念混淆,「尤其要注意增量学习和在线学习的区别,在线学习通常要求每个样本只能使用一次,且数据全都来自于同一个任务,而增量学习是多任务的,但它允许在进入下一个任务之前多次处理当前任务的数据」。上图表现了增量学习和其他学习范式的区别,一般来说,增量学习有如下几个特点:

由于增量学习问题的复杂性和挑战的多样性,人们通常只讨论特定设置下的增量学习。以一个图像分类模型为例,我们希望模型具有增量学习新的图像和新的类别的能力,但前者更多地与迁移学习有关,因此任务增量学习(Task-incrementalLearning)和难度更高一点的类增量学习(Class-incrementalLearning)是深度学习社区当前主要考虑的增量学习范式。

增量学习工作中一般通过绘制增量准确率曲线(incrementalaccuracycurve)和遗忘率曲线(incrementalforgettingcurve)来评估性能的优劣。其中涉及到的两个主要指标便是准确率(accuracy)和遗忘率(forgetfulness)。

以cifar100task_num=10为例

插入表格

增量学习的优点是可以随时训练新数据,不需要保留大量训练数据,因此存储和计算开销都比较小,同时还能够有效避免用户的隐私泄露问题,这在移动边缘计算的场景下是非常有价值有意义的。但目前的增量学习依旧是一个很开放的研究问题,很大程度上还处于理论探索阶段,在很多方面学界都没有达成统一的共识,不少论文给出的结论常常会相互冲突,因此增量学习还没有在细分领域中得到大规模的应用和落地。

大部分增量学习研究都是面向图像分类任务的,近几年也有不少论文将增强学习推广到了更复杂目标检测和语义分割任务上,下面列举了一些有代表性的工作。

机器人是增量学习天然的应用场景,因为机器人必须学会通过连续的观察来适应环境并与之互动,增量学习正好能够很好地刻画真实世界的环境,不过机器人领域本身有很多更重要的问题需要解决,因此增量学习的应用也不太多。

增量学习的一些常见评估指标包括**「准确率、记忆能力和迁移能力」**等,其中记忆能力和迁移能力是衡量模型可塑性和稳定性的指标,但这些指标具体的公式定义却是有争议的。虽然人们已经提出了各种各样的增量学习方法,但是在基准数据集的选取和评估算法有效性的指标上还没有达成广泛的共识。

其中一点是增量学习通常需要引入额外的超参数来平衡模型的稳定性和可塑性,这些超参数通常在验证集上被优化,「但这本质上违反了增量学习不能获取未来数据的因果律,从而会导致人们作出过于乐观的结论,在真实的生产环境中常常无法重现实验结果。」

针对超参数选取的问题,Acontinuallearningsurvey:Defyingforgettinginclassificationtasks(2020)[35]提出了一种通用的增量学习超参数搜索框架,并设计了一系列相对公平的指标来比较增量学习算法,汇报了一些SOTA增量学习算法的表现。

在此基础上,Class-incrementallearning:surveyandperformanceevaluation(2020)[36]在多个数据集上对最新的一些增量学习方法进行了综合对比,作者发现在基于正则化的增量学习中,最早提出的LwF算法的表现是相当稳健的,许多后续改进的方法在一些条件下反而不如LwF算法,另外基于数据约束的方法(LwF)实际上通常比基于参数约束的方法(EWC)表现得更好,然而目前人们的研究注意力是偏向后者的。下面是另外一些讨论和提出增量学习评估指标和模型对比的论文,这里不再一一介绍:

增量学习本身是一个很开放的概念,目前人们研究的基于深度学习的增量学习大多限制在**「有监督分类、任务式增量和多头网络结构的框架」下,这种特定领域的训练方案通常不能直接应用于高度动态化和非结构化的真实环境中,TowardsRobustEvaluationsofContinualLearning[40]指出「多头设定下的增量学习隐藏了增量学习问题真正的难度」**。另外,虽然目前人们主要研究的是有监督学习,但探索更接近真实环境的无监督增量学习,以及其他类型的增量方式也是非常有意义的。

目前的增量学习方法通常**「隐式地要求任务的性质差异不能太大」,当任务的性质和难度差异太大时,大部分增量学习方法的性能都会严重下降,甚至低于简单的基线模型。另外,有不少研究表明「目前还没有任何一种增量学习方法在任何条件下都能表现良好」,大部分增量学习方法「对模型结构,数据性质、超参设定都比较敏感」**,因此探索在所有任务设定中表现更稳健的增量学习方法也是很有意义的。

基于半监督范式的增量学习可以通过伪监督的形式利用部分标记数据。然而,伪标签的质量部分仍然取决于标记数据的数量和质量。为此,这些模型仍然需要提供大量标签才能正常工作,因此并没有从根本上解决问题。

不能理解的小伙伴可以思考下,伪标签是怎么得到的?还不是得训练出一个基础模型出来,这个模型训练得不好打出来的伪标签只会让模型表现得更糟糕。

小样本学习主要涉及到在增量训练前和增量训练期间均会利用到标签信息。其中,预训练部分的标签复杂度特别高,毕竟它前期仍然需要用到大量的元数据样本,这对于医学成像或视觉异常检测等这类数据匮乏的领域来说,严重限制了它们的作用。

此外,小样本学习范式在增量学习过程中通过冻结主干网络的权重以防止过拟合新晋少量样本的现象。虽然效果很好,但这种做法并不自然,因为人类是具备非常强大的泛化性能,可以利用极少的样本进行学习,例如看过一次的东西大部分人就能够记住这是件什么物品。

当自监督用于预训练或辅助训练时,自监督增量学习器的标签复杂性与普通增量学习器相当。使用自监督作为唯一的监督信号是在训练期间完全省略标签的关键。然而,单纯的自监督增量学习需要一个单独的标记线性探测阶段用于准确的评估模型迭代的效果,从而限制了它们的适用性。

此外,增量学习的自监督范式完全依赖于基于对比学习的方法来提取监督信号,例如MoCo等方法。然而,随着基于掩码重建的MAE方法的提出,表明了基于重建的目标显然是优于基于对比学习所得到的的目标,这不失为一个新的探索方向。

通过对以上几种增量学习方法的分析,我们可以进一步总结出更具备现实意义的一些可研究方向。

另外,也有半监督+小样本结合的监督形式,发表在NeurIPS2019上的《LearningtoSelf-TrainforSemi-SupervisedFew-ShotClassification》。因此,我们是否可以将这种思路借鉴到增量学习任务当中去呢?

上面我们所列举的大多数例子均是围绕图像分类任务展开的。然而,对于语义分割这种密集型的预测任务而言,如何解决标签问题是一个棘手的问题,毕竟为图像中的每一个像素都赋予一个新的语义类别是个非常痛苦的工作,还真是谁行谁上。这里首先进行尝试的工作可能是ICCV2019上的《Recall:Replay-basedcontinuallearninginsemanticsegmentation》,作者通过为旧类重新创建不再可用的数据并概述背景类的内容修复方案来解决这些问题。

在主动学习中,学习代理会选择最有影响力的示例,由人类专家进行注释。这显着降低了标记成本,因为只需一小部分示例足以训练一个好的模型。这方面的代表工作有《Towardsrobustandreproducibleactivelearningusingneuralnetworks》,发表在CVPR2022上。

神奇的是,主动学习在增量学习中几乎没有任何应用,你敢相信吗?然而,这种方法可以帮助选择一小撮范例来辅助半监督或小样本监督范式的增量学习,无论是从预训练还是增量训练的角度,值得一试。

对于人类而言,我们几乎可以在不需要任何监督的前提下,展示出惊人的发现前所未见物体的能力,几乎不费吹灰之力便能够对新对象进行分组。然而,现有的增量学习方法普遍没有发现新对象的能力,几乎所有对象都需要被标记,哪怕是few-shot.

然而,我们知道,这其实并不现实,毕竟真实世界每天都会出现千奇百怪的新生物体。为此,严格意义上来说,增量学习不仅需要具备从有限的标记样本中进行监督学习,还要有挖掘新对象的能力。因此,未来的一个终极研究目标必定是朝着类人方向迈进的,让我们拭目以待!

增量学习的目标是在动态和开放的环境中,使模型能够在保留已有知识的基础上,不断学习新的类别知识。可以说,如果没有积累所学知识并基于已有的知识来逐步学习更多知识的能力,该系统并不能称之为一个真正意义上的智能系统。

通过对本文的阅读理解,相信大家已经对增量学习有了一定的认识。总的来说,本文主要向大家介绍了三种对标签高效的增量学习方法,包括半监督、小样本和自监督。其次,我们着重分析了现有方法的局限性以及给出了一些建议性的意见。最后,为了让各位小伙伴能够实现完整的闭环,我们还额外提供了必要的增量学习框架和一些最新的论文资料供大家进一步实践和学习。在可预知的未来,我们也不难猜测,增量学习必将更多的向下游任务涌入,包括但不仅限于增量目标检测、增量语义分割以及增量视频分析等。

THE END
1.增量学习与传统学习方法的比较增量学习(Incremental Learning)和传统学习方法(Batch Learning)是两种不同的学习方法,它们在处理数据和学习模型方面有着显著的差异。增量学习是逐渐学习的过程,通过逐个添加新的数据来更新模型,而传统学习方法则是一次性地学习所有数据,并在一次训练中构建模型。在本文中,我们将深入探讨这两种学习方法的区别、优缺点以及https://blog.csdn.net/universsky2015/article/details/137302333
2.介绍增量学习袋鼠社区1.增量学习的愿景是,在新的数据以流式到达,同时出现新的类别或者新的任务的情况下,人工智能系统能够做到增量学习,在保留旧的知识的情况,能够较好地适应新的领域,学习新的知识。2.增量学习目前需要解决的问题:新知识时往往会遭遇“灾难性遗忘”(Catastrophic Forgetting),在学习新任务之后,模型在旧任务上性能灾难性https://www.dtstack.com/bbs/article/4953
3.增量学习~~51CTO博客与之前的工作需要访问与环境无关的外部数据流不同,作者认为数据流是持续学习代理环境的产物。此外,通过对域外检测器进一步的优化,从而识别出与当前增量学习任务无关的数据分布,以减轻对先前类别的遗忘。 值得注意的是, 知识蒸馏最初是为模型压缩而设计的。随着LwF[4](Learning without forgetting)方法首次将其应用于https://blog.51cto.com/whaosoft/11682740
4.万文长字总结“类别增量学习”的前世今生开源工具包然而,我们的人脑却有这种非凡的能力, 能够学习大量不同的任务, 而不会出现任何负面的相互干扰。 持续学习(Continual Learning)算法试图为神经网络实现同样的能力, 并解决灾难性的遗忘问题。 因此, 从本质上讲, 持续学习执行的是对新任务的增量学习(Incremental Learning)。https://www.thepaper.cn/newsDetail_forward_17451573
5.增量学习:让AI能够持续适应新数据的能力腾讯云开发者社区增量学习是一种能够持续适应新数据的学习方法。与传统的批量学习不同,增量学习可以在已有模型的基础上,通过学习新数据来更新模型,而不需要重新训练整个模型。增量学习可以有效地利用之前学习到的知识,提高学习效率和性能。增量学习的目标是在学习新数据的同时,尽量保留之前学习到的知识,使得模型能够适应新数据的变化。 https://cloud.tencent.com/developer/news/1230521
6.增量学习在生成式人工智能领域,增量学习的应用同样具有突破性意义。特别在需要用户交互的系统中,增量学习使生成模型能够基于新的用户输入不断优化和调整生成策略。这样的动态适应能力确保了模型输出的相关性和个性化程度,进而提高了用户满意度和系统的整体效能。 增量学习广泛应用于许多领域,包括但不限于金融服务的风险管理、电子商https://www.xakpw.com/single/33704
7.《暗知识》读书笔记在商业上有很多应用,例如在营销上面可以根据人群的不同属性将其划分成不同人群进行精准营销;在社交媒体上面,可以根据人们之间的互动次数,划出每个人的朋友圈子;在医疗诊断上面可以根据不同症状之间的相关性更精确地预测还未发现的疾病等 。 增量学习和连续学习: 增量学习就是当有新数据时,只用新数据训练原来的模型,https://www.douban.com/note/797405117/
8.什么是增量学习增量学习的特点增量学习是一种机器学习范式,允许模型逐步从新数据中学习并更新,而无需从头开始重新训练,以适应数据流的连续变化。https://www.amazonaws.cn/en/knowledge/what-is-incremental-learning/
9.机器学习中的集成在线批量迁移……各种学习的区别相对应的,半监督学习在学习时并不知道最终的测试用例是什么。也就是说,直推学习其实类似于半监督学习的一个子问题,或者说是一个特殊化的半监督学习,所以也有人将其归为半监督学习。 六、增量学习与减量学习 online learning包括了incremental learning和decremental learningincremental learning增量学习,是指一个学习https://www.cnblogs.com/feily/p/14387567.html
10.2024年大模型技术发展的十大趋势预测与分析随着数据的不断积累和更新,增量学习与持续学习技术对于大模型的持续优化至关重要。这些技术使得模型能够不断地从新的数据中学习并适应新的任务和环境。在实际应用中,企业可以通过构建持续学习系统,实时地收集和分析新的数据,并据此对模型进行更新和优化。这不仅能够提升模型的性能和准确性,还能够降低模型的过时风险,确保https://www.360doc.cn/article/49290572_1131715412.html