知识蒸馏原理

news2024/11/23 6:50:40

文章目录

    • 0.知识蒸馏(模型压缩的一种方法)
    • 1.蒸馏
    • 2.为什么要蒸馏
    • 3.知识的表示与迁移
    • 4.蒸馏温度T
    • 5.知识蒸馏过程
    • 6.知识蒸馏的应用场景
    • 7.知识蒸馏背后的机理
    • 8.为什么用soft targets 而不用 label smoothing?
    • 9.知识蒸馏的研究方向
    • 10.知识蒸馏代码库
    • 11.扩展阅读整理

0.知识蒸馏(模型压缩的一种方法)

将一个参数多的大模型蒸馏成参数少的小模型,预测结果相同。

1.蒸馏

在这里插入图片描述
去掉杂质,变成蒸馏水(更纯净)

2.为什么要蒸馏

在这里插入图片描述
老师网络大,将老师的知识迁移到学生(蒸馏),学生的网络结构小

在这里插入图片描述知识蒸馏在神经网络中的图示

在这里插入图片描述
终端设备算力有限,教师网络结构太大,所以将学生模型部署到设备

在这里插入图片描述
大模型的参数变化近年

在这里插入图片描述
轻量化网络的方法分类

3.知识的表示与迁移

在这里插入图片描述

在这里插入图片描述
输入马的图片,输出的类别
在这里插入图片描述
硬标签:缺点是得出驴和汽车的概率均为0,这是不科学的
软标签:给出了三个类别的概率,马和驴的概率较高,说明两者相似度高,马和汽车概率差异大,说明两者相似度低。
通过硬标签对教师网络进行训练,得出软标签,然后用软标签训练学生网络,就可以得到更多的信息。

在这里插入图片描述
手写数字的例子
在这里插入图片描述
硬标签会将它有多像谁、多不像谁的信息给丢掉了,而软标签保留了这些信息。
在这里插入图片描述

4.蒸馏温度T

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
T越高,越柔和

在这里插入图片描述
知识蒸馏的计算实例

5.知识蒸馏过程

在这里插入图片描述
在这里插入图片描述
教师网络是已经训练好的网络,学生网络是还没训练的网络(只进行了初始化)
distillaton loss :就是老师教学生马和驴之间有什么区别,马和汽车之间有什么区别,驴和汽车之间有什么区别。
student loss:相当于直接看答案,不告诉你类别之间的区别。

在这里插入图片描述

在这里插入图片描述
蒸馏好的学生模型在预测时不需要温度,即令T=1

6.知识蒸馏的应用场景

在这里插入图片描述
少样本、零样本:即使你没有见过“3”,但老师会告诉你什么是“3”
无限大、无监督数据集:将这些数据交给教师网络,教师网络得出结果,然后教师会交学生如何得出相应的结果。
迁移学习:将预测CT图像的模型,应用到预测动物图像。
知识蒸馏:将一个大型模型的知识迁移到一个小型模型上。

7.知识蒸馏背后的机理

在这里插入图片描述
在这里插入图片描述
见解1:
教师网络的求解空间是绿色框,学生求解空间是蓝色框
教师网络训练的结果收敛到红色框
没有经过蒸馏的学生网络训练的结果收敛到黄色框
经过蒸馏的学生网络,会在教师网络的引导下训练结果收敛到橙色框

在这里插入图片描述
见解2:大模型包含的知识(特征)比较冗余,知识蒸馏就是将有用的知识(特征)进行迁移、泛化,最后小模型的预测结果和大模型非常相似。

8.为什么用soft targets 而不用 label smoothing?

在这里插入图片描述

在这里插入图片描述
lael smoothing :除了最高概率,其余均赋值一个常数,这样就丢失了相似性的信息

在这里插入图片描述
label smoothing 例子

9.知识蒸馏的研究方向

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
多个教师一个学生

在这里插入图片描述
多模态:图像数据、语音数据等混合类型的数据组成

在这里插入图片描述
分类:
基于输出的知识蒸馏
基于响应(特征)的知识蒸馏
基于关系的知识蒸馏(不同层之间的关系)

在这里插入图片描述
三种分类的图示

在这里插入图片描述
基于关系的知识蒸馏图示:
学生的第一层学习老师的第二层
学生的第二层学习老师的第五层

在这里插入图片描述
离线蒸馏、在线蒸馏、自蒸馏等范式

10.知识蒸馏代码库

在这里插入图片描述

在这里插入图片描述

11.扩展阅读整理

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

回顾2022,展望2023,笔耕不辍,钟情翰墨

目录 回顾2022 博客概览 博客成就 获得测试领域优质创作者认证 获得博客专家认证 获得额外收入 创建第一个属于自己的个人社区 获得第一个实体奖牌【博客专家】 首次登榜梦想照进现实CSDN实体奖牌榜 首次参与社区新锐和社区先锋评选 开启了6个知识体系系列教程 个人…

2023春招面试:消息中间件面试题整理

RabbitMQ如何确保消息发送 ? 消息接收? 开启生产者确认机制,确保生产者的消息能到达队列(config机制保证消息正确到达交换机、return机制保证消息正确到达队列)开启持久化功能,确保消息未消费前在队列中不会…

如何通过WindowsIIS部署网站

1.winR输入control 打开【控制面板】 2.选择程序 3.选择【启用或关闭Windows功能】 4.在【Windows功能】对话框中勾选【Internet Information Services】下的【FTP服务器】、【Web管理工具】和【万维网服务】中的所有选项,并点击【确定】 5.Windows功能会开始下载并…

Lambda表达式的来龙去脉,全在这篇文章里了

