本发明属于图像检索领域,具体是涉及到一种用于图像检索的双重知识蒸馏方法。
背景技术:
自深度学习出现以来,图像检索在文献中得到了广泛的探索。现有的检索工作通常注重提高网络的泛化能力,并假设目标数据集是平稳和固定的。然而,这个假设在许多现实世界的场景是不可行的,因为现实的环境是不稳定的。为此,提出了终身学习,使得深度网络能学习连续性的任务并适应流数据。终身学习系统的主要挑战是克服打击性的遗忘,和学习新数据时产生的对于旧数据获得的综合知识的干扰。
知识蒸馏可以通过将学习到的信息从一个训练过的网络(即教师模型)转移到一个新的网络(即学生模型)来减少遗忘。对于图像分类、目标检测、图像生成等各种分类的任务,其有效性已经得到了很好的研究。
技术实现要素:
目前,知识蒸馏在图像检索效率方面的研究仍然较少。首先,深度模型会学习不同的任务的增量检索,而训练之间的语义漂移将会导致这些任务之间的相关性很弱,如图1中的鸟、狗和汽车就是一组相关性极弱的任务的例子。因此,知识蒸馏并不能有效地防止跨任务的流数据的遗忘。第二,当模型学习新任务时,任务之间的弱相关性会导致模型参数的显著更新。图像检索对特征之间的匹配非常敏感。因此,特征的微小变化也将对特征匹配产生重大影响。输出特性的变化使将遗忘最小化变得更加困难。第三,传统知识蒸馏的工作框架更加注重在教师模型网络中的知识的保存。这可能会很难在最小化遗忘率和提高网络检索泛化能力之间寻求最佳平衡。
为了将遗忘率最小化,同时提高泛化性能,本发明提出了一种用于图像检索的双重知识蒸馏方法,包括由两个专业教师模型和一个学生模型组成的双重知识蒸馏框架,如图2所示,其中,两个专业教师模型分别是固定教师模型和动态教师模型。在训练任务t之前,固定教师模型在前任务的基础上接受训练,然后固定其参数,并对全连接层嵌入的d维特征进行知识蒸馏;在学生模型学习任务t时,使用固定教师batchnorm层中存储的统计数据来生成样本,作为前任务的代表,来减少对前一任务的遗忘,学生模型的参数从固定教师模型上复制,其训练方案与固定教师模型一致;动态教师模型与学生模型共同接受训练,进行辅助知识蒸馏来提高学生模型对新任务的泛化能力。本发明中使用三元组损失函数作为基本约束来训练模型。
在训练任务t之前,已经对固定教师模型进行了前任务(t−1)的训练,并确定了其参数。对学生模型进行新任务t的训练会导致负向迁移,这可能会降低前一个任务的性能,知识蒸馏通过使用固定教师模型
k(·)为内积,即
当学生模型学习任务t时,使用kl散度可以防止前面任务的性能下降。然而,当学生模型对具有较大语义漂移的数据(如图1中的cub-birds和stanford-cars)进行增量训练时,
假设固定教师模型包含l个卷积层,每个卷积层后面都有一个batchnorm层,如图2所示。每个batchnorm层l包括通道运行均值
不同于adi,adi只受限于分类网络,使用k-means聚类损失
然后,利用损失
在任务t开始时,学生模型的参数从固定教师模型上复制,如图1所示。学生模型的自我激励学习对于保证当前任务t的表现是很重要的。与对固定教师模型的训练方案一致,采用与公式(1)类似的三元组损失形式来训练学生模型,
需要注意的是,在每个训练阶段,根据混合标签
在训练过程中,学生模型需要学习新的信息,同时又能保留有之前的知识。然而,使用固定教师模型从混合数据中提取的知识在被学生模型学习时具有较强的正则化,使得学生模型容易记住之前的知识,但对新任务t的泛化程度较低,所以在减少遗忘和提高泛化之间很难达到最佳平衡。因此,本发明提出动态教师模型
对
注意,
当使用数据集
本发明的有益效果是,提出了一个双重知识蒸馏(dkd)框架,这个框架中包括两个专业教师模型和一个学生模型。一方面,第一位教师模型(即固定教师模型)已经接受了以前任务的训练,以转移旧的知识。为了进一步缓解学生模型的遗忘,使用固定教师模型的batchnorm层中存储的统计数据生成用于代表之前数据集的图像。不需要存储来自旧数据的少量样本,也不需要通过训练额外产生的生成式网络来合成图像,而是可以直接从固定教师模型中生成具有代表性的图像,不需要任何其他操作。另一方面,第二个教师模型(即动态教师模型)与学生模型共同训练,只使用新任务中的样本。动态教师模型在提高学生模型对新任务的泛化能力的中起到辅助模式的作用。最后,学生模型可以在最小化遗忘率和提高泛化性能之间达到最佳平衡。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图示出的结构获得其他的附图。
图1为终身图像检索示意图。
图2为双重知识蒸馏(dkd)框架。
图3为cubbirds在可见数据集上的性能退化评价。
图4为cubbirds在不可见数据集上的性能退化评价。
图5为cub-birds生成具有代表性的图像。
图6为图像分类与图像检索的recall率/分类准确性比较。
图7为图像分类与图像检索在不同噪音比下的性能退化率。
图8在第一个任务(即在cub-birds数据集上)上评估第一个训练顺序的表现。
图9在第一个任务(即在cub-birds数据集上)上评估第二个训练顺序的表现。
具体实施方式
为了进行图像检索,本发明将数据集d分割为训练集
本发明使用三元组损失函数作为基本约束来训练模型以增量执行任务。流程图如图1所示。每个任务t都对应于整个数据集d的训练t(e.g.鸟)。在
为了将遗忘率最小化,同时提高泛化性能,本发明提出了一个双重知识蒸馏(dkd)框架,该框架包括两个教师模型和一个学生模型,如图2所示,其将固定教师模型的batchnorm层中存储的统计量用于生成具有代表性的图像,并由
在训练任务t之前,已经对一个教师进行了前一个任务(t−1)的训练,并确定了其参数。对学生模型进行新任务t的训练会导致负向迁移,这可能会降低前一个任务的性能。知识蒸馏通过使用固定教师模型
k(·)为内积,即
当学生模型学习任务t时,使用kl散度可以防止前面任务的性能下降。然而,当学生模型对具有较大语义漂移的数据(如图1中的cub-birds和stanford-cars)进行增量训练时,
假设固定教师模型包含l个卷积层,每个卷积层后面都有一个batchnorm层,如图2所示。每个batchnorm层l包括通道运行均值
