Relational Knowledge Distillation——知识蒸馏论文阅读

发布于:2022-11-09 ⋅ 阅读:(13) ⋅ 点赞:(0) ⋅ 评论:(0)

文章目录

一、Abstract

二、方法步骤

1.Introduction

2.Approach

1.距离上的蒸馏损失

 2.角度上的蒸馏损失

3.RKD训练

三、实验

四、总结


一、Abstract

1.知识蒸馏旨在将从一个模型(教师)中获得的知识转移到另一个模型(学生)中,这个模型通常更小。以前的方法可以表示为一种训练学生模仿教师所代表的个别数据示例的输出激活的形式。

2.我们引入了一种新的方法,称为关系知识蒸馏(RKD),它转移数据实例之间的相互关系。

3.对于RKD的具体实现,提出了距离和角度的蒸馏损失,惩罚结构差异的关系
在不同任务上进行的实验表明,该方法对受教育学生模型有显著的改进
特别是在度量学习方面,它允许学生超越老师的表现,在标准基准数据集上达到最先进的水平。

二、方法步骤

1.Introduction

工作的中心原则:构成知识的东西是通过所学表象的关系,而不是这些表象的个体更好地呈现出来的;一个单独的数据示例,例如一个图像,通过与表示系统中的其他数据示例的关系或对比获得意义,因此主要信息存在于数据嵌入空间中的结构中

在此基础上,我们引入了一种新的KD方法,称为关系知识蒸馏(RKD),它传递输出的结构关系,而不是单个输出本身(图1)

conventional KD:将单个输出从教师模型(fT)转移到学生模型(fS)点上

relational KD:将输出的关系转移到结构上

对于其具体实现,我们提出了两种RKD损失:距离方面的(二阶)和角度方面的(三阶)蒸馏损失

在度量学习、图像分类和少镜头学习的实验中,我们的方法显著提高了学生模型的性能。在三种不同任务上的大量实验表明,知识确实存在于这种关系中,RKD对知识的转移是有效的。

2.Approach

传统的KD (IKD)将教师的个别输出直接传递给学生,而RKD使用关系势函数ψ(·)提取关系信息,并将信息从教师传递给学生。 

RKD的目的是在教师的输出演示中,利用数据实例之间的相互关系传递结构化知识。与传统方法不同的是,它为每个n元组的数据示例计算一个关系势ψ,并通过势将信息从老师传递给学生

为简便起见,我们定义ti = fT (xi)和si = fS(xi)。RKD的目标表示为

 其中(x1, x2,…, xn)是从X N引出的N元组,ψ是一个关系势函数,度量给定N元组的关系能量,l是一个损失,惩罚了老师和学生之间的差异。RKD在使用的关系势函数方面训练学生模型与教师模型形成相同的关系结构。由于这种潜力,它能够传递高阶性质的知识,这对低阶性质是不变的,甚至不考虑教师和学生之间的输出维度差异。当关系是一元的(N = 1)且势函数ψ是恒等时,RKD可以被看作是IKD的一般化

RKD的有效性和效率取决于势函数的选择  

因而,提出了两个简单而有效的势函数和相应的RKD损失,分别利用了实例的成对和三元关系:距离损失和角度损失

1.距离上的蒸馏损失

通过惩罚输出表示空间之间的距离差来转移示例之间的关系,鼓励学生关注输出的距离结构

给出两个训练例子,距离势函数ψD测量两个例子在输出表示空间中的欧氏距离:

 

利用教师和学生测量的距离关系势,距离上的蒸馏损失定义为

 

 2.角度上的蒸馏损失

 给定一组例子,角度相关势测量三个例子在输出表示空间中形成的角度:

 利用教师和学生中测量的角度关系势,角度蒸馏损失被定义为

 由于角度是比距离更高阶的属性,因此它可以更有效地传递关系信息,为训练中的学生提供更大的灵活性。

3.RKD训练

在训练过程中,多个蒸馏损失函数,包括拟议的RKD损失,可以单独使用,也可以与任务特定的损失函数(如交叉熵)一起使用,用于分类。因此,整体目标有一种形式

 其中Ltask是当前任务的任务特定损失,LKD是知识蒸馏损失,λKD是平衡损失项的可调超参数。当训练中使用多个KD损失时,每个损失都用相应的平衡因子进行加权。

三、实验

我们在三个不同的任务上评估RKD:度量学习、分类和少镜头学习。在本节中,我们将具有距离方面损失的RKD称为RKD- d,具有角度方面损失的RKD称为RKD- a,具有两个损失的RKD称为RKD- da

四、总结

在不同的任务和基准上演示了所提出的RKD利用数据示例的相互关系有效地转移知识。特别是在度量学习方面,RKD使小个子的学生甚至能超过他们的大个老师。虽然在这项工作中使用的距离和角度蒸馏损失被证明是简单而有效的,但RKD框架允许我们在这两个实例之外探索各种具有高阶势的任务特定RKD损失。我们相信,RKD框架打开了一扇通向高效的高阶关系知识转移领域的大门。