一种用于图像检索的双重知识蒸馏方法与流程

专利2022-05-09  15


本发明属于图像检索领域,具体是涉及到一种用于图像检索的双重知识蒸馏方法。



背景技术:

自深度学习出现以来,图像检索在文献中得到了广泛的探索。现有的检索工作通常注重提高网络的泛化能力,并假设目标数据集是平稳和固定的。然而,这个假设在许多现实世界的场景是不可行的,因为现实的环境是不稳定的。为此,提出了终身学习,使得深度网络能学习连续性的任务并适应流数据。终身学习系统的主要挑战是克服打击性的遗忘,和学习新数据时产生的对于旧数据获得的综合知识的干扰。

知识蒸馏可以通过将学习到的信息从一个训练过的网络(即教师模型)转移到一个新的网络(即学生模型)来减少遗忘。对于图像分类、目标检测、图像生成等各种分类的任务,其有效性已经得到了很好的研究。



技术实现要素:

目前,知识蒸馏在图像检索效率方面的研究仍然较少。首先,深度模型会学习不同的任务的增量检索,而训练之间的语义漂移将会导致这些任务之间的相关性很弱,如图1中的鸟、狗和汽车就是一组相关性极弱的任务的例子。因此,知识蒸馏并不能有效地防止跨任务的流数据的遗忘。第二,当模型学习新任务时,任务之间的弱相关性会导致模型参数的显著更新。图像检索对特征之间的匹配非常敏感。因此,特征的微小变化也将对特征匹配产生重大影响。输出特性的变化使将遗忘最小化变得更加困难。第三,传统知识蒸馏的工作框架更加注重在教师模型网络中的知识的保存。这可能会很难在最小化遗忘率和提高网络检索泛化能力之间寻求最佳平衡。

为了将遗忘率最小化,同时提高泛化性能,本发明提出了一种用于图像检索的双重知识蒸馏方法,包括由两个专业教师模型和一个学生模型组成的双重知识蒸馏框架,如图2所示,其中,两个专业教师模型分别是固定教师模型和动态教师模型。在训练任务t之前,固定教师模型在前任务的基础上接受训练,然后固定其参数,并对全连接层嵌入的d维特征进行知识蒸馏;在学生模型学习任务t时,使用固定教师batchnorm层中存储的统计数据来生成样本,作为前任务的代表,来减少对前一任务的遗忘,学生模型的参数从固定教师模型上复制,其训练方案与固定教师模型一致;动态教师模型与学生模型共同接受训练,进行辅助知识蒸馏来提高学生模型对新任务的泛化能力。本发明中使用三元组损失函数作为基本约束来训练模型。

在训练任务t之前,已经对固定教师模型进行了前任务(t−1)的训练,并确定了其参数。对学生模型进行新任务t的训练会导致负向迁移,这可能会降低前一个任务的性能,知识蒸馏通过使用固定教师模型可以防止这种问题。如图2所示,利用固定教师模型对全连通层中嵌入的d维特征进行知识蒸馏,公式为,其中n为minibatch的大小。同样,来自学生模型的特征表示为,从固定教师模型和学生模型中进行特征提取时,语义相似的输入能产生相似的模式。因此,采用带有核函数的gram矩阵来度量特征相关性。

k(·)为内积,即中的每一项表示同一激活(i=j)或不同激活(i≠j)之间的相关性。本发明使用kullback-leibler(kl)散度来表征,由softmax函数归一化。因此,将固定教师模型的知识蒸馏损失写成,用一个因子加权:

当学生模型学习任务t时,使用kl散度可以防止前面任务的性能下降。然而,当学生模型对具有较大语义漂移的数据(如图1中的cub-birds和stanford-cars)进行增量训练时,不能通过传递更多以前学到的信息来有效地防止退化。为了克服这个问题,使用batchnorm层中存储的统计数据来生成样本,作为前面任务的代表。

