知识蒸馏的简要概述

简介: 知识蒸馏是一种在繁琐的模型中提炼知识并将其压缩为单个模型的方法,以便可以将其部署到实际应用中。AI的教父Geoffrey Hinton和他在Google的两个同事Oriol Vinyals和Jeff Dean于2015年引入了知识蒸馏。

知识蒸馏是一种在繁琐的模型中提炼知识并将其压缩为单个模型的方法,以便可以将其部署到实际应用中。AI的教父Geoffrey Hinton和他在Google的两个同事Oriol Vinyals和Jeff Dean于2015年引入了知识蒸馏。

8490a697579cff25f6db7ab0314e441f.jpg

知识蒸馏是指将笨拙的模型(教师)的学习行为转移到较小的模型(学生),其中,教师产生的输出被用作训练学生的“软目标”。通过应用此方法,作者发现他们在MNIST数据集上取得了令人惊讶的结果,并表明通过将模型集成中的知识提取到单个模型中可以获得显着的改进。


知识蒸馏用于图像分类

 

Hinton和他的两位合著者在论文中首先介绍了他们对图像分类任务的知识蒸馏:在神经网络中提炼知识。


如本文所述,知识蒸馏的最简单形式是在具有软目标分布的传递集上训练蒸馏模型。到目前为止,我们应该知道有两个目标用于训练学生模型。一个是正确的标签(硬目标),另一个是从教师网络生成的软标签(软目标)。

欢迎关注公众号CV技术指南,专注于计算机视觉的技术总结、最新技术跟踪、经典论文解读

因此,目标函数是两个不同目标函数的加权平均值。 第一个目标函数是学生预测和软目标之间的交叉熵损失,第二个目标函数是学生输出和正确标签之间的交叉熵损失。 作者还提到,最好的结果通常是通过在第二目标函数上使用较低的权重来获得的。

 

实验结果如下所示

276ef308fe487e11b9917e20099ffcb2.png

496bfba5e05ac858f52f900b647f08a8.png

知识蒸馏用于目标检测

 

Guobin Chen和他的合著者在NeurIPS 2017中发表了他们的知识蒸馏与提示学习相结合的对象检测研究,该论文通过知识蒸馏学习有效的对象检测模型。


在他们的方法中,他们还使用提示,该提示是从教师的中间层获得的特征图,用于指导学生尽可能地了解教师的行为。 此外,为了实现最佳的蒸馏知识,必须有一个适应层,该适应层将在后面讨论。 Faster-RCNN是本文实验中使用的目标检测网络。他们的学习方案如下图所示:

00f2931a86659754932fd53835df8761.png

目标函数如下:

9f6f6336ef0851d573c82304fb684d82.png

9f6f6336ef0851d573c82304fb684d82.png

其中RCN和RPN分别代表回归分类网络和区域提议网络;N和M分别是RCN和RPN的批量大小;L_RCN,L_RPN和L_Hint分别是RCN,RPN和提示的损失;λ(通常为1)和γ(通常设置为0.5)是用于控制最终损耗的超参数。

 

Hint learning

 

Adriana Romero在《FitNets: Hints for Thin Deep Nets》一文中证明,通过利用教师网络的中间表示作为提示来帮助学生进行训练,可以提高学生网络的性能。从这个意义上讲,提示特征Z(从教师的中间层获得的特征图)和引导特征V(学生的中间层的特征图)之间的损失是使用L1或L2距离计算的。


下图显示了从在WAYMO数据集上训练的预训练YOLOv4模型中提取的特征图,这是我的与知识蒸馏进行目标检测有关的项目之一。 在这些示例中,输入图像的大小调整为800x800。

1b19f14a9ccf6185454e1cf381ef9e13.png


知识蒸馏和提示学习

 

Hint learning的使用要求提示功能和引导功能应具有相同的形状(高度x宽度x通道)。同样,提示特征和引导特征将永远不会在相似的特征空间中,因此,使用自适应层(通常是1x1卷积层)来帮助改善知识从教师到学生的转移。

 

