Self Distillation 自蒸馏论文解读

paper:Be Your Own Teacher: Improve the Performance of Convolutional Neural Networks via Self Distillation

official implementation: https://github.com/luanyunteng/pytorch-be-your-own-teacher

前言

知识蒸馏作为一种流行的压缩方法,通过让参数较少的学生模型学习参数量更大的教师模型的知识,可以有效提高学生模型的性能,甚至比教师模型更好,在实际应用中用学生模型替代教师模型从而实现压缩和加速的效果。

但是存在两个问题,一是知识传递的效率较低,学生模型很难学习到教师模型的所有知识,通过蒸馏后性能优于教师模型的情况仍是极少数。二是如何设计和训练合适的教师模型仍是一个难题,现有的蒸馏方法需要大量的实验来找到教师模型的最优架构,非常耗时。

本文的创新点

为了克服传统蒸馏的缺点,本文提出了一种新的自蒸馏架构。和传统蒸馏需要两个步骤即首先训练一个教师模型,然后将知识从教师模型蒸馏到学生模型的方法不同,本文提出的方法只需要一步,训练点直指学生模型,大大减少了训练时间(比如在CIFAR100上,从26.98个小时到5.87个小时,速度快了4.6倍),同时获得了更高的精度(比如ResNet50从传统蒸馏的79.33%的精度提升至81.04%)。

方法介绍

完整的架构如下图所示

以 ResNet50为例,根据深度将其分为四个部分,在每部分后接一个分类器,这个分类器由一个bottleneck、一个全连接层、一个softmax层构成,该分类器只在训练时使用,推理时可以去掉。bottleneck的作用是为了减轻每个浅层分类器之间的影响,并与hints(即特征图)之间计算L2损失。在训练阶段,每个浅层的分类器可以当做学生模型,深层的当做教师模型,从而实现知识的蒸馏。

训练过程中一共有三种损失:

  • 标签之间的交叉熵损失。不仅是最深层即原本模型最终的分类输出,每个浅层分类器的softmax输出也与标签计算CE损失,通过这种方式,隐含在数据集中的知识直接从标签引入到所有的分类器中。

  • KL散度损失。计算学生和教师softmax之间的散度损失。注意教师只有一个,即最深层的输出

  • 和hints之间的L2损失。通过计算最深层分类器和每个浅层分类器特征之间的L2损失,引入feature map中的implicit knowledge,使得每个浅层分类器的bottleneck中的特征图都去拟合最深层分类器bottleneck中的特征图。

完整的损失如下所示

其中 \(\lambda\) 和 \(\alpha\) 是平衡各项损失的权重超参,对于最深层分类器 \(\lambda\) 和 \(\alpha\) 都为0。

实验结果

Compared with Standard Training

在CIFAR100和ImageNet上的结果分别如表1、2所示,其中集成结果通过对各个分类器输出加权求和得到。

从结果可以看出

  1.  通过自蒸馏,所有网络的精度都得到了提升。CIFAR100上评价提升了2.65%,ImageNet上平均提升了2.0.%。
  2. 网络越深,性能提升越大。比如ResNet101提升了4.05%,ResNet18提升了2.58%。
  3. 一般来说集成结果在CIFAR100上提升较大,在ImageNet上提升较小,这可能是由于浅层分类器的精度损失较大。
  4. 分类器的深度在ImageNet中起着更重要的作用,这表明对于复杂任务网络的冗余较小。

Compared with Distillation

与其他蒸馏方法的对比如表3所示,可以看出本文提出的自蒸馏获得了最高的精度。同时如图1所示,因为不用通过实验选择合适的教师模型以及训练教师模型,整个训练时长也大大减小。

Compared with Deeply Supervised Net

深度监督网络和自蒸馏的最大区别是,自蒸馏不仅是用标签训练浅层分类器,还以深层分类器作为教师模型进行知识的蒸馏。结果对比如表4所示,可以看出,自蒸馏在每个分类器的结果都优于深度监督。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/189765.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

五种多目标优化算法(MOGWO、MOLPB、MOJS、NSGA3、MOPSO)求解微电网多目标优化调度(MATLAB代码)

一、多目标优化算法简介 (1)多目标灰狼优化算法MOGWO 多目标应用:基于多目标灰狼优化算法MOGWO求解微电网多目标优化调度(MATLAB代码)-CSDN博客 (2)多目标学习者行为优化算法MOLPB 多目标学习…

ps5ps4游戏室如何计时?计费系统怎么查看游戏时间以及收费如何管理

ps5ps4游戏室如何计时?计费系统怎么查看游戏时间以及收费如何管理 1、ps5ps4游戏室如何计时? 下图以佳易王计时计费软件V17.9为例说明 在开始计时的时候,只需点 开始计时按钮,那么开台时间和使用的时间长度项目显示在屏幕上&am…

如何判断一个题目用“贪心/动态规划“还是用“BFS/DFS”方法解决

1 总结 1.1 贪心、动态规划和BFS/DFS题解的关系 一般能使用贪心、动态规划解决一个问题时,使用BFS,DFS也能解决这个题,但是反之不能成立。 1.2 2 贪心 -> BFS/DFS 2.1 跳跃游戏1和3的异同 这两道题,“跳跃游戏”&#xf…

靡靡之音 天籁之声 ——Adobe Audition

上一期讲到了和Pr配合使用的字幕插件Arctime Pro的相关介绍。相信还记得的小伙伴应该记得我还提到过一个软件叫做Au。 当人们对字幕需求的逐渐满足,我们便开始追求更高层次的享受,当视觉享受在进步,听觉享受想必也不能被落下! Au即…