一. 前言部分 大家都知道Lambda表达式作为JAVA 8中提供的新特性之一,在现在的企业开发中已经非常的流行了。今天壹哥就通过一个具体的案例,来带大家一起详细地探究一下Lambda表达式是如何被提出来的,以及它的出现主要是用来解决什么问题的。…

乌班图(Ubuntu)单系统或者乌班图+Win双系统安装教程

单ubuntu系统安装 1、将ubuntu系统U盘插入电脑USB接口,建议优先插USB3.0蓝色(彩色)接口,这样可以保证安装过程中文件的读取速度,加快安装进程。 2、然后电脑关机状态下,开机。开机后快速按主机的快捷启动键: 3、在出现…

Qt编写雷达模拟仿真工具1-背景布局

一、前言 雷达模拟仿真工具,整体结构采用的QGraphicsView框架,背景布局采用的分层绘制,这样可以控制该需要重新绘制的重新绘制,不需要重新的绘制的就没必要再多余的浪费,这里定义了一个GraphicsBackGroundItem类继承自…

Spring框架(容器)--简介(实现原理、核心模块、组成部分)

spring框架(容器) spring简介 1、Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。 2、Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。 3、轻量——从大小…

Creo9.0 Windows 3D建模工具

前言 creo9.0正式版是一款非常优秀的3D建模设计软件。该软件界面美观,提供了CAD 技术、模制造绘图、多实体建模、多体设计、实时仿真、框架和焊缝设计等一系列强大的辅助设计功能,通过这些功能,让用户轻松解决设计中带来的各种问题。 下载 …

律所管理系统的功能以及作用分别有哪些?

在全球进入信息化的时代,随着网络的普及与发展,网络所带来的信息交流与利用的优势愈发明显。尤其是随着法律制度的不断健全和人民法律意识的提高,涉及法律诉讼的案件也在不断地增加,律师事务所作为中介的法律机构,要处…

字符设备驱动(一)

1.Linux设备分类 linux的文件种类: -:普通文件 文件内容文件名元信息(文件的相关属性—组织在inode的一个结构体内) d:目录文件 p:管道文件 s:本地socket文件 l:链接文件 软链接&am…

4 内部类实例

内部类 内部类的分类: 成员内部类方法内部类局部内部类匿名类静态内部类 1 成员内部类 是在一个类中声明的类,包含内部类的是外围类 成员内部类的访问权限: public可以在外围类的外部使用内部类创建对象private只能在外围类的内部使用内…

提升Mac使用性能的5大方法,都非常的好用哦~

是不是发现你的 Mac 越用运行速度会越慢?没错,任何电子设备,随着使用时间的增加,都会出现不如刚买时那么流畅的问题。Mac当然也不能例外,它的运行速度会随着使用时长的递增而有所下降,所以为 Mac 提速也是十…

CSS总结(网页布局:标准流 浮动 定位)

CSS 主要的功能是布局页面,增加标签的样式和部分交互效果。 资料来源:黑马 目录 元素显示 块级元素 行内元素 行内块元素 显示模式的转换 CSS三个特点 盒子模型 传统三种布局 标准流 浮动 结合浮动和标准流可以搭建出常见的网页布局: 清除…

Java Integer.toBinaryString() 方法源码及原理解析(进制转换、位运算)

title: Java Integer.toBinaryString() 方法源码及原理解析(进制转换、位运算) date: 2022-12-27 17:31:38 tags: Java categories:Java cover: https://cover.png feature: false 1. 使用及源码概览 Integer.toBinaryString() 方法用于将十进制整数转…

【1 - 决策树 - 案例部分:泰坦尼克号幸存者预测】菜菜sklearn机器学习

课程地址:《菜菜的机器学习sklearn课堂》_哔哩哔哩_bilibili 第一期:sklearn入门 & 决策树在sklearn中的实现第二期:随机森林在sklearn中的实现第三期:sklearn中的数据预处理和特征工程第四期:sklearn中的降维算法…

Spring RCE漏洞CVE-2022-22965复现与JavaFx GUI图形化漏洞利用工具开发

文章目录前言一、漏洞描述二、影响范围三、漏洞复现3.1 漏洞poc四、修复建议五、图形化工具开发-Rexbb简介与使用5.1 工具使用总结前言 换了新工作,年底了比较多自学的时间,所以把今年比较经典的漏洞给复现一下,之前因为没空,只复…

python--PyCHarm里代码整体向左/右缩进

1、PyCharm 里代码整体向左缩进 鼠标选中多行代码,同时按住 Shift Tab 键,实现一次向左缩进4个字符。 2、PyCharm 里代码整体向右缩进 鼠标选中多行代码,按下 Tab 键,实现一次向右缩进4个字符。 3、PyCharm 里光标变粗 光标…

信创大提速,企业如何在高速行驶中更换“发动机”?

导读:信创替代如何平滑迁移不“翻车”? 经过多年发展,中国信创产业迎来全面提速。 2022年国家下发的79号文中,全面给出了国资信创产业发展与进度的指导,要求到2027年央企国企100%完成信创替代,替换范围涵盖…

SprintBoot实战(十一)集成 xxl-job

目录1.简介2.Maven依赖3.初始化数据库4.调度中心配置5.执行器配置6.项目结构7.访问页面8.新建定时任务9.BEAN运行模式10.GLUE(Java)运行模式1.简介 xxl-job: 是一个分布式任务调度平台。平台架构分为 “调度中心” 和 “执行器”。调度中心类似定时任务的注册中心&a…

SuperMap iDesktop 之 BIM优化流程——建筑篇

kele 一、背景介绍 BIM数据是三维系统中的常客,它具有信息完备性、信息关联性、信息一致性、 可视化、协调性、模拟性、优化性和可出图性八大特点,广受人们喜爱,但这也使得它自身数据量庞大,在项目中展示效果不尽人意&#xff0c…