轻量化网络学习 5 知识蒸馏网络

文章目录

归纳

提出一种知识蒸馏的方法,将大模型的知识进行蒸馏得到相当精度的小模型,即利用大模型(集成模型)生成的类别概率soft targets,待压缩的模型自身的类别作为hard targets,二者结合共同训练待压缩模型。并引入温度参数T,将小模型自身学到的和向大模型学到的进行加权。解决训练和移动端的矛盾。

论文

集成模型引出来知识蒸馏
蒸馏模型的开山之作

动机:
1单个模型的性能是比较弱的,因此使用集成学习。集成学习的训练和应用的矛盾
2有把集成模型压缩的工作,该工作将使用大模型所学到的知识信息对小模型进行训练,并且精度也不变

boosting:
在这里插入图片描述
可否用在负样本上??让非零即一的部分变成0-1之间

集成模型的弊端:
在这里插入图片描述

知识:学习如何从属于向量映射到输出向量。可以理解为原训练过程中忽略的信息,也可以说是和目标相似的信息

CNN的预测过程:在这里插入图片描述

logits
它是全连接输出、softmax的输入

蒸馏:
在这里插入图片描述

温度参数T:
1引入温度参数T,缓和特征差距。放大非正确预测类别的信息
2并且无论T如何取值,soft targets都具有忽略小的logits所携带信息的倾向,因此仍然保持相对大小,只是进行缓和他们之间的差距
在这里插入图片描述
在这里插入图片描述

蒸馏过程:在这里插入图片描述

损失函数
在这里插入图片描述在这里插入图片描述
之所以还需要学生损失,是因为教师网络也可能出错

文中的细节
在这里插入图片描述
当所有或部分转移集都知道正确的标签时,通过训练提取的模型来生成正确的标签,可以显著地改进这种方法。一种方法是使用正确的标签来修改软目标,但是我们发现更好的方法是简单地使用两个不同目的函数的加权平均值。第一个目标函数是与软目标的交叉熵,该交叉熵是用与从繁琐的模型生成软目标相同的高温在蒸馏模型的sofumax中计算的。第二个目标函数是具有正确标签的交叉熵。这是使用蒸馏模型的softmax中完全相同的logits计算出来的,但温度是1。我们发现,对第二个目标函数使用适当的较低权值通常可以获得最佳结果。由于软目标产生的梯度大小为1/T2,因此在使用硬目标和软目标时,将其乘以T2是很重要的。这确保了在使用温度的情况下,硬目标和软目标的相对贡献大致保持不变。在对元参数进行实验时,蒸馏过程发生了变化。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值