之前都是对knowledge重新定义,衍生出的knowledge distillation的变体模型。
本篇博客开始,介绍知识蒸馏的第二类方法:改变学习方式,提高student perfomance。
Deep Mutual Learning CVPR2018
概述
本文核心idea是,没有teacher,一系列student之间相互学习。
本质也是学习了另一个网络的输出,但是学习方式遍了,因而我把它归到第二类论文
motivation:
至于why work?
这种学习方式更稳定,更容易收敛:
以及这个分析还不错(似乎也是翻译的论文)
Method
Model
具体方法很简单,定义了两个网络。除了使用GT对各自进行监督,还引入了一个额外的loss,引导他们进行相互间的学习。
这个额外的loss,利用相对熵,即KL散度来定义:
这种额外的loss对于两个网络来说是不一样的,非对称的。也可以用下面这个对称的loss替代,而且效果几乎无差别:
Optimisation
作者的训练步骤
两个模型一起训练,且互相学习直到收敛。不会像传统的distillation,student学习一个已经训练好的teacher,还只是用来初始化参数!!
Experiments
两个students也是一个大网络,一个小网络。其相互学习的效果比,比teacher-student的模式要好: