Knowledge Distillation by On-the-Fly Native Ensemble论文解读

1. 网络结构:

Knowledge Distillation by On-the-Fly Native Ensemble论文解读_第1张图片

       Gate为全连接网络,用来学习哪个网络更重要。目前利用全连接网络选择网络部件重要性的方法很流行。“三个臭皮匠顶个诸葛亮?”,感觉很像bagging方法。

2. 损失函数:

Knowledge Distillation by On-the-Fly Native Ensemble论文解读_第2张图片

 

训练时softmax都有温度T=3蒸馏,测试时就恢复T=1。

Knowledge Distillation by On-the-Fly Native Ensemble论文解读_第3张图片

 

最终的Loss

 

第一项代表各个分支的损失,第二项代表最后Teacher的损失,第三项代表各分支和Teacher的KL散度。

 

3. 测试情况

我的测试结果:

测试数据集:cifar100

测试条件:网络的最后一个block开始如图1的分支结构(分三个branch:m=2)

ResNet32_ori              top1 bestacc: 70.69

ResNet32_ONE           top1 bestacc: 73.47

ResNet32_ONE_E     top1 bestacc: 75.45

 

ResNet110_ori            top1 bestacc: 75.38

ResNet110_ONE         top1 bestacc: 78.79

ResNet110_ONE_E         top1 bestacc: 79.77

note:      _ori代表原网络;_ONE代表测试时删除分支结构;_ONE_E代表测试时保留分支结构。

作者的测试结果:

Knowledge Distillation by On-the-Fly Native Ensemble论文解读_第4张图片

      在cifar100上精确度的提升还是比较大的。Ensemble效果(_E)比_ONE在小网络上的提升较大,而在大网络上的提升较小,这一点跟作者的测试结论相同。Res32_ONE_E的精确度达到ResNet110_ori的精确度还要好一点。

Knowledge Distillation by On-the-Fly Native Ensemble论文解读_第5张图片

作者在imagenet数据集上的测试结果:

在imagenet数据集上采用最后两个block开始分支,看效果有提升,但不如在cifar100数据集上的提升大,同时上面的数据也说明在新型网络上是有效的。

不同的数据集的测试效果差别还挺大,将来对于不同的分类网络提升情况有待验证。

你可能感兴趣的:(网络蒸馏)