知识蒸馏基础知识

参考笔记:

YOLOv5改进系列(二十五) 知识蒸馏理论与实践_yolov5知识蒸馏-CSDN博客

全网最细图解知识蒸馏(涉及知识点:知识蒸馏实现代码,知识蒸馏训练过程,推理过程,蒸馏温度,蒸馏损失函数)-CSDN博客

学习视频:【精读AI论文】知识蒸馏_哔哩哔哩_bilibili 


目录

1. 什么是知识蒸馏

2.轻量化网络的方式有哪些

3.为什么要知识蒸馏

4.知识蒸馏的理论依据

5.知识蒸馏分类

5.1 目标蒸馏-Logits方法

5.1.1 Hard-targets、Soft-targets

5.1.2 蒸馏温度T

5.1.3 蒸馏温度T的特点

5.2 特征蒸馏方法

6.知识蒸馏过程

7.图解知识蒸馏


 本文主讲的是目标蒸馏-Logits方法 

1. 什么是知识蒸馏

知识蒸馏

知识蒸馏就是把一个大的教师模型的知识萃取出来,把它浓缩到一个小的学生模型,可以理解为一个大的教师神经网络把他的知识教给小的学生网络,这里有一个知识的迁移过程,从教师网络迁移到了学生网络身上,教师网络一般比较臃肿,所以教师网络把知识教给学生网络,学生网络是一个比较小的网络,这样就可以用学生网络去做一些轻量化网络做的事情

2.轻量化网络的方式有哪些

(1)压缩已训练好的模型:知识蒸馏、权值量化、权重剪枝、通道剪枝、注意力迁移

(2)直接训练轻量化网络:SqueezeNet、MobileNetv1v2v3、MnasNet、ShuffleNet、EfficientNet、EfficientDet

(3)加速卷积运算:im2col + GEMM、Wiongrad、低秩分解

(4)硬件部署:TensorRT、Jetson、TensorFlow-lite、Openvino、FPGA集成电路

3.为什么要知识蒸馏

深度学习在计算机视觉、语音识别、自然语言处理等内的众多领域中均取得了令人难以置信的性能。但是,大多数模型在计算上过于昂贵,无法在移动端或嵌入式设备上运行。因此需要对模型进行压缩,这样小的模型就适用于部署在终端设备上了

Student Model 部署在终端设备上 

(1)提升模型精度

如果对目前的网络模型 A 的精度不是很满意,那么可以先训练一个更高精度的 teacher 模型 B(通常参数量更多,时延更大),然后用这个训练好的 teacher 模型 B 对 student 模型 A 进行知识蒸馏,得到一个更高精度的 A 模型。

(2)降低模型时延,压缩模型参数

如果对目前的网络模型 A 的时延不满意,可以先找到一个时延更低,参数量更小的模型 B ,通常来讲, B 模型精度也会比较低,然后通过训练一个更高精度的 teacher 模型 C 来对这个参数量小的模型 B 进行知识蒸馏,使得该模型 B 的精度接近最原始的模型 A,从而达到降低时延的目的。

(3)标签之间的域迁移

假如使用狗和猫的数据集训练了一个 teacher 模型 A ,使用香蕉和苹果训练了一个 teacher 模型 B ,那么就可以用这两个模型同时蒸馏出一个可以识别狗、猫、香蕉以及苹果的模型,将两个不同域的数据集进行集成和迁移

4.知识蒸馏的理论依据

知识蒸馏使用的是 Teacher—Student 模型,其中 Teacher 是“知识”的输出者, Student 是“知识”的接受者。知识蒸馏的过程分为 3 个阶段:

(1)Teacher 模型训练:简称为 Net-T ,它的特点是模型相对复杂,也可以由多个分别训练的模型集成而成。我们对 Teacher 模型不作任何关于模型架构、参数量、是否集成方面的限制,唯一的要求就是,对于输入 X , 其都能输出

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值