假设固定教师模型包含l个卷积层,每个卷积层后面都有一个batchnorm层,如图2所示。每个batchnorm层l包括通道运行均值和运行方差。在训练学生模型之前,使用一批有随机类标签的高斯噪声z输入给教师模型。使用教师模型每一个卷积层l的输出来计算批处理均值和批方差。定义一个batchnorm损失度量z的存储统计信息与当前统计信息之间的差异,为权重因子:

不同于adi,adi只受限于分类网络,使用k-means聚类损失对z进行优化。给定n个噪声张量的mini-batch,包含k个类,每一类的p个张量。一类的均值定义为是张量z中的一个样本,的数量被设置为张量z中的类的数量(即k类)。通过计算类内和类间的距离来聚类z的特征。具体来说,对于给定的类,类内距离的集合被表述为,p=1,2,3,…。中的元素数等于p,同样,根据类的所有其他(n-p)个样本计算出一组类间距离。在中对所有元素进行聚类,导致训练效率较低。相反,在这些距离集合中挖掘最困难的样本。对于,本发明挖掘离它的类均值最远的样本。对于,挖掘离类平均最近的样本。对于所有k类,使用聚类损失规则化类间变化,使其比类内变化更大对于所有的k类,借助边缘∆>0使用一个聚类损失来规则化类间的变化变得大于类内变化的,为权重因子。

然后,利用损失基于固定教师模型对z进行优化,来生成前一个(t-1)任务的代表性图像,即

图像和类标签可以用来构建一个混合数据集。x属于原始训练集。混合标签为。在这种情况下,混合数据被输入到固定的教师模型,以便将更丰富的先验知识传递给学生模型。

在任务t开始时,学生模型的参数从固定教师模型上复制,如图1所示。学生模型的自我激励学习对于保证当前任务t的表现是很重要的。与对固定教师模型的训练方案一致,采用与公式(1)类似的三元组损失形式来训练学生模型,为权重因子。

需要注意的是,在每个训练阶段,根据混合标签,anchor、正样本图像和负样本图像都来自于混合数据集

在训练过程中,学生模型需要学习新的信息,同时又能保留有之前的知识。然而,使用固定教师模型从混合数据中提取的知识在被学生模型学习时具有较强的正则化,使得学生模型容易记住之前的知识,但对新任务t的泛化程度较低,所以在减少遗忘和提高泛化之间很难达到最佳平衡。因此,本发明提出动态教师模型与学生模型一起参与训练。它的参数初始化与固定教师模型和学生模型的初始化不同。动态教师模型被一个三元组损失约束为权重因子:

,训练图像仅从中挖掘的数据集,而不是混合数据,见图2。动态教师模型向学生模型传递新信息,以提高学生模型的泛化能力。因此,一个辅助进行知识蒸馏的损失被定义为:

注意,为权重因子,在训练期间,从计算出的梯度与动态教师模型是相互分离的。该操作可以保证动态教师模型完全专注于从新的数据集捕捉新信息。

当使用数据集进行训练时在,任务t上,连同生成的图像,双重知识蒸馏(dkd)框架使用完整的目标函数运行:

本发明的有益效果是,提出了一个双重知识蒸馏(dkd)框架,这个框架中包括两个专业教师模型和一个学生模型。一方面,第一位教师模型(即固定教师模型)已经接受了以前任务的训练,以转移旧的知识。为了进一步缓解学生模型的遗忘,使用固定教师模型的batchnorm层中存储的统计数据生成用于代表之前数据集的图像。不需要存储来自旧数据的少量样本,也不需要通过训练额外产生的生成式网络来合成图像,而是可以直接从固定教师模型中生成具有代表性的图像,不需要任何其他操作。另一方面,第二个教师模型(即动态教师模型)与学生模型共同训练,只使用新任务中的样本。动态教师模型在提高学生模型对新任务的泛化能力的中起到辅助模式的作用。最后,学生模型可以在最小化遗忘率和提高泛化性能之间达到最佳平衡。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图示出的结构获得其他的附图。

