小白学深度学习:知识蒸馏研究综述

ops/2024/9/22 18:15:50/

为了能够在低资源设备上运行深度学习模型,需要研发高效的小规模网络。知识蒸馏是获取高效小规模网络的一种新兴方法,其主要思想是将学习能力强的复杂教师模型中的“知识”迁移到简单的学生模型中。

知识蒸馏介绍

知识蒸馏是一种教师-学生(Teacher-Student)训练结构,通常是已训练好的教师模型提供知识,学生模型通过蒸馏训练来获取教师的知识。它可以以 轻微的性能损失为代价将复杂教师模型的知识迁移到简单的学生模型中。

知识蒸馏与迁移学习思想较为相似,然而它们有以下四点的不同:

  • 知识蒸馏中的知识通常是在同一个目标数据集上进行迁移,而迁移学习中的知识往往是在不同目标的数据集上进行转移。

  • 知识蒸馏的两个网络可以是同构或者异构的,而迁移学习通常是在单个网络上利用其它领域的数据知识。

  • 迁移学习使用其它领域的丰富数据的权重来帮助目标数据的学习,而知识蒸馏不会直接使用学到的权重。

  • 知识蒸馏通常是训练一个轻量级的网络来逼近复杂网络的性能,而迁移学习是将已经学习到相关任务模型的权重来解决目标数据集的样本不足问题。

早期的工作都涉及到小网络利用大网络的输出知识,如全连接层和概率输出。Hinton 等人在 2015 年引入软目标(即带有参数 T 的类概率)并提出知识蒸馏概念:

其中T为温度系数,用来控制输出概率的软化程度。Hinton等人还发现了在训练过程加上正确的数据标签(即硬目标)会使学习效果更好。

知识蒸馏的作用机制

学生模型在知识蒸馏的过程中通过模仿教师模型输出类间相似性的“暗知识”来提高泛化能力。软目标携带着比硬目标更多的泛化信息来防止学生模型过拟合。

  • 软目标为学生模型提供正则化约束

  • 软目标引导了学生模型优化的方向

蒸馏的知识形式

当教师模型变得更深时,仅仅学习软目标是不够的。不仅需要获取教师模型输出的知识,还需要学习隐含在教师模型中的其它知识,比如中间特征知识。

输出特征知识

输出特征知识通常指的是教师模型的最后一层特征,主要包括逻辑单元和软目标的知识。输出特征知识蒸馏的主要思想是促使学生能够学习到教师模型的最终预测,以达到和教师模型一样的预测性能。

中间特征知识

复杂教师和简单学生模型在中间的隐含层之间存在着显著的容量差异,这导致它们不同的特征表达能力。 教师的中间特征状态知识可以用于解决教师和学生模型在容量之间存在的“代沟”(Gap)问题,其主要思想是从教师中间的网络层中提取特征来充当学生模型中间层输出的提示(Hint)。

关系特征知识

关系特征知识蒸馏认为学习的本质不是特征输出的结果,而是层与层之间和样本数据之间的关系。它的重点是提供一个恒等的关系映射使得学生模型能够更好的学习教师模型的关系知识。

结构特征知识

结构特征知识是教师模型的完整知识体系,不仅包括教师的输出特征知识,中间特征知识和关系特征知识,还包括教师模型的区域特征分布等知识。

知识蒸馏的方法

知识合并

知识合并(Knowledge Amalgamation,KA)是将多个教师或多个任务的 知识迁移到 单个学生模型中,从而使其可以同时处理多个任务。

多教师学习

知识合并和多教师学习(Learning from Multiple Teachers)都属于“多教师-单学生”的网络训练结构。它们的相同点是,知识合并和多教师学习都是学习多个教师模型的知识,但是它们的目标却是不一样的。

相互蒸馏

相互蒸馏(Mutual Distillation)是让一组未经训练的学生模型同时开始学习,并共同解决任务。 它是一种在线的知识蒸馏,即教师和学生模型是同时训练并更新的。

终身蒸馏

深度学习网络在学习新任务时,对旧任务的性能就会急剧下降,这个现象被称为灾难性遗忘。终身蒸馏就是通过知识蒸馏来保持旧任务和适应新任务的性能,其重点是训练新数据时如何保持旧任务的性能来减轻灾难性遗忘。

查看更多内容,欢迎访问天池技术圈官方地址:小白学深度学习:知识蒸馏研究综述_天池技术圈-阿里云天池


http://www.ppmy.cn/ops/103324.html

相关文章

easyExcel 导入时,校验每个单元格数据

目录 1、定义excel导入文件对应的数据接收类 2、定义属性转换器 3、定义数据解析监听器 4、解析文件 1、定义excel导入文件对应的数据接收类 package com.ruoyi.project.domain.dto;import com.alibaba.excel.annotation.ExcelProperty; import com.ruoyi.project.impot…

基于live555开发的多线程RTSPServer轻量级流媒体服务器EasyRTSPServer开源代码及其调用示例,PC、嵌入式、Android全通用

EasyRTSPServer参考live555 testProg中的testOnDemandRTSPServer示例程序,将一个live555 testOnDemandRTSPServer封装在一个类中,例如,我们称为Class EasyRTSPServer,在EasyRTSPServer_Create接口调用时,我们新建一个E…

自动化01:认识接线端子

1、TB接线端子: 2.SAK组合接线端子: 3.UK组合接线端子: 4.插拔式接线端子: 5.零线接线桩: 6.零线接线排

去中心化(Decentralization)

去中心化(Decentralization) 并不是一个新概念,它已在战略、管理和政府中使用了很长时间。去中心化的基本思想是将控制权和权限分配给组织的外围,而不是由一个中心机构完全控制组织。这种配置为组织带来了许多好处,例如提高了效率…

探索Python的Excel力量:openpyxl库的奥秘

文章目录 探索Python的Excel力量:openpyxl库的奥秘背景:为什么选择openpyxl?库简介:openpyxl是什么?安装指南:如何安装openpyxl?快速上手:五个基本函数实战演练:三个应用…

Python操作Excel的2024年新框架zdppy_excel,使用简单,零依赖,国产

zdppy_excel Python处理Excel的专属工具库 特性 1、零依赖2、国产框架,有完整的中文文档3、使用简单4、低代码开发 安装 pip install zdppy_excel使用教程 写入数据 from zdppy_excel import Workbook import datetime# 创建一个 workbook wb Workbook()# 获…

彩色相机拍照,图片时亮时暗

在自动化设备的调式过程中,发现相机拍照的图片时亮时暗,于是排查问题: 1,是否拍照的时机不对? 2,是否有东西挡住相机了? 3,光源打开的时间是否合适?是否有延时&#x…

Web攻击-XSS、CSRF、SQL注入

1. XSS攻击:跨站脚本攻击 XSS(Cross Site Scripting),跨站脚本攻击,允许攻击者将恶意代码植入到提供给其它用户使用的页面中。 XSS的攻击目标是为了盗取存储在客户端的cookie或者其他网站用于识别客户端身份的敏感信…