专利详情

标题基于CLIP类别增量学习的图像分类方法及系统
[标]当前申请(专利权)人南开大学
申请日2024年3月28日
申请号CN202410367548.3
公开(公告)日2024年8月16日
公开(公告)号CN118506049A
授权日-
法律状态/事件公开
专利类型发明申请
发明人黄林澜 | 刘夏雷 | 程明明
受理局中国
当前申请人(专利权)地址300350 天津市津南区海河教育园区同砚路38号 (天津,天津,津南区)
IPC分类号G06V10/764 | G06V10/774 | G06V10/80 | G06V10/82
国民经济行业分类号-
代理机构济南圣达知识产权代理有限公司
代理人赵菲菲
被引用专利数量-
专利价值-

摘要

本发明公开一种基于CLIP类别增量学习的图像分类方法及系统,包括:构建预训练的CLIP模型,获取训练图像及对应的文本标签,分别采用图像编码器和文本编码器提取图像特征和文本特征,以对适配器进行训练;其中,根据新输入的训练图像的文本特征和旧类别文本特征的相似度,筛选相邻类别的新旧类别对,对每对相邻类别中的旧类别文本特征,采用正态分布进行采样,以此构建铰链损失函数;在完成第t个训练任务后,将前一训练任务的适配器参数与当前训练任务的适配器参数进行融合,从而得到当前训练任务的最终适配器参数;对待处理图像采用训练后的CLIP模型得到分类结果。减少由于学习新类而导致的旧类遗忘,提高图像分类准确度。

1.一种基于CLIP类别增量学习的图像分类方法,其特征在于,包括:
构建预训练的CLIP模型,包括图像编码器、文本编码器和分别设置于图像编码器和文本编码器之后的适配器;
获取训练图像及对应的文本标签,分别采用图像编码器和文本编码器提取图像特征和文本特征,以对适配器进行训练;
其中,在训练过程中,根据新输入的训练图像的文本特征和旧类别文本特征的相似度,筛选相邻类别的新旧类别对,对每对相邻类别中的旧类别文本特征,采用正态分布进行采样,以此构建铰链损失函数;在完成第t个训练任务后,将前一训练任务的适配器参数与当前训练任务的适配器参数进行融合,从而得到当前训练任务的最终适配器参数;
对待处理图像采用对适配器训练后的CLIP模型得到分类结果。
2.如权利要求1所述的一种基于CLIP类别增量学习的图像分类方法,其特征在于,以新旧类别的文本特征间的欧几里德距离作为相似度,将相似度小于设定阈值的新旧类别对作为相邻类别的新旧类别对;对每对相邻类别中的旧类别文本特征,计算质心和协方差矩阵,基于此从高斯分布中进行采样。
3.如权利要求1所述的一种基于CLIP类别增量学习的图像分类方法,其特征在于,以铰链损失函数与交叉熵损失函数的和作为训练过程的总损失函数;铰链损失函数为:

其中,m为常数,c和分别表示属于相邻类别集的第k对相邻类别中的旧类别和新类别;ftext(tc)和分别为旧类别文本特征和新类别文本特征;A(·)表示适配器;表示旧类别文本特征的采样数据;dist(·)表示距离函数。
4.如权利要求1所述的一种基于CLIP类别增量学习的图像分类方法,其特征在于,适配器参数融合过程包括:将当前训练任务的适配器参数和前一训练任务的适配器参数分解到相同的标准正交基,根据分解后的当前训练任务的分解参数和前一训练任务的分解参数的差值计算融合权值,根据融合权值对当前训练任务的分解参数和前一训练任务的分解参数进行融合,得到融合参数,根据融合参数和标准正交基得到最终适配器参数。
5.如权利要求4所述的一种基于CLIP类别增量学习的图像分类方法,其特征在于,融合权值M为:

其中,Rt为当前训练任务的分解参数,Rt-1为前一训练任务的分解参数,b为常数。
6.如权利要求4所述的一种基于CLIP类别增量学习的图像分类方法,其特征在于,融合参数R和最终适配器参数W分别为:
R=(J-M)⊙Rt-1+M⊙Rt;
W=BR;
其中,J表示所有1的矩阵;⊙为逐元素乘法;B为标准正交基;Rt为当前训练任务的分解参数,Rt-1为前一训练任务的分解参数;M为融合权值。
7.一种基于CLIP类别增量学习的图像分类系统,其特征在于,包括:
模型构建模块,被配置为构建预训练的CLIP模型,包括图像编码器、文本编码器和分别设置于图像编码器和文本编码器之后的适配器;
训练模块,被配置为获取训练图像及对应的文本标签,分别采用图像编码器和文本编码器提取图像特征和文本特征,以对适配器进行训练;
其中,在训练过程中,根据新输入的训练图像的文本特征和旧类别文本特征的相似度,筛选相邻类别的新旧类别对,对每对相邻类别中的旧类别文本特征,采用正态分布进行采样,以此构建铰链损失函数;在完成第t个训练任务后,将前一训练任务的适配器参数与当前训练任务的适配器参数进行融合,从而得到当前训练任务的最终适配器参数;
分类模块,被配置为对待处理图像采用对适配器训练后的CLIP模型得到分类结果。
8.一种电子设备,其特征在于,包括存储器和处理器以及存储在存储器上并在处理器上运行的计算机指令,所述计算机指令被处理器运行时,完成权利要求1-6任一项所述的方法。
9.一种计算机可读存储介质,其特征在于,用于存储计算机指令,所述计算机指令被处理器执行时,完成权利要求1-6任一项所述的方法。
10.一种计算机程序产品,其特征在于,包括计算机程序,所述计算机程序被处理器执行时实现完成权利要求1-6任一项所述的方法。

