Paper :https://openaccess.thecvf.com/content_cvpr_2018/html/Zhang_Deep_Mutual_Learning_CVPR_2018_paper.html
Code :https://github.com/YingZhangDUT/Deep-Mutual-Learning
Abstract
模型蒸馏是一种有效的、广泛应用的将知识从教师转移到学生网络的技术。典型的应用程序是从一个强大的大型网络或集成转移到一个小型网络,以满足低内存或快速执行的需求。在本文中,我们提出了一种深度相互学习(DML)策略。不同于模型蒸馏中静态预定义的教师和学生之间的单向转移,使用DML,一群学生在整个培训过程中协作学习和教学。我们的实验表明,各种网络体系结构受益于相互学习,并在类别和实例识别任务上取得了引人注目的结果。令人惊讶的是,没有一个需要强大的教师网络——一个简单的学生网络的相互学习是有效的,而且优于一个更强大但静态的教师的蒸馏。
一、方法
第m类出现的概率:
其中,logitzm是Θ1中的“softmax”层的输出。对于多类分类,训练网络Θ1的目标函数定义为预测值与正确标签之间的交叉熵误差。
为了提高Θ1在测试实例上的泛化性能,我们使用另一个对等网络Θ2,以其后验概率p2的形式提供训练经验。为了量化两个网络的预测p1和p2的匹配,我们使用了 Kullback Leibler (KL) Divergence。
网络Θ1和Θ2的整体损失函数LΘ1和LΘ2分别为:
我们基于KL散度的模拟损失是不对称的,因此对于两种网络是不同的。我们可以使用一个对称的Jensen-Shannon Divergence loss: