Similarity-Preserving Knowledge Distillation

Posted 爆米花好美啊

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Similarity-Preserving Knowledge Distillation相关的知识,希望对你有一定的参考价值。

Motivation

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

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

该loss被称为Similarity-preserving,这样student不用去mimic teacher的特征空间,而只用在自己的特征空间保持成对的相似度就好

横坐标:0-1000为1000个类别为0的图片,1000-2000为1000个类别为1的图片,同理以此类推

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

Method


Qs: (b, chw),Gs: (b, b),然后进行L2 norm

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

可以看到每个batch之间的相似度在student和teacher表现是一致的


Similarity-preserving Loss:

l,l’ 为对应的层,每个block的最后一层


传统的KD

优势:

  • 不用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的主要内容,如果未能解决你的问题,请参考以下文章

powershell 获取Enum类型的所有可能值。回答问题“当类型不是kno时,如何获得Enum类型变量的所有可能值

Nearest Common Ancestors

LCA最近公共祖先

Nearest Common Ancestors

SQL插叙语句

poj 1330(初探LCA)