0ffd2ea491fe9f02a32bf54c20c94270.png


 下图描述了我在目标检测项目中正在研究的学习方案,其中,我正在使用一个具有三个检测级别的小型网络,从预先训练的YOLOv4中提取知识。

1d02edb7eb675eaa87dd42879b570408.png

Guobin Chen在将知识蒸馏与Hint learning相结合进行目标检测时显示出优异的结果。

243579becad2f1998996b3847857c313.png

Conclusion

 

在这篇文章中,我简要介绍了知识蒸馏和Hint learning。知识蒸馏被认为是一种将繁琐的模型集成知识转换成较小的蒸馏模型的有效方法。Hint learning和知识蒸馏的结合是提高神经网络性能的一种非常强大的方案。

相关文章
|
8月前
|
机器学习/深度学习 算法 Python
LightGBM高级教程:深度集成与迁移学习
LightGBM高级教程:深度集成与迁移学习【2月更文挑战第6天】
367 4
|
机器学习/深度学习 计算机视觉 知识图谱
YoloV8最新改进手册——高阶篇
本专栏是讲解如何改进Yolov8的专栏。改进方法采用了最新的论文提到的方法。改进的方法包括:增加注意力机制、更换卷积、更换block、更换backbone、更换head、更换优化器等;每篇文章提供了一种到N种改进方法。 评测用的数据集是我自己标注的数据集,里面包含32种飞机。每种改进方法我都做了测评,并与官方的模型做对比。 代码和PDF版本的文章,我在验证无误后会上传到百度网盘中,方便大家下载使用。 这个专栏,求质不求量,争取尽心尽力打造精品专栏!!! 专栏链接: ''' https://blog.csdn.net/m0_47867638/category_12295903
2021 0
|
存储 弹性计算 NoSQL
libcuckoo论文概述
本文简要阐述libcuckoo项目的两篇论文基础。如有错漏之处,欢迎指出一起讨论交流。 ## 论文1 《MemC3: Compact and Concurrent MemCache with Dumber Caching and Smarter Hashing》 这篇论文主要讲了在多线程模式下如何提升cuckoo hash table的吞吐。 ### 问题 传统hash表在并发效率上并不
1865 0
libcuckoo论文概述
|
3月前
|
机器学习/深度学习 分布式计算 安全
联邦学习的简要概述
联邦学习(Federated Learning, FL)是一种分布式机器学习方法,旨在保护数据隐私的同时,利用多方数据进行模型训练。
199 5
|
4月前
|
机器学习/深度学习 数据可视化 算法
经典时间序列分析概述:技术、应用和模型
时间序列数据按时间顺序收集,具有时间维度的重要性,需专门技术和模型进行分析预测。其应用广泛,涵盖经济预测、风险管理、天气预报、气候建模、流行病学、患者监测、需求预测、客户行为分析及预测性维护等领域。时间序列特征包括趋势、季节性和周期性模式。自相关和偏自相关用于衡量数据点间关系,白噪声表示无自相关的时间序列。平稳性指统计特性随时间保持一致,对建模至关重要。常见模型包括ARMA、ARIMA、SARIMA、ARCH和GARCH,用于捕捉复杂动态并预测未来模式。选择合适模型和确定顺序对准确预测至关重要。掌握这些基础知识不仅增强对复杂模型的理解,还能确保预测方法的稳健性和可靠性。
152 1
经典时间序列分析概述:技术、应用和模型
|
3月前
|
编解码 算法 测试技术
Imagen论文简要解析
Imagen论文简要解析
55 0
|
3月前
|
机器学习/深度学习 人工智能 算法
强化学习概述与基础
强化学习概述与基础
66 0
|
8月前
|
机器学习/深度学习 算法 计算机视觉
目标检测的基本概念有哪些
目标检测的基本概念有哪些
|
机器学习/深度学习 编解码 自然语言处理
|
机器学习/深度学习 数据库 计算机视觉
图像分类基础与实战
图像分类基础与实战(1)

热门文章

最新文章