Similarity-Preserving Knowledge Distillation

Motivation

下图可以发现,语义相似的输入会产生相似的**。这个非常好理解,这个C维的特征向量可以代表该输入的信息

因此本文根据该观察提出了一个新的蒸馏loss,即一对输入送到teacher中产生的特征向量很相似,那么送到student中产生的特征向量也应该很相似,反义不相似的话同样在student也应该不相似。

该loss被称为Similarity-preserving,这样student不用去mimic teacher的特征空间,而只用在自己的特征空间保持成对的相似度就好
Similarity-Preserving Knowledge Distillation
横坐标:0-1000为1000个类别为0的图片,1000-2000为1000个类别为1的图片,同理以此类推

纵坐标:WideResNet-16-2在CIFAR10test集上最后一个卷积层在channel上平均**,WHC → C维向量(图中是采样了部分通道)

Method

Similarity-Preserving Knowledge Distillation
Qs: (b, chw),Gs: (b, b),然后进行L2 norm

以下为4个batch的可视化,每个batch包含128个样本

可以看到每个batch之间的相似度在student和teacher表现是一致的
Similarity-Preserving Knowledge Distillation
Similarity-Preserving Knowledge Distillation
Similarity-preserving Loss:

l,l’ 为对应的层,每个block的最后一层
Similarity-Preserving Knowledge Distillation
Similarity-Preserving Knowledge Distillation
传统的KD
Similarity-Preserving Knowledge Distillation
优势:

  • 不用mimic teacher的特征空间,当teacher训练的资源已不可获取时,这时只用模仿teacher在目标域样本之间预测的相似度

扩展应用:
和pretrain finetuning联系起来做Transfer learning

  • 用已有的模型做pretrain
  • 然后finetuning时用CE 和 SP loss

semisupervised

  • 有label的地方用CE
  • 无label的地方用SP

Experiments

Win:loss,和AT的胜负比
Similarity-Preserving Knowledge Distillation
Similarity-Preserving Knowledge Distillation