技术领域
[0001]本发明涉及图像处理技术领域,特别是涉及一种基于CLIP类别增量学习的图像分类方法及系统。
背景技术
[0002]本部分的陈述仅仅是提供了与本发明相关的背景技术信息,不必然构成在先技术。
[0003]在图像分类领域,比如机器人目标检测任务中,传统的目标检测框架如神经网络模型,仅适用于静态环境下的情况,从环境图像中生成未知目标的特征向量,与已知目标的特征向量进行比较,虽然可以识别出未知目标,但所有的未知目标均归为一类,且不能增量式地学习新类,缺乏在动态变化的环境中自适应和更新的灵活性。而在现实世界场景中,经常会遇到未知的目标类别,这些类别在训练数据中没有出现过,这就要求针对图像分类的训练既能适应新知识,又能保留旧知识。
[0004]若模型不更新,随着时间的推移,模型陈旧会降低模型的性能。此外,由于隐私和存储限制,旧数据可能不可用或只能部分访问,这导致来自旧类别的数据稀缺,从而造成数据分布的严重不平衡。因此,模型更加偏向于当前数据,并忘记了从旧数据中获得的知识,这种现象被称为灾难性遗忘。因此,持续学习的挑战在于平衡可塑性和稳定性,即模型能够在不忘记旧知识的情况下学习新知识,并在不同任务中重用和扩展经验知识。
[0005]类别增量学习(Class-Incremental Learning,CIL)是一种持续学习场景,涉及从由随时间增加的新类组成的数据流中学习,包括三类方法:基于正则化的方法、基于重放的方法和基于参数隔离的方法。这些方法旨在通过向损失函数中添加正则化项、重放旧数据样本或为每个类分配专用参数来保留先前知识的记忆。然而,这些方法大多数依赖于从头开始训练的模型,这对于从增量数据中学习可能不是最佳的。
[0006]大规模数据集上的预训练模型在下游任务中表现出了出色的泛化能力和抗灾难性遗忘的鲁棒性。此外,视觉语言预训练模型(Contrastive Language-Image Pre-Training,CLIP)在持续学习中表现出强大的零射击能力和对下游任务的高适应性。利用预训练模型出色的特征提取能力,每一步增量只需要更新少量的参数,降低遗忘风险。相比之下,从头开始训练的模型没有这种优势,并且可能遭受严重的性能下降。
[0007]目前,预训练模型的持续学习主要有两种策略:一种是对模型进行微调;另一种是在模型上不断扩展少量参数,如基于提示的方法或添加适配器。即使采用正则化约束来避免不必要的调整,微调模型也可能损害原始模型的特征提取能力,并导致灾难性遗忘。扩展参数可以减轻对原始模型的干扰,但随着时间的推移会增加时间和空间成本。同时,对于视觉语言预训练模型,语言编码器提供丰富的信息,有利于持续学习。然而,在大多数现有的方法中,文本特征仅用于分类目的,并且它们帮助减少遗忘的潜力没有得到充分的探索。那么,针对预训练模型训练效果不佳,分类精度不高的问题,在执行具体的如机器人目标检测任务时,会存在目标检测准确度低、误检、漏检等问题。
发明内容
[0008]为了解决上述问题,本发明提出了一种基于CLIP类别增量学习的图像分类方法及系统,根据图像的文本特征相似度选择筛选相邻类别,调整受相似新类影响的旧类的特征表示,同时结合分解参数融合策略减少由于学习新类而导致的旧类遗忘,由此提高图像分类准确度。
[0009]为了实现上述目的,本发明采用如下技术方案:
[0010]第一方面,本发明提供一种基于CLIP类别增量学习的图像分类方法,包括:
[0011]构建预训练的CLIP模型,包括图像编码器、文本编码器和分别设置于图像编码器和文本编码器之后的适配器;
[0012]获取训练图像及对应的文本标签,分别采用图像编码器和文本编码器提取图像特征和文本特征,以对适配器进行训练;
[0013]其中,在训练过程中,根据新输入的训练图像的文本特征和旧类别文本特征的相似度,筛选相邻类别的新旧类别对,对每对相邻类别中的旧类别文本特征,采用正态分布进行采样,以此构建铰链损失函数;在完成第t个训练任务后,将前一训练任务的适配器参数与当前训练任务的适配器参数进行融合,从而得到当前训练任务的最终适配器参数;
[0014]对待处理图像采用对适配器训练后的CLIP模型得到分类结果。
[0015]作为可选择的实施方式,以新旧类别的文本特征间的欧几里德距离作为相似度,将相似度小于设定阈值的新旧类别对作为相邻类别的新旧类别对;对每对相邻类别中的旧类别文本特征,计算质心和协方差矩阵,基于此从高斯分布中进行采样。
[0016]作为可选择的实施方式,以铰链损失函数与交叉熵损失函数的和作为训练过程的总损失函数;铰链损失函数为:
[0017]
[0018]其中,m为常数,c和分别表示属于相邻类别集的第k对相邻类别中的旧类别和新类别;ftext(tc)和分别为旧类别文本特征和新类别文本特征;A(·)表示适配器;表示旧类别文本特征的采样数据;dist(·)表示距离函数。
[0019]作为可选择的实施方式,适配器参数融合过程包括:将当前训练任务的适配器参数和前一训练任务的适配器参数分解到相同的标准正交基,根据分解后的当前训练任务的分解参数和前一训练任务的分解参数的差值计算融合权值,根据融合权值对当前训练任务的分解参数和前一训练任务的分解参数进行融合,得到融合参数,根据融合参数和标准正交基得到最终适配器参数。
[0020]作为可选择的实施方式,融合权值M为:
[0021]
[0022]其中,Rt为当前训练任务的分解参数,Rt-1为前一训练任务的分解参数,b为常数。
[0023]作为可选择的实施方式,融合参数R和最终适配器参数W分别为:
[0024]R=(J-M)⊙Rt-1+M⊙Rt;
[0025]W=BR;
[0026]其中,J表示所有1的矩阵;⊙为逐元素乘法;B为标准正交基;Rt为当前训练任务的分解参数,Rt-1为前一训练任务的分解参数;M为融合权值。
[0027]第二方面,本发明提供一种基于CLIP类别增量学习的图像分类系统,包括:
[0028]模型构建模块,被配置为构建预训练的CLIP模型,包括图像编码器、文本编码器和分别设置于图像编码器和文本编码器之后的适配器;
[0029]训练模块,被配置为获取训练图像及对应的文本标签,分别采用图像编码器和文本编码器提取图像特征和文本特征,以对适配器进行训练;
[0030]其中,在训练过程中,根据新输入的训练图像的文本特征和旧类别文本特征的相似度,筛选相邻类别的新旧类别对,对每对相邻类别中的旧类别文本特征,采用正态分布进行采样,以此构建铰链损失函数;在完成第t个训练任务后,将前一训练任务的适配器参数与当前训练任务的适配器参数进行融合,从而得到当前训练任务的最终适配器参数;
[0031]分类模块,被配置为对待处理图像采用对适配器训练后的CLIP模型得到分类结果。
[0032]第三方面,本发明提供一种电子设备,包括存储器和处理器以及存储在存储器上并在处理器上运行的计算机指令,所述计算机指令被处理器运行时,完成第一方面所述的方法。
[0033]第四方面,本发明提供一种计算机可读存储介质,用于存储计算机指令,所述计算机指令被处理器执行时,完成第一方面所述的方法。
[0034]第五方面,本发明提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现完成第一方面所述的方法。
[0035]与现有技术相比,本发明的有益效果为:
[0036]本发明提出一种基于CLIP类别增量学习的图像分类方法及系统,利用图像的文本特征来增强类别增量学习中相邻类别的分类能力,减少由于学习新类而导致的旧类遗忘。当新类别出现时,新的决策边界可能会将一部分旧类别样本划分到新类别中。为了解决这个问题,本发明利用文本特征,推断出新旧类别间的关系,加强相邻类别的分离。本发明通过计算新旧类别文本特征之间的距离来选择相邻类别对,由于新的类别有足够的数据来学习,不需要修改它的表示,专注于调整受新类别影响的旧类别的表示,从而减少由于学习新类而导致的旧类遗忘。
[0037]本发明提出一种基于CLIP类别增量学习的图像分类方法及系统,针对预训练模型的线性层适配器,提出分解参数融合方法,该方法不会随着训练任务的增加而增加参数数量。与直接计算参数平均值不同,本发明的融合策略更细粒度,并考虑了任务之间的共享知识。为了平衡稳定性和可塑性,根据学习当前任务引起的参数变化,对增量任务前后的参数进行合并,不需要在训练过程中增加额外的蒸馏损失来约束参数的变化,从而降低训练成本。
[0038]本发明附加方面的优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
[0039]构成本发明的一部分的说明书附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。
[0040]图1为本发明实施例1提供的基于CLIP类别增量学习的图像分类方法流程图;
[0041]图2为本发明实施例1提供的基于CLIP类别增量学习的图像分类方法框架图;
[0042]图3为本发明方法与其他SOTA基线在CIFAR100、ImageNet100和ImageNet-R上的精度曲线图;
[0043]图4为各方法在准确性和可学习参数方面的比较结果示意图;
[0044]图5为ImageNet100 B0 Inc10实验中前5个任务的混淆矩阵及其差异示意图;
[0045]图6为在ImageNet100 B0 Inc10上实验不同阈值α的结果示意图。
具体实施方式
[0046]下面结合附图与实施例对本发明做进一步说明。
[0047]应该指出,以下详细说明都是示例性的,旨在对本发明提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本发明所属技术领域的普通技术人员通常理解的相同含义。
[0048]需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本发明的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,术语“包括”和“包含”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
[0049]在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
[0050]术语解释
[0051]1、类别增量学习
[0052]根据使用的主要策略,类别增量学习方法分为三种类型。(1)基于正则化的方法,通过对分类器输出施加一些约束来抑制旧分类的遗忘。有研究通过计算旧任务的每个参数的重要性,然后添加正则化项以避免灾难性遗忘;有研究通过使用基于最优传输的知识蒸馏在任务之间共享知识;这些方法使用知识蒸馏损失作为正则化项。(2)基于重放的方法,通过保存旧类别的一些样本或特征,然后在训练新类别时使用新类别样本重放这些样本或特征来保留旧类别的记忆。有研究在探索如何减少样本的存储占用,有研究则在寻找更好的策略来选择将添加到样本中的样本,也有一些有研究可以保存额外的模型和样本来辅助当前的模型训练。(3)基于动态架构的方法动态调整模型的结构以适应新类别的学习。
[0053]2、基于预训练的类别增量学习
[0054]在增量学习中使用预训练模型主要有两种方法。一种是对模型本身的参数进行微调,以调整特征表示;比如采用不同的学习率来更新预训练的骨干网和分类器。另一种是保持预训练模型不变,增加参数调整特征表示;比如在预训练的CLIP模型中引入了一个适配器,以适应增量任务;比如为每个任务训练一个适配器,并使用跨模态注意来融合CLIP的语言和视觉信息。还有基于提示的方法,根据预训练模型的特征输出,选择相应的提示添加到模型中,然后重新获得特征进行分类。
[0055]3、无重放样本的类别增量学习
[0056]有时,由于隐私和内存限制,不可能存储旧的类样本。一些没有使用重放样本的现有方法使用高斯分布对数据建模并帮助分类。其他方法包括过采样原型或增强原型来模拟重播样本。最近的一些研究使用模型来合成来自旧任务的数据,作为重放样本的替代品。基于提示的方法使用冻结的主干和提示参数的相对隔离来避免使用重放样本。
[0057]实施例1
[0058]类别增量学习的目标是训练一个模型,该模型可以随着时间的推移从越来越多的类中分类数据。随着视觉语言预训练模型(如CLIP)的发展,它们表现出良好的泛化能力,使它们能够在参数完全固定的情况下进行类别增量学习。然而,通过简单地微调模型来进一步适应下游任务会导致严重的遗忘。大多数现有的关于预训练模型的工作假设,当模型获得新知识时,旧类的遗忘是一致的。
[0059]由此,本实施例提出一种基于CLIP类别增量学习的图像分类方法,利用类名的文本特征来衡量新类对旧类的影响程度,并相应地调整它们的表示以减少遗忘;提出一种适配器的分解参数融合方法,大大减少由于使用新数据对适配器进行微调而造成的遗忘。
[0060]如图1所示,具体包括:
[0061]构建预训练的CLIP模型,包括图像编码器、文本编码器和分别设置于图像编码器和文本编码器之后的适配器;
[0062]获取训练图像及对应的文本标签,分别采用图像编码器和文本编码器提取图像特征和文本特征,以对适配器进行训练;
[0063]其中,在训练过程中,根据新输入的训练图像的文本特征和旧类别文本特征的相似度,筛选相邻类别的新旧类别对,对每对相邻类别中的旧类别文本特征,采用正态分布进行采样,以此构建铰链损失函数;在完成第t个训练任务后,将前一训练任务的适配器参数与当前训练任务的适配器参数进行融合,从而得到当前训练任务的最终适配器参数;
[0064]对待处理图像采用对适配器训练后的CLIP模型得到分类结果。
[0065]如图2所示,本实施例的框架包括预训练的CLIP模型和设于CLIP模型中的线性适配器,对下游任务增量学习仅需要训练适配器(Adapter);图像特征通过图像编码器和适配器传递图像,标签特征通过文本编码器传递类标签,通过测量它们之间的相似度来确定分类结果。
[0066]类别增量学习算法在每个训练任务t上训练一个模型Mt,该模型可以对新的分类任务中的数据进行分类,类别集不相交。模型Mt只使用当前数据集Dt中的数据从以前的模型Mt-1更新,而不访问以前的数据集。
[0067]通过获取训练图像,如机器人巡检图像及对应的文本标签,分别采用图像编码器和文本编码器提取巡检图像中目标的图像特征和文本特征,以对适配器进行训练。
[0068]在训练过程中,灾难性遗忘的一种表现是模型错误地将旧类别数据识别为新类别,当新类别与旧类别相似时,这种现象更为严重。这些类别属于相邻类别。它们通常在自然语言中具有相似的语义和相似的外观,例如“金刚鹦鹉”和“鹦鹉”。对模型来说,区分它们是很具有挑战性的,特别是随着时间推移添加新类别时。
[0069]由此,本实施例在文本编码器后引入邻类分离模块,邻类分离模块通过计算文本特征的相似度来识别相邻类别,并对旧类别文本特征的分布进行采样,计算铰链损失函数,以指导适配器学习过程。
[0070]语义信息可以在遇到新数据时筛选出相邻的新旧类,然后对旧类别的图像特征进行相应调整。旧类别的图像特征是通过从各自的高斯分布中采样产生的,并与新数据一起输入适配器以计算分类损失;同时,根据文本特征相似度选择相邻类别的新旧类别对,对于的新旧类别对中的每个旧类,从其高斯分布中采样更多的数据并将它们输入适配器,计算分离损失。这样就可以调整受相似的新类影响的旧类的特征表示,从而减少由于学习新类而导致的旧类遗忘。
[0071]具体过程包括:
[0072]为了筛选相邻类别的新旧类别对,使用类别名称的规范化文本特征来计算新旧类别之间的距离:
[0073]D=dist(ftext(tnew),ftext(told)) (1)
[0074]其中,D是新旧类别的归一化文本特征之间的欧几里德距离,ftext(tnew)和ftext(told)分别为新类别tnew的文本特征和旧类别told的文本特征。
[0075]注重衡量新旧类别之间的距离,这反映了干扰程度。然后,筛选相邻类别集
[0076]P={(i,j)|Dij<α} (2)
[0077]其中,α表示阈值;Dij是旧类别i和新类别j的文本特征之间的距离。该标准通过选择一对一关系的子集来降低多对多关系的复杂性。
[0078]然后,本实施例通过从每对相邻类别的正态分布中采样旧类别的特征来引入铰链损失。由于没有旧类的真实数据,过度的调整可能会损害旧类的分类性能,因此,只利用铰链损耗进行小而有效的调整。铰链损失函数可以使适配器更多地关注更容易混淆的相邻类别,同时最大限度地减少对旧类别表示的干扰。
[0079]铰链损失函数为:
[0080]
[0081]其中,m为常数,c和表示属于相邻类别集的第k对相邻类别中的旧类别和新类别;A表示适配器;表示旧类别文本特征c的采样数据,使用高斯分布近似每个类别的特征分布,基于类别c的真实图像嵌入ec=fimg(xc)来计算质心μc和协方差矩阵∑c,然后从高斯分布中抽样为类c生成图像嵌入
[0082]最终总损失函数为铰链损失函数与交叉熵损失合并:
[0083]
[0084]交叉熵损失为:
[0085]令CLIP模型的图像编码器为fimg(·),文本编码器为ftext(·),适配器为A(·),给定图像输入xi,类yi具有固定的提示模板,例如“a photo of a[CLS]”,用ti表示,输出结果如下:
[0086]
[0087]其中,τ为温度。
[0088]如果文本编码器被冻结,只需要在CIL中保留文本的嵌入而不是类名。采用交叉熵损失准则来微调适配器参数:
[0089]
[0090]在本实施例中,进一步采用分解参数融合策略来减少遗忘,保持线性适配器的稳定性。在完成第t个训练任务后,将前一训练任务的适配器参数与当前训练任务的适配器参数进行融合,从而得到当前训练任务的最终适配器参数,将从两个连续训练任务中学习到的参数分解为共享知识和特定任务知识,在此分解的基础上对参数进行融合,能更好地平衡系统的可塑性和稳定性。
[0091]具体地:
[0092]评估每个新参数的重要性。梯度表示基于新数据的参数更新方向,训练任务之间的参数差是梯度的加权和。因此,变化较大的参数对于学习新知识更为重要。为了获得重要矩阵作为参数融合的细粒度权值,计算当前训练任务的参数与前一训练任务的参数之差,并取最大值进行归一化:
[0093]
[0094]其中,M表示每个新参数的重要性,Wt表示当前训练任务的适配器参数,Wt-1表示前一训练任务的适配器参数,b为常数。
[0095]为了比较Wt和Wt-1在相同标准下的差异,将Wt和Wt-1分解到相同的标准正交基B;即通过SVD将Wt-1分解到标准正交基B,并计算从矩阵Wt到B的投影:
[0096]Wt-1→BRold (8)
[0097]Rnew=BTWt (9)
[0098]其中,参数矩阵Wt-1和Wt表示为标准正交基B的线性组合,即Rt-1和Rt,它们表示特定于任务的知识;矩阵B表示跨参数矩阵的共享知识空间。
[0099]由此这样,计算的矩阵差就可以转化为计算同一标准正交基的两个不同权值的差;根据分解得到的Rt和Rt-1的差值计算软掩码M,即代入(7)的Wt和Wt-1来计算软掩码M,作为融合权值;最后计算融合参数R和最终适配器参数W:
[0100]R=(J-M)⊙Rt-1+M⊙Rt (10)
[0101]W=BR (11)
[0102]其中,J表示所有1的矩阵,⊙表示逐元素乘法。
[0103]最后,基于适配器训练后得到的CLIP模型,对待处理图像进行分类,如对机器人巡检图像进行目标分类识别。
[0104]本实施例使用以下数据集进行实验:CIFAR00,ImageNet1K,ImageNet100,ImageNet-R和CUB200。CIFAR100数据集由100个类别组成,每个类别包含600个彩色图像,分辨率为32×32像素,其中,500张图像分配给训练集,100张图像分配给测试集。ImageNet1K数据集由1000个类别组成,ImageNet100数据集是ImageNet1K数据集的一个子集,该数据集由100个选定的类组成。ImageNet-R数据集是源自ImageNet数据集的各种图像类别的集合,ImageNet-R数据集包括各种风格的图像,如艺术、漫画、涂鸦、刺绣、视频游戏等,它们是ImageNet数据集中200个类别的不同表达式。按照之前的工作将数据集分成训练集和测试集。CUB200数据集广泛用于细粒度视觉分类任务,它包括11788张不同鸟类的200个子类的图像。
[0105]比较CIL方法:L2P++,DualPrompt,CODA,SLCA,ADAM-Adapter和PROOF。Continual-CLIP为CLIP的零样本测试。PROOF是基于带有重放样本的基于CLIP的方法。为了确保比较的公平性,所有方法都使用相同的OpenAI CLIP预训练权重。通过运行CODA方法的公开代码实现,可以获得DualPrompt、L2P++和CODA三个方法的结果。SLCA方法、ADAM-Adapter方法、PROOF方法和Continual-clip方法的结果来源于各自的公开代码。
[0106]评价指标采用:第1到t个任务在测试数据中训练第t个任务后的平均精度记为At,Avg是所有任务准确率的平均值,Last是最后一个任务之后的平均准确率。
[0107]本实施例的骨干网络是ViT-B/16版本的CLIP,用Adam优化器训练15个epoch的模型,从学习率0.001开始,使用MultiStepLR调度器,在epoch 4和10时将学习率降低到0.1倍,使用0.65作为文本特征距离的默认阈值来选择相邻的类别对,使用每个epoch大约2000个采样数据来模拟重放样本,这与传统重放设置所增加的数据量相匹配。在每次迭代中,为每个由阈值选择的类别抽样了20个额外的特征。由于某些类的数据不足,无法得到一个全秩协方差矩阵。遵循先前的工作并使用协方差收缩来获得全秩矩阵,对几种不同的洗牌顺序进行了实验,并报告了这些顺序的平均值。
[0108]1、总体比较结果
[0109]表1为CIFAR100上持续学习的实验结果,表2为ImageNet100上的实验结果,表3为ImageNet-R上的实验结果。B表示基类的数量,Inc表示增量类的数量。所有基于基线的结果均根据其公布的代码与CLIP预训练的VIT-B/16权重进行复制。对几种不同的洗牌顺序进行实验,并报告这些顺序的平均值。
[0110]表1CIFAR100上持续学习的实验结果
[0111]
[0112]表2ImageNet100上的实验结果
[0113]
[0114]表3ImageNet-R上的实验结果
[0115]
[0116]表1、表2和表3给出了本实施例方法与现有方法在CIFAR100、ImageNet100和ImageNet-R三个数据集上的对比结果。本实施例方法在大多数情况下明显优于各种竞争方法。在ImageNet100数据集上,本实施例方法实现了比其他方法至少高1.58%的最终精度。在ImageNet-R数据集的base0设置实验中,本实施例方法在最终精度上比其他方法至少高出1.08%,这表明本实施例利用文本信息和参数融合在减少遗忘和保持模型稳定性方面有很好的效果。与CLIP零样本能力相比,本实施例方法只增加了一个线性层适配器,但是仍有很好的效果,这表明本实施例方法并不仅仅依赖于预训练模型的泛化来获得良好的性能。图3显示了随着不同数据集和设置的类数量的增加,平均准确率的下降趋势,本实施例方法可以显著缓解这种趋势,即减少遗忘。
[0117]这三种基于提示的方法在base50和base100设置中的提示使用严重不平衡,因为它们默认情况下对每个任务使用相同数量的提示。这导致模型的预测偏向于基类,并且很难注入新的知识。L2P和DualPrompt在imageNet-R数据集上已经超过了在ImageNet21k上预训练的原始模型的性能。然而,CODA在这三个数据集上的表现很差,这表明它的方法可能与特定的预训练模型有高度的耦合,例如在imagenet21k上预训练的ViT。
[0118]SLCA很容易在初始任务上实现更高的性能,因为它对主干和分类器进行了微调。因此,它在base50和base100设置下的实验结果都比较好。但在长序列设置中,由主干微调导致的累积遗忘更为明显。
[0119]ADAM主要在初始任务上训练适配器模型,然后不对后续任务训练模型。因此,它的性能取决于初始任务中数据的比例。由于模型没有在后续任务上进行训练,因此它保持了模型的稳定性,但不学习新的知识。模型的低塑性影响了性能。由于ImageNet-R中图像风格差异较大,数据集需要模型学习更多的知识来适应丰富的图像风格,该方法在该数据集上的表现不如在统一风格cifar100和imagenet100上的表现。
[0120]为CLIP设计的PROOF随着任务的扩展扩展了适配器,,并利用跨模态注意力融合了文本和图像的信息,但在CLIP分类中没有考虑相邻类别的影响。即使没有范例和扩展参数,本实施例方法仍然具有优势。
[0121]本实施例还在大型数据集ImageNet1K和细粒度数据集CUB200进行评估。结果如表4所示。实验结果表明,该方法在大数据集下仍然具有优势,特别是在更困难的细粒度任务CUB200上,与CLIP的零射击性能相比,本实施例方法的性能有了很大的提高。
[0122]表4在CUB200和ImageNet1K上的结果,均分为10个任务
[0123]
[0124]综上所述,本实施例方法不会随着任务的增加而扩展模型,同时保持对新数据的学习并减轻增量任务中的遗忘,在保持预训练模型能力的基础上,很好地平衡了模型的可塑性和稳定性。
[0125]2、参数数量分析
[0126]图4说明了本实施例方法的增量参数大小与ImageNet100数据集上的其他方法的比较。使用同样的主干网CLIP预训练的VIT-B/16,冻结主干网参数的方法在参数更新方面比微调整个模型的方法SLCA要低得多。在冻结主干并添加可学习参数的方法中,本实施例方法添加的参数也是最少的,虽然在纯视觉编码器方法上增加了一个文本编码器,但是由于标签文本是固定的,所以在整个训练过程中只需要计算一次标签的文本特征,并且标签的数量远远低于数据量。例如,ImageNet100只有100个标签要计算。因此,与处理大量图像和多次迭代的视觉编码器的成本相比,文本编码器的成本可以忽略不计。
[0127]3、消融实验
[0128]3.1、模块消融
[0129]表5为B0 Inc10 ImageNet100上的模块消融实验结果。SG表示从高斯分布中抽取一些旧的类别特征,是对类对的随机选择,PF w/o MD的含义是只使用式(7)进行参数融合,MD表示矩阵分解。
[0130]表5B0 Inc10 ImageNet100上的模块消融实验结果
[0131]
[0132]表5展示了本实施例方法中不同组件的结果。(random)是指随机选择类对,而不是使用文本特征的距离。在这种情况下,准确率非常接近基线,而使用带有文本特征的完整模块,准确率比基线提高了2.24%。这表明文本引导的最近类选择是有效的。不进行矩阵分解的参数融合方法和进行矩阵分解的全参数融合方法的性能表明,采用细粒度重要矩阵的参数融合方法是有效的,并且矩阵分解进一步增强了其性能。
[0133]3.2、临近类别分类
[0134]表6为对50张试验图像进行不同烧蚀实验设置下模型的预测结果,其他三张是根据文本特征相似度选择的相邻新类别。
[0135]表6对50张试验图像进行不同烧蚀实验设置下模型的预测结果
[0136]
[0137]如图5所示,本实施例方法有效地纠正了被错误分类为新类别的旧类别。图5中的(c)显示,误分类到新类别的样本数量减少,正确分类的样本数量增加,对其他类别的负面影响很小。表6显示了受影响类别的一些示例,结果表明,根据文本特征相似性选择的与旧类别接近的新类别是导致旧影响类别预测错误的主要原因,所选择的类别占25个错误预测中的23个,所选类别使用可以有效减少对受影响旧类别的错误预测。
[0138]3.3、阈值消融
[0139]在图6中研究了阈值α对相邻类别的影响。大多数距离大于0.5,所以本实施例方法从0.5开始逐渐增加阈值。随着阈值的提高,被选择的相邻类别越来越多,表现也随之提高。然而,阈值过大会选择许多不同的类别对,这会干扰分类,增加计算量。选择更多不同的类别是没有好处的。所以本实施例方法用0.65作为所有实验的阈值。
[0140]3.4、带有CLIP文本编码器的基于提示的方法。
[0141]为了公平比较,将CLIP的文本编码器添加到独立于分类器的基于提示的方法中作为分类器。结果如表7所示。在L2P++和DualPrompt中,不同任务的key和value是相对独立的,这使得旧类的表示变化很小。使用固定的CLIP文本特征而不是可训练的线性层作为分类器,当新类文本特征与旧类相似时,可能会导致旧类样本的错误分类。因此,当使用CLIP文本编码器时,这两个方法的性能会下降。CODA使用权重来组合所有提示组件,使旧类能够从新扩展的参数中受益。使用信息丰富的文本分类器可以提高性能。与这些方法相比,本实施例方法可以更好地利用CLIP文本编码器。
[0142]表7ImageNet-R B0 Inc20上的最终准确率
[0143]
[0144]4、与传统方法比较
[0145]在此之前,传统的不使用预训练模型而使用样例的方法在课堂增量学习中也取得了很好的效果。在表8中比较了使用在ImageNet21K上预训练的VIT-B/16模型进行初始化的传统方法,传统方法的结果在ImageNet21K上使用预训练的权值从PILOT中重现。本实施例也用与本实施例相同的初始化来评估这些基线,但是性能要差得多。即使不使用范例,本实施例方法仍然比这些最先进的方法具有显著的优势。
[0146]表8传统方法在ImageNet-R B0 Inc20上的对比结果
[0147]
[0148]本实施例提出一种基于CLIP类别增量学习的图像分类方法,研究了基于预训练视觉语言模型的增量学习问题,引入类的文本特征来调整受新数据影响较大的类的表示,有效地缓解遗忘;通过适配器与参数融合策略有效保持模型的稳定性和减少遗忘。
[0149]实施例2
[0150]本实施例提供一种基于CLIP类别增量学习的图像分类系统,包括:
[0151]模型构建模块,被配置为构建预训练的CLIP模型,包括图像编码器、文本编码器和分别设置于图像编码器和文本编码器之后的适配器;
[0152]训练模块,被配置为获取训练图像及对应的文本标签,分别采用图像编码器和文本编码器提取图像特征和文本特征,以对适配器进行训练;
[0153]其中,在训练过程中,根据新输入的训练图像的文本特征和旧类别文本特征的相似度,筛选相邻类别的新旧类别对,对每对相邻类别中的旧类别文本特征,采用正态分布进行采样,以此构建铰链损失函数;在完成第t个训练任务后,将前一训练任务的适配器参数与当前训练任务的适配器参数进行融合,从而得到当前训练任务的最终适配器参数;
[0154]分类模块,被配置为对待处理图像采用对适配器训练后的CLIP模型得到分类结果。
[0155]此处需要说明的是,上述模块对应于实施例1中所述的步骤,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例1所公开的内容。需要说明的是,上述模块作为系统的一部分可以在诸如一组计算机可执行指令的计算机系统中执行。
[0156]在更多实施例中,还提供:
[0157]一种电子设备,包括存储器和处理器以及存储在存储器上并在处理器上运行的计算机指令,所述计算机指令被处理器运行时,完成实施例1中所述的方法。为了简洁,在此不再赘述。
[0158]应理解,本实施例中,处理器可以是中央处理单元CPU,处理器还可以是其他通用处理器、数字信号处理器DSP、专用集成电路ASIC,现成可编程门阵列FPGA或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
[0159]存储器可以包括只读存储器和随机存取存储器,并向处理器提供指令和数据、存储器的一部分还可以包括非易失性随机存储器。例如,存储器还可以存储设备类型的信息。
[0160]一种计算机可读存储介质,用于存储计算机指令,所述计算机指令被处理器执行时,完成实施例1中所述的方法。
[0161]实施例1中的方法可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器、闪存、只读存储器、可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。为避免重复,这里不再详细描述。
[0162]一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现完成实施例1中所述的方法。
[0163]本发明还提供有形地存储在非暂时性计算机可读存储介质上的至少一个计算机程序产品。该计算机程序产品包括计算机可执行指令,例如包括在程序模块中的指令,其在目标的真实或虚拟处理器上的设备中执行,以执行如上所述的过程/方法。通常,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、库、对象、类、组件、数据结构等。在各种实施例中,可以根据需要在程序模块之间组合或分割程序模块的功能。用于程序模块的机器可执行指令可以在本地或分布式设备内执行。在分布式设备中,程序模块可以位于本地和远程存储介质中。
[0164]用于实现本发明的方法的计算机程序代码可以用一种或多种编程语言编写。这些计算机程序代码可以提供给通用计算机、专用计算机或其他可编程的数据处理装置的处理器,使得程序代码在被计算机或其他可编程的数据处理装置执行的时候,引起在流程图和/或框图中规定的功能/操作被实施。程序代码可以完全在计算机上、部分在计算机上、作为独立的软件包、部分在计算机上且部分在远程计算机上或完全在远程计算机或服务器上执行。
[0165]在本发明的上下文中,计算机程序代码或者相关数据可以由任意适当载体承载,以使得设备、装置或者处理器能够执行上文描述的各种处理和操作。载体的示例包括信号、计算机可读介质、等等。信号的示例可以包括电、光、无线电、声音或其它形式的传播信号,诸如载波、红外信号等。
[0166]本领域普通技术人员可以意识到,结合本实施例描述的各示例的单元及算法步骤,能够以电子硬件或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
[0167]上述虽然结合附图对本发明的具体实施方式进行了描述,但并非对本发明保护范围的限制,所属领域技术人员应该明白,在本发明的技术方案的基础上,本领域技术人员不需要付出创造性劳动即可做出的各种修改或变形仍在本发明的保护范围以内。