赞
踩
目录
版权声明:本文为CSDN博主「_Old_Summer」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/Talantfuck/article/details/124545869
知识蒸馏也是一种模型压缩方法,知识蒸馏通过蒸馏的手段保护原模型中学习到的知识,然后将这些知识迁移到压缩模型中,使压缩模型虽然相比原模型体积要小的多,但是也可以学习到相同的知识。
知识蒸馏指的是模型压缩的思想,通过使用一个较大的已经训练好的网络去教导一个较小的网络确切地去做什么。
在知识蒸馏中称要进行压缩的模型为教师神经网络(Teacher Model),压缩之后的模型为学生神经网络(Student Model),一般情况下,教师神经网络的体积要远大于学生神经网络。
一般的知识蒸馏过程为
1. 首先利用数据集训练教师神经网络,让教师神经网络充分学习数据中包含的知识
2. 然后在利用数据集训练学生神经网络时,通过蒸馏方法将教师神经网络中已经学习到的知识提取出来,指导学生神经网络的训练,这样学生神经网络相当于从教师神经网络那里获取到了关于数据集的先验信息。
也就是在知识蒸馏中,教师神经网络是预先在数据集上进行过训练的,然后在学生神经网络的训练过程中利用自身学习到的知识对其进行指导,帮助提高学生神经网络的准确率。
使用知识蒸馏要解决的关键问题是
1. 如何发掘教师神经网络中包含的知识
2. 如何将教师神经网络中的知识通过蒸馏无损的迁移到学生神经网络中,也就是蒸馏方法的设计
3. 如何设计学生神经网络的结构
3.1 模型结构的种类
深度学习中虽然模型众多,但是其结构可以归为四种
前馈神经网络:也叫多层感知机,MLP,前馈神经网络由 线性变换+非线性激活 组成,通过线性变换将输入空间中的数据变换到特征空间,利用非线性激活函数无限逼近真实的判别函数。
卷积神经网络:CNN,卷积神经网络是连接受限的前馈神经网络,适合处理具有局部相关性的数据,比如图像
循环神经网络:RNN,循环神经网络会携带网络处理过程中产生的历史信息进行接下来的处理,适合处理那些具有时序性特征的数据
Transformer:带有注意力机制的前馈神经网络,利用注意力机制获取数据中的关键信息,可以利用有限的计算资源处理更重要的信息。
综上,多种网络结构其实可以统一看成前馈神经网络。
在知识蒸馏中,将教师神经网络中的知识分为三种
1. 输出层知识:图中的Response-based Knowledge,是教师神经网络最后一层的输出,这个输出未经过Softmax层转换为概率,一般称为Logits,关于Logits的具体介绍可见Logits
2. 中间层知识:图中的Feature-Based Knowledge,指的是教师神经网络中间网络层的输出、包含的参数
3. 关系型知识:图中的Relation-Based Knowledge,将教师神经网络不同层知识之间的关系作为一种知识,也叫结构型知识。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。