知识蒸馏学习记录

news2024/10/7 8:24:37

最近在学习降噪处理不良天气的算法过程中,接触到了知识蒸馏,该算法作为一个深度学习通用算法,不仅广泛应用在自然语言处理方面,在计算机视觉等领域也广受追捧。

概要

简单来说,知识蒸馏就是将一个大的教师网络萃取到一个小的学生网络中,即完成一个知识迁移的过程,这个教师网络可能是很多网络的集合,是一个很臃肿的模型,为了方便将其部署在一些算力受限的平台设备上,如手机,自动驾驶平台,便将教师网络浓缩变为学生网络。

预备知识

我们以一个分类模型来介绍知识蒸馏过程,在分类模型中使用交叉熵损失作为损失函数,下面介绍一下交叉熵损失函数的推导过程。

交叉熵损失函数推导过程

在这里插入图片描述

hard target与soft target

了解完交叉熵损失函数后,在这里我们需要引入一个概念,分别是hard targetsoft target,以分类模型为例:
每个样本都有确定的类别,即其值要么为0,要么为1,这样的标签则为hard target(红框表示),而soft target则是以概率的形式表示,这也是我们分类网络的输出结果(绿框表示)这种表示方式也是我们一般标注文件的形式,但这种方式在从模型学习的过程来看是不科学的。

在这里插入图片描述

例如以下面的三分类来看,hard target明确告诉我们图片中某个目标是马,他不是车也不是驴。

在这里插入图片描述

soft target则给出了目标是三者的概率,如马0.7 ,驴0.2,车0.1,这种方式不仅给出了其正确类别,还给出了非正确类别间的相对差别,即驴与马还是有些相似的,而车却很不像,相较于hard target,这种方式包含了更多的信息。
如下图手写数字识别分类:sotf target包含很多信息,更像谁,更不像谁,所以soft target相较于hard target是更科学的。我们可以使用teacher 网络训练出的sotf target送入到学生网络中作为标签进行学习。

在这里插入图片描述
总结一句话:

soft target相较于hard target,包含更多的知识和信息,更像谁,更不像谁,有多像,有多不像,特别是其能出给非正确类别概率的相对大小

为了让类别的间的相对误差更加明显,引入了蒸馏温度的概念。

蒸馏温度

如何理解蒸馏温度呢?其实很简单,就是在softmax函数的计算中加入了调制温度系数T用于放大差别,定义如下:但T不能太大,贫富差距就变小了

在这里插入图片描述

具体计算如下,分别计算原始的softmax与T=3时的损失。

在这里插入图片描述

知识蒸馏模型架构在这里插入图片描述

具体过程:
将大量数据送入已经训练好的教师网络,求出T=t时的soft labels(soft target),再将数据送入一个没有训练过,或是半成品的学生网络去计算T=t时的soft prediction,然后与soft labels求损失,同时学生网络中还要求T=1时的预测结果,称为hard prediction,其与hard target求损失,最后两个损失进行加权求和即得到最终的损失。

关于学习的内容:
可以是最后的输出结果(soft target),也可以是中间的特征层,也可以是注意力图谱。
在这里插入图片描述

知识蒸馏为何有用?

椭圆为收敛域空间,可以看到通过教师网络收敛的域空间与学生网络自己收敛的域空间也是很相近的。

在这里插入图片描述

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

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

相关文章

Nginx虚拟机主机

Nginx虚拟机主机 简述 虚拟主机是一种特殊软硬件技术,将网络上每一台计算机分成多个虚拟主机,每个虚拟主机可独立对外提供www服务,实现一台主机对外提供多个web服务,每个虚拟主机之间独立,互不影响。 配置位置 既可以在…

基于深度学习的高精度塑料瓶检测识别系统(PyTorch+Pyside6+YOLOv5模型)

摘要:基于深度学习的高精度塑料瓶检测识别系统可用于日常生活中或野外来检测与定位塑料瓶目标,利用深度学习算法可实现图片、视频、摄像头等方式的塑料瓶目标检测识别,另外支持结果可视化与图片或视频检测结果的导出。本系统采用YOLOv5目标检…

自动化面试题5

一、Modbus通信485/232/422的优缺点。 (1)RS232和RS422是全双工的,RS485是半双工的。 (2)RS485与RS232仅仅是通讯的物理协议(即接口标准)有区别,RS485是差分传输方式,R…

Spring6 AOT 提前编译

文章目录 1、AOT概述1.1、JIT与AOT的区别1.2、Graalvm1.3、Native Image 2、Native Image构建过程2.1、GraalVM安装(1)下载GraalVM(2)配置环境变量(3)安装native-image插件 2.2、安装C的编译环境&#xff0…

法规标准-ISO 23374标准解读

ISO 23374是做什么的? ISO 23374全名为智能交通系统-自动代客泊车系统(AVPS) 第一部分:系统框架、自动驾驶要求和通信接口,针对AVPS的系统框架及功能要求、通信接口进行介绍,由于通信接口涉及功能实现,但此处介绍较为…

ubuntu20.04 磁盘故障,然后重装22.04

ubuntu20.04 磁盘故障,然后重装22.04 重装原因开机自启动不需要使用sudo 软件截图 flameshot输入法 fcitx5 重装原因 编译程序报错 /usr/include/x86_64-linux-gnu/bits/signum.h:26:10: fatal error: /usr/include/x86_64-linux-gnu/bits/signum-generic.h: 结构需…