Flutter桌面应用开发之毛玻璃效果

目录 效果实现方案依赖库支持平台实现步骤注意事项话题扩展 毛玻璃效果:毛玻璃效果是一种模糊化的视觉效果,常用于图像处理和界面设计中。它可以通过在图像或界面元素上应用高斯模糊来实现。使用毛玻璃效果可以增加图像或界面元素的柔和感,同…

一、深入简出串口(USRT)通信——基本概念。

一、前言 串口到底是什么?简单来说一句话就可以解释,串口就是一种通信协议。 看到这里可能大家会觉得你这不是放屁么,说了跟没说一样。所以这里做前言来描述,大家要先对通信协议有一个下意识地认识才能在学习串口的时候不至于迷茫…

spring循环依赖

Bean的生命周期 这里不会对Bean的生命周期进行详细的描述,只描述一下大概的过程。 Bean的生命周期指的就是:在Spring中,Bean是如何生成的? 被Spring管理的对象叫做Bean。Bean的生成步骤如下: Spring扫描class得到Bean…

yolo系列中的一些评价指标说明

文章目录 一. 混淆矩阵二. 准确度(Accuracy)三. 精确度(Precision)四. 召回率(Recall)五. F1-score六. P-R曲线七. AP八. mAP九. mAP0.5十. mAP[0.5:0.95] 一. 混淆矩阵 TP (True positives):被正确地划分为正例的个数,即实际为正例且被分类器划分为正例…

计算机编程基础教程,中文编程工具下载,编程构件组合按钮

计算机编程基础教程,中文编程工具下载,编程构件组合按钮 给大家分享一款中文编程工具,零基础轻松学编程,不需英语基础,编程工具可下载。 这款工具不但可以连接部分硬件,而且可以开发大型的软件&#xff0c…

人力资源管理后台 === 登陆+主页灵鉴权

目录 1. 分析登录流程 2. Vuex中用户模块的实现 3.Vue-cli代理解决跨域 4.axios封装 5.环境区分 6. 登录联调 7.主页权限验证-鉴权 1. 分析登录流程 传统思路都是登录校验通过之后,直接调用接口,获取token之后,跳转到主页。 vue-elemen…

C++二分查找:统计点对的数目

本题其它解法 C双指针算法:统计点对的数目 本周推荐阅读 C二分算法:得到子序列的最少操作次数 本文涉及的基础知识点 二分查找算法合集 题目 给你一个无向图,无向图由整数 n ,表示图中节点的数目,和 edges 组成…

HTTP状态码:如何修复 404 Not Found错误?

互联网上各种类型的网站非常多,无论用户还是网站运营者不可避免的会遇到404 Not Found错误,如果遇到404错误,我们应该如何解决呢? 对于用户 检查拼写错误 如果您是遇到错误的用户,请仔细检查 URL 是否有任何拼写错误…

【Flutter 常见问题系列 第 1 篇】Text组件 文字的对齐、数字和字母对齐中文

TextStyle中设置height参数即可 对齐的效果 Text的高度 是根据 height 乘于 fontSize 进行计算的、这里指定heiht即可、不指定的会出现 无法对齐的情况,如下: 这种就是无法对齐的情况

决策树(第四周)

一、决策树基本原理 如下图所示,是一个用来辨别是否是猫的二分类器。输入值有三个(x1,x2,x3)(耳朵形状,脸形状,胡须),其中x1{尖的,圆的}&#xf…

R语言实现Lasso回归

一、Lasso回归 Lasso 回归(Least Absolute Shrinkage and Selection Operator Regression)是一种用于线性回归和特征选择的统计方法。它在回归问题中加入了L1正则化项,有助于解决多重共线性(多个特征高度相关)和特征选…

什么是轻量应用服务器?可以从亚马逊云科技的优势入手了解

什么是轻量应用服务器? 随着如今各行各业对云计算的需求越来越多,云服务器也被越来越多的企业所广泛采用。其中,轻量应用服务器是一种简单、高效、可靠的云计算服务,能够为开发人员、企业和个人提供轻量级的虚拟专用服务器&#x…

【深入剖析K8s】容器技术基础(一):从进程开始说起

容器其实是一种特殊的进程而已。 可执行镜像 为了能够让这些代码正常运行’我们往往还要给它提供数据’比如我们这个加法程序所需要的输人文件这些数据加上代码本身的二进制文件放在磁盘上’就是我们平常所说的一个程序,也叫代码的可执行镜像(executablejmage&…

PostgreSQL+patroni+etcd+haproxy+keepalived高可用

PostgreSQLpatronietcdhaproxykeepalived 高可用架构 部署环境 部署postgresql-15 一主二从: role主机组件主库 node203 192.168.56.203 pg15.5 Patroni、Etcd,haproxy、keepalived 从库 node204 192.168.56.204 pg15.5 Patroni、Etcd,ha…

机器人开发的选择

喷涂机器人 码垛机器人 纸箱码垛机器人 焊接机器人 跳舞机器人 管道清理机器人 工地巡检机器人 点餐机器人 化工巡检机器人 装箱机器人 安防巡检机器人 迎宾机器人好像有点像软银那个 污水管道检测机器人 大酒店用扫地机器人 家用扫地机器人 工厂用(…

免费不限字数的文本转语音AI配音工具,无需安装

上周给大家分享了AI绘本故事制作,很多小伙伴让我,推荐一款免费的AI配音,音色质量富有情感语调,而且手机上就能用的文本转语音工具。 OK,那么今天就给小伙伴们推荐一款我经常自用的AI配音工具,无需安装下载&…