图1为终身图像检索示意图。

图2为双重知识蒸馏(dkd)框架。

图3为cubbirds在可见数据集上的性能退化评价。

图4为cubbirds在不可见数据集上的性能退化评价。

图5为cub-birds生成具有代表性的图像。

图6为图像分类与图像检索的recall率/分类准确性比较。

图7为图像分类与图像检索在不同噪音比下的性能退化率。

图8在第一个任务(即在cub-birds数据集上)上评估第一个训练顺序的表现。

图9在第一个任务(即在cub-birds数据集上)上评估第二个训练顺序的表现。

具体实施方式

为了进行图像检索,本发明将数据集d分割为训练集和测试集。在上训练一个深度网络,通过使用某个目标函数来学习的表示。到目前为止,排序误差已经被广泛地用作训练网络的约束条件。以三元组误差为例,中的每个真值标签是用来挖掘positive,hardnegative和anchorimage。网络被训练来学习一个特征空间,而的距离被表示为,它被来自的边界扩大了。

(1)

本发明使用三元组损失函数作为基本约束来训练模型以增量执行任务。流程图如图1所示。每个任务t都对应于整个数据集d的训练t(e.g.鸟)。在任务,数据集被分成一组可视类别和一系列不可视的类别。对于可见部分,包括个类别,即,每个类c包含不同数量的图像共享相同的标签部分进一步分解为训练集和测试集,同样,不可视的类别包括个类别,所有这些类别都用于评估模型的泛化能力,类似于用于图像检索的度量学习的一般做法。对于终身图像检索,假设在训练集(当前任务t)上连续训练了一个深度模型。一方面,要求训练后的模型能够最小化前一任务的遗忘率,从而保持其对先前数据集的检索能力。另一方面,要求训练的模型对可见部分具有较好的精度t,更重要的是,要对当前数据集的不可视部分进行了很好的概括。

为了将遗忘率最小化,同时提高泛化性能,本发明提出了一个双重知识蒸馏(dkd)框架,该框架包括两个教师模型和一个学生模型,如图2所示,其将固定教师模型的batchnorm层中存储的统计量用于生成具有代表性的图像,并由进行优化。动态教师模型的参数初始化与固定教师模型不同,并使用与学生模型共同训练。为了清晰起见,没有描述relu激活函数和池化层。

在训练任务t之前,已经对一个教师进行了前一个任务(t−1)的训练,并确定了其参数。对学生模型进行新任务t的训练会导致负向迁移,这可能会降低前一个任务的性能。知识蒸馏通过使用固定教师模型可以防止这种问题。如图2所示,利用固定教师模型对全连通层中嵌入的d维特征进行知识蒸馏,公式为其中n为minibatch的大小。同样,来自学生模型的特征表示为,固定的教师模型和学生模型进行特征提取时,语义相似的输入能产生相似的特征模式。因此,采用带有核函数的gram矩阵来度量特征相关性。

(2)

k(·)为内积,即中的每一项表示同一激活(i=j)或不同激活(i≠j)之间的相关性。本发明使用kullback-leibler(kl)散度来表征,由softmax函数归一化。因此,将固定教师模型的知识蒸馏损失写成,用一个因子加权:

(3)

当学生模型学习任务t时,使用kl散度可以防止前面任务的性能下降。然而,当学生模型对具有较大语义漂移的数据(如图1中的cub-birds和stanford-cars)进行增量训练时,不能通过传递更多以前学到的信息来有效地防止退化。为了克服这个问题,使用batchnorm层中存储的统计数据来生成样本,作为前面任务的代表。

假设固定教师模型包含l个卷积层,每个卷积层后面都有一个batchnorm层,如图2所示。每个batchnorm层l包括通道运行均值和运行方差。在训练学生模型之前,使用一批有随机类标签的高斯噪声z输入给教师模型。使用教师模型每一个卷积层

转载请注明原文地址:https://doc.8miu.com/read-250266.html

最新回复(0)