VUE L ∠脚手架 配置代理 ⑩⑧

目录 文章有误请指正,如果觉得对你有用,请点三连一波,蟹蟹支持✨ V u e j s Vuejs Vuejs初识 V u e C L I VueCLI VueCLI C L I CLI CLI V u e Vue Vue配置代理 C L I CLI CLI配置方法一 C L I CLI CLI配置方法二 C L I CLI CLI V u …

经典文献阅读之--VIP-SLAM(紧耦合RGB-D视觉惯性平面SLAM)

0. 简介 现有的视觉SLAM很多的算法让仍然是基于特征提取的方法来完成地图的建立,而RGB-D传感器的算法仍然是主要基于稀疏点的SLAM系统,这就导致在构建稠密点云地图的时候需要保持大量的地图点来建模环境。大量的地图点给我们带来了很高的计算复杂性&…

Python 进阶(二):Python使用ORM框架peewee操作MySQL数据库

Python使用ORM框架peewee操作数据库 前言1. 安装Peewee库并初始化数据库2. 创建数据库连接3. 定义数据表模型类4. 连接数据库并创建表5. 操作数据库5.1 插入数据5.2 查询数据5.3 更新数据5.4 删除数据 6. 聚合查询 前言 本文基于MySQL8.x版本的学习,python版本基于…

美客多、Newegg卖家如何提高店铺销量?测评自养号的重要性

作为美客多和Newegg平台上的卖家,提高店铺销量是卖家取得商业成功的关键。珑哥今天来说一些有效的策略,帮助卖家增加销售额并提升店铺的知名度和竞争力。 优化产品页面: 优秀的产品页面可以吸引更多买家并促进销售。确保产品标题准确、吸引人…

经典文献阅读之--NICE-SLAM(SLAM的神经隐含可扩展编码)

0. 简介 对于深度学习而言,NeRF一定是最近两年最火的工作之一了,**NeRF(Neural Radiance Fields)**是最早在2020年ECCV会议上的Best Paper,其将隐式表达推上了一个新的高度,仅用 2D 的 posed images 作为监…

stm32配置基本定时功能

Clock Source参数说明 内部时钟源是由STM32F103芯片内部的RC振荡器提供的。它的频率为8MHz,可以通过PLL倍频器进行倍频,最高可达到72MHz。 Internal clock Division No Division:不分频,即系统时钟直接作为时钟信号。Divided by 2…

ModaHub AI模型社区:向量数据库CPU 版 Milvus和GPU 版 Milvus 版本比较

目录 CPU 版 Milvus 版本比较 概述 CPU 版 Milvus 支持的索引类型 浮点型向量 二值型向量 GPU 版 Milvus 版本比较 概述 GPU 版 Milvus 支持的索引类型 浮点型向量 二值型向量 CPU 版 Milvus 版本比较 概述 Milvus 提供两个发行版本:CPU 版本和 GPU 版本…

学生成绩管理系统(Python+数据库)

文章目录 前言MySQL部分1. 导入信息2. 演示说明 Python程序设计部分1. 连接数据库2. 登录界面3. 注册界面4. 主界面5. 查询信息6. 修改密码7. 成绩分析7.1 通过学号查询成绩7.2 通过课程号查询成绩 7. 主函数 尾声 前言 用Python和数据库一起实现了一个简单的学生成绩管理系统…

GPDB-内核特性-UDP流量控制

GPDB-内核特性-UDP流量控制 GPDB是在开源PostgreSQL基础上,采用MPP架构的关系型分布式数据库,具有强大的大规模数据分析任务处理能力。采用Shared-Nothing架构,整个集群由多个数据节点(segment)和控制节点(…

Python爬虫 从小白到高手 各种最新案例! Urllib Xpath

Urllib 1.什么是互联网爬虫? 如果我们把互联网比作一张大的蜘蛛网,那一台计算机上的数据便是蜘蛛网上的一个猎物,而爬虫程序就是一只小蜘蛛,沿着蜘蛛网抓取自己想要的数据 解释1:通过一个程序,根据Url(http…

实训五:数据库安全控制 - 创建用户

创建用户 第1关:创建用户任务描述相关知识增加用户修改用户名修改用户密码删除用户 编程要求测试说明参考代码 第2关:创建用户-练习任务描述相关知识编程要求测试说明参考代码 第1关:创建用户 任务描述 本关任务:创建用户 user1…

你不知道的HTML属性,让你的网页更加响应式

前言 当我们谈论 HTML 时,通常会想到一些常见的属性,如 class、id、href 等等。但是,HTML 还有许多你可能从未听说过的属性,这些属性可以让你的网页更加丰富多彩。在本文中,我将介绍一些你可能不知道的 HTML 属性&…

SPI通信协议SPI通信外设

目录 SPI 介绍 硬件电路 移位示意图 软件SPI SPI时序基本单元 SPI时序​编辑 W25Q64 硬件电路 W25Q64框图 Flash操作注意事项 指令集 硬件SPI SPI框图 主模式全双工连续传输 非连续传输 SPI 介绍 硬件电路 推挽输出,高低电平都有很强的驱动能力&…

基于Python数据分析的详细讲解+实战(含代码)

名字:阿玥的小东东 学习:Python、C/C 主页链接:阿玥的小东东的博客_CSDN博客-python&&c高级知识,过年必备,C/C知识讲解领域博主 目录 载入数据集 数据预处理 探索性数据分析 发现相关性 开发模型 模型部署 Python数据分析代码实…