Knowledge Distillation via Instance Relationship Graph
Authors: Yufan Liu, Jiajiong Cao, Bing Li, Chunfeng Yuan, Weiming Hua, Yangxi Lic and Yunqiang Duan
Motivation
这篇文章是基于传统KD的改进版,类似于同样发表在CVPR2019的 Relational Knowledge Distillation。主要想解决的问题是Knowledge Distillation(KD)中knowledge如何定义的问题,传统的做法仅仅使用logits作为知识,将学生和老师的对于单个sample的logits进行逼近(比如阿里AAAI2019的Rocket Launching)。但是知识不应该只局限于约束单个sample的相似性,而应该是考虑多个sample协同的相似性。因此本文提出了要约束学生和老师的Instance Relationship Graph(IRG),如下图所示。本文的图画得是真的高级!
IF and IRGMethod
本文主要定义了两种新的知识,一种是IRG,一种是IRG transformation(IRGt)。
IRG
直观的说,IRG就是将一个batch内的sample两两连接,建成,节点是sample的特征,边是两个sample特征的相似性(距离)。这样看公式就比较清楚:
这样做的好处在于:传统的知识只是针对单个sample,现在变成针对一个batch。因此作者在后面也提到batch size是一个很重要的参数,因为衡量了知识的粒度。
IRGt
IRGt代表的是更进一步的知识,即知识的变化。可以想象,信息流(一个向量)在同一个网络不同两层之间的流动也可以代表这个网络的学习情况。因此,作者进一步定义了IRG在层之间的变化:
用一句话总结IRG和IRGt就是:IRG把sample建成了图,是同一层里的知识;IRGt则衡量了IRG的层间变化。
LOSS
OK,定义好了知识,再定义两个网络之间知识的相似性度量就可以做KD了。
IRG Loss
IRG Loss (simplify).png
IRGt Loss
IRGt Loss (simplify).png
全部loss加起来
最后就是把上面提到的loss全加起来,叫做Multi Type Knowledge:
:用ground truth作为监督训练的Loss
:学生的最后一层的logits向老师的最后一层logits学习
:学生和老师的IRG的邻接矩阵逼近
:学生和老师的单sample的特征变化(不是特征)逼近
Experiment
实验就不详细搬运了,感兴趣的同学可以看看文章。
其中比较有意思的一点是MTK Loss的公式里面的值设为0.05比较好,说明这个IRG作为辅助作用比较好好。
网友评论