模型压缩(下)—— 知识蒸馏(Distilling Knowle
Given an image of a
dog
, a good teacher network may mistakenly recognize it ascat
with small probability, but should seldom recognize it ascar
.
在论文中有写过这样一段话语,相对于狗和汽车来说,狗和猫的相似性更大,这里就潜藏着更多的信息。而这种相似性,会在probability中有所体现。而这部分信息一直在网络训练过程中没有被很好的利用,所以称之为 dark knowledge
。
猫和狗之间就要比猫和汽车之间更为相似,这在大型网络输出的概率值上是可以反映出来的。
the soft targets produced by teacher network is more informative and the learned loss can transfer the multi-modal knowledgeTeacher Network 在训练的时候是通过 0-1 编码来训练,其真实标签狗,猫,汽车[1, 0, 0],最后一层往往使用Softmax来产生概率分布,所以这个概率分布其实是一个比原来的 0-1 编码硬 label (hard target) 更软的软 label (soft target)。这个分布是由很多(0,1)之间的数值组成的。同一个样本,用在 Teacher Network 上产生的 soft target来训练一个 Student Network 时,因为并不是直接标注的 hard target,所以学习起来会更快收敛。
再次把知识蒸馏的流程图拿出来, softmax(T):
image.png在Student Network时,其损失函数是由两部分组成 :soft
和 hard
。
注意:studentNet模型在做预测时蒸馏温度要还原为1,也就是用原始概率分布做预测,因为再预测时希望正确标签与错误标签的概率差距尽量大,与蒸馏时的希望平缓区别开来。关于α , β ,Hinton的论文中对两个loss用了加权平均:β = 1 - α。他们实验发现,在普通情况下 α 相对于 β 非常小的情况下能得到最好的效果。
运用这种思维,除了在网络模型压缩上,其中在网络的相互学习以及对抗神经网络上都有着相似的理论基础。