Training Shallow and Thin Networks for Acceleration via KD with Conditional Adversarial Networks

论文地址:https://arxiv.org/abs/1709.00513

 

这是2017年的一篇文章。在本文之前的监督学习的方法一般是通过最小化确定的损失函数来拟合学生和老师,本文通过cGANs来学习适合的loss,更好的进行知识的迁移。其训练过程如下:

Training Shallow and Thin Networks for Acceleration via KD with Conditional Adversarial Networks_第1张图片

Discriminator的更新过程如下:

但Discriminator只使用学生和老师的标签作为loss函数的输入会让训练不稳定且缓慢,为了解决这个问题,作者将Teacher和Student的输出的概率分布的vector同时作为loss函数的输入,需要注意这里用的是未加负号的Binary Cross-entropy,所以训练中对(5)式是最大化:

Training Shallow and Thin Networks for Acceleration via KD with Conditional Adversarial Networks_第2张图片

 

学生网络更新如下:

Training Shallow and Thin Networks for Acceleration via KD with Conditional Adversarial Networks_第3张图片

(7)式中的等式中的负号是为了保留类级知识。

 

实验结果:

Training Shallow and Thin Networks for Acceleration via KD with Conditional Adversarial Networks_第4张图片

Training Shallow and Thin Networks for Acceleration via KD with Conditional Adversarial Networks_第5张图片

可以看到本文的方法错误率少于KD,且压缩了七倍的内存,五倍的运行速度,且预测分布和教师很像。

缺点:精度损失有点大,只使用的教师和学生的输出结果来进行拟合。改进方式可以从让教师网络的某些层加入到对学生网络的监督中来。

你可能感兴趣的:(模型压缩,模型压缩,神经网络,深度学习,对抗网络,知识蒸馏)