自学内容网 自学内容网

增量学习记录

最近看了点增量学习相关的内容,简单的记录一下(以下的内容都是基于深度学习的)。

(注:文中的图均是论文中的截图)

参考的综述文章:

[1]孙文举, et al."基于深度神经网络的增量学习研究综述."数据分析与知识发现 1-39.

一、增量学习相关基础知识

1、增量学习的概念

        大多数机器学习方法依赖训练数据服从独立同分布的假设,对于已经训练完毕的模型,若希望其能够学习新知识(如识别新的类别),通常需要重新构建平衡的数据集并对模型进行重训。否则直接利用新数据(如新类别样本)进行微调会引起模型处理旧任务的性能下降,这种现象被称为“灾难性遗忘”。增量学习的目的是将已学旧任务信息引入新任务的训练过程,从而缓解模型对数据独立同分布假设的依赖。增量学习是一种面向数据逐步增长的学习策略。与其他相似学习范式相比,增量学习特别关注于如何有效地整合连续到来的数据流,并对新类别或任务进行适应,而无需从头开始重新训练模型。

        简单来说,就是一般的机器学习方法在训练完一个模型之后,如果数据集有新增加的类别,这个时候需要把新增加类别与之前的所有图像放在一起重新训练一个模型,这样的话,拿全部的样本进行训练,会占用很多的训练时间。所以增量学习希望直接在新的样本(或者在新的样本和少数的旧的样本)上进行训练,一方面能够有效的识别新的类别,另外一方面能够保持在旧的类别上的性能。

2、增量学习与其他任务的对比

注:上图是从论文中截取。

        这些任务总体上来说都很相似,而且一些方法是可以融合到一起的,比如说有小样本的增量学习方法。

3、增量学习的训练和测试过程

        下面简单的介绍一些增量学习的训练和测试过程(图是从论文中截取)。

        简单来说,每当有一部分新的数据出现,增量学习需要保存之前学习到的知识,然后学习新数据的知识,在测试过程中,可以很好的检测所有的数据,而不是只适用于新的数据。值得注意的是,每次的新数据与旧的数据是互不重叠的。

4、增量学习的任务设置:

根据不用的应用需求可以将增量学习分为以下几种任务:

(1)任务增量:任务数量逐步增加

(2)类增量:类别数量逐渐增加

(3)域增量:训练数据域的持续扩展(如部署在不用地点的摄像头)

(4)在线增量:模型在应用环境中的持续学习(实时胸数据中学习和推理)

(5)小样本增量学习:在类增量的基础上融合了小样本的学习方法。

5、增量学习的主要挑战

        增量学习面临的核心挑战在于灾难性遗忘。灾难性遗忘指当模型逐步学习新任务时,对于先前任务的性能急剧减退的现象。有研究者指出这是因为网络重新训练一个模型之后,导致参数从之前任务的最优损失点转移到另一个最优损失点(特征漂移),如下图所示(图截取于论文),从而导致模型在原本数据上的损失增大,造成性能变差。

主要的解决策略:

(1)识别并保护网络中的关键参数,防止其在学习过程中发生显著变化。

(2)模拟特征漂移过程,据此调整分类器以匹配新的特征表达。

(3)回放机制:通过利用存储的代表性返利样本使模型“重新学习”旧任务,从而主动降低新信息对旧知识的覆盖。

二、基于深度学习的方法

1、基于深度学习方法分类:

(1)基于正则约束:在通过正则化技术限制关键网络参数的变动来缓解遗忘,强调利用旧 知识的先验来缓解遗忘,但可能会牺牲新知识的学习可塑性

(2)基于信息存储的方法:通过保存旧任务的关键信息来辅助记忆,但吃内存以及数据不能保密

(3)基于动态网络的方法:通过对网络架构的创新设计直接避免遗忘现象,网络过于复杂。

2、各种类型的代表性算法

 三、增量学习的性能评价

1、准确率(ACC):学习完T个任务之后的平均准确率

2、遗忘率(FOR):是模型再增量学习过程中最优性能与增量学习后性能的差值,差值越大则以往现象越明显。

3、反向迁移(BWT)和前向迁移(FWT):

     反向迁移:用以验证模型新任务的学习对其旧任务性能的影响

     前向迁移: 用以度量模型已有知识对未来任务学习的影响

, 

其中, 表示一个随机初始化的模型学习在任务t上学习后的性能。

公式的话,建议还是看一下原文吧,我这里只是大致的记录一下每个指标有什么样的作用。

论文中还给出的增量学习的代码库:https://gitee.com/swj123/deep-inc.git


原文地址:https://blog.csdn.net/liyun52/article/details/143761036

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!