知识蒸馏Knowledge Distillation

知识蒸馏是模型压缩的一个重要方法,本文简要介绍了什么是知识蒸馏。

知识蒸馏Knowledge Distillation

1.什么是知识蒸馏

我浅谈一些我的看法,详细内容可以参考这篇文章
[https://zhuanlan.zhihu.com/p/90049906]

简单来说,就是我们一般训练模型时,可能为了有一个好的效果,就会加大网络深度,或者用一些复杂的网络,这样参数量就会好大…那么这么一个模型怎么弄到移动端呢?怎么能使得运行速度实时呢?

所以人们提出搞模型压缩!

知识蒸馏就是一类模型压缩方法,先训练大模型,再去引导做一个小模型。

它是怎么干的呢?

大模型会训练出一系列的softmax概率值,这样,原来我们需要让新模型的softmax分布与真实标签匹配,现在只需要让新模型与原模型在给定输入下的softmax分布匹配了。直观来看,后者比前者具有这样一个优势:经过训练后的原模型,其softmax分布包含有一定的知识——真实标签只能告诉我们,某个图像样本是一辆宝马,不是一辆垃圾车,也不是一颗萝卜;而经过训练的softmax可能会告诉我们,它最可能是一辆宝马,不大可能是一辆垃圾车,但绝不可能是一颗萝卜。

随后怎么做,简单来说就是可以小模型的概率z要逼近原模型的v,直接用下面损失也可以
在这里插入图片描述

2.知识蒸馏怎么做
  • 第一步:在训练集上训练好一个大模型A(通常叫做teacher model)
  • 第二步:在transfer set(可以和训练集是同一个数据集)上利用大模型A产生给每一个样本生成一个soft target(有利用一个temperature参数对logits进行平滑)
  • 第三步:在transfer set上对student model B进行训练,损失函数由两部分组成,都是交叉熵损失,只不过一个是拟合soft target,另外一个是拟合ground truth的hard target(如二分类中的0和1),其中在拟合hard target的损失函数和普通分类损失保持一致,在拟合soft target的损失函数时也利用了一个同样的temperature参数T
  • 第四步:保留student model进行线上预测,这个时候去掉soft target那一路,只保留普通分类的softmax
    在这里插入图片描述

参考文献

[1]Distilling the Knowledge in a Neural Network论文笔记
https://zhuanlan.zhihu.com/p/74901192
[2]知识蒸馏是什么?一份入门随笔
https://zhuanlan.zhihu.com/p/90049906

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
知识蒸馏Knowledge Distillation)是一种将一个较大的模型的知识转移到一个较小的模型的技术。这种技术通常用于减小模型的大小和推理成本,同时保持模型在任务上的性能。 在Python中,你可以使用以下步骤来实现知识蒸馏: 1. 准备教师模型和学生模型:首先,你需要准备一个较大的教师模型和一个较小的学生模型。教师模型通常是一个预训练的大型模型,例如BERT或其他深度学习模型。学生模型是一个较小的模型,可以是一个浅层的神经网络或者是一个窄的版本的教师模型。 2. 训练教师模型:使用标注数据或其他训练数据集来训练教师模型。这个步骤可以使用常规的深度学习训练方法,例如反向传播和随机梯度下降。 3. 生成教师模型的软标签:使用教师模型对训练数据进行推理,并生成教师模型的软标签。软标签是对每个样本的预测概率分布,而不是传统的单一类别标签。 4. 训练学生模型:使用软标签作为学生模型的目标,使用训练数据集来训练学生模型。学生模型的结构和教师模型可以不同,但通常会尽量保持相似。 5. 进行知识蒸馏:在训练学生模型时,除了使用软标签作为目标,还可以使用教师模型的中间层表示或其他知识来辅助学生模型的训练。这可以通过添加额外的损失函数或使用特定的蒸馏算法来实现。 以上是实现知识蒸馏的一般步骤,具体实现细节可能因应用场景和模型而有所不同。你可以使用深度学习框架(如TensorFlow、PyTorch等)来实现这些步骤,并根据需要进行调整和扩展。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值