一个知识蒸馏的简单介绍,一看就懂

点击上方“AI公园”,关注公众号,选择加“星标“或“置顶”


作者:Prakhar Ganesh

编译:ronghuaiyang

导读

对教师学生网络进行一个初步的了解。

什么是知识蒸馏?

近年来,神经模型在几乎所有领域都取得了成功,包括极端复杂的问题。然而,这些模型体积巨大,有数百万(甚至数十亿)个参数,因此不能部署在边缘设备上。

知识蒸馏指的是模型压缩的思想,通过一步一步地使用一个较大的已经训练好的网络去教导一个较小的网络确切地去做什么。“软标签”指的是大网络在每一层卷积后输出的feature map。然后,通过尝试复制大网络在每一层的输出(不仅仅是最终的损失),小网络被训练以学习大网络的准确行为。

我们为什么需要这样做?

深度学习在计算机视觉、语音识别、自然语言处理等众多领域取得了令人难以置信的成绩。然而,这些模型中的大多数在移动电话或嵌入式设备上运行的计算成本太过昂贵。要了解更多关于模型压缩的需求和涉及的常见技术,请访问下面的博客:https://towardsdatascience.com/machine-learning-models-compression-and-quantization-simplified-a302ddf326f2。

这样和从头训练一个模型有什么不一样?

显然,模型越复杂,理论搜索空间越大。但是,如果我们假设较小的网络也能实现相同(甚至相似)的收敛,那么教师网络的收敛空间应该与学生网络的解空间重叠。

不幸的是,仅凭这一点并不能保证学生网络收敛在同一点。学生网络的收敛点可能与教师网络有很大的不同。但是,如果引导学生网络复制教师网络的行为(教师网络已经在更大的解空间中进行了搜索),则其预期收敛空间会与原有的教师网络收敛空间重叠。

教师学生网络 — 到底如何工作?

  1. 训练教师网络:首先使用完整数据集分别对高度复杂的教师网络进行训练。这个步骤需要高计算性能,因此只能在离线(在高性能gpu上)完成。

一个高度复杂和深度的网络可以用作教师网络的例子:GoogleNet
  1. 构建对应关系:在设计学生网络时,需要建立学生网络的中间输出与教师网络的对应关系。这种对应关系可以直接将教师网络中某一层的输出信息传递给学生网络,或者在传递给学生网络之前进行一些数据增强。

构建对应关系的例子
  1. 通过教师网络前向传播:教师网络前向传播数据以获得所有中间输出,然后对其应用数据增强(如果有的话)。

  2. 通过学生网络反向传播:现在利用教师网络的输出和学生网络中反向传播误差的对应关系,使学生网络能够学会复制教师网络的行为。

下一步工作?

对于上述传统的学生教师,有很多新的修改建议,比如引入多名教师(即将集成网络转换为单一网络),引入助教(教师先教助教,助教再教学生)等。然而,该领域还很年轻,在许多维度上还未被探索。

—END—

英文原文:https://towardsdatascience.com/knowledge-distillation-simplified-dd4973dbc764

请长按或扫描二维码关注本公众号

喜欢的话,请给我个好看吧

知识蒸馏是一种通过训练一个大型的、复杂的神经网络来提高小型、简单神经网络性能的技术。以下是构建一个简单知识蒸馏模型的步骤: 1. 确定基础模型:选择一个简单的神经网络作为基础模型,该模型将被用于学习和预测目标任务。 2. 确定源模型:选择一个大型的、复杂的神经网络作为源模型,该模型将被用于提供知识和指导基础模型的学习。 3. 准备数据集:准备用于训练和测试模型的数据集,包括输入和输出。 4. 训练源模型:使用数据集训练源模型,直到其收敛并达到一个可以接受的性能水平。 5. 提取源模型的知识:使用源模型为基础模型提供知识的一种方法是提取源模型的中间层表示,这些中间层表示可以被认为是源模型的“知识”。 6. 训练基础模型:使用提取的中间层表示作为输入,使用目标任务的标签作为输出,使用数据集训练基础模型。 7. 比较基础模型和源模型:使用测试集评估基础模型和源模型的性能,并比较两者之间的性能差异。 8. 调整超参数:根据比较结果和基础模型的性能,调整超参数以提高基础模型的性能。 9. 部署基础模型:将基础模型用于实际应用程序中。 需要注意的是,以上步骤仅提供了构建知识蒸馏模型的基本框架,具体的实现细节和步骤可能会因不同的任务和数据集而有所变化。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值