典型常见的知识蒸馏方法总结一

来源:https://github.com/HobbitLong/RepDistiller收录的方法

NeurIPS2015: Distilling the Knowledge in a Neural Network

在这里插入图片描述

知识蒸馏开山之作,从logits中蒸馏知识,KL散度损失

ICLR2015:FitNets: Hints for Thin Deep Nets

A hint is defined as the output of a teacher’s hidden layer responsible for guiding the student’s learning process,

we choose a hidden layer of the student, the guided layer, to learn from the teacher’s hint layer

Similarly, we choose the guided layer to be the middle layer of the student network

在这里插入图片描述
与输出的logits概率分布不同,hints最小化教师与学生之间的特征距离,采用L2距离。
在这里插入图片描述

ICLR2017:Paying More Attention to Attention: Improving the Performance of Convolutional Neural Networks via Attention Transfer

在这里插入图片描述

propose attention as a mechanism of transferring knowledge from one network to another 提出将注意力机制作为知识蒸馏的一种方式
propose the use of both activation-based and gradient-based spatial attention maps 提出同时使用基于激活和基于梯度的空间注意力图
show experimentally that our approach provides significant improvements across a variety of datasets and deep network architectures, including both residual and non-residual networks 实验展示了好的效果
show that activation-based attention transfer gives better improvements than full activation transfer, and can be combined with knowledge distillation 基于激活的注意力转移方式优于完全激活的转移
基于激活的注意力图

论文中定义了三种spatial attention的计算方式
在这里插入图片描述

在这里插入图片描述

并给出L1或者L2标准化之后的attention蒸馏损失,还强调it is worth emphasizing that normalization of attention maps is important for the success of the student training

基于梯度的注意力图

在这里插入图片描述

ICCV 2019:Similarity-Preserving Knowledge Distillation

在本文中,我们提出了一种新形式的知识蒸馏损失,其灵感源于这样一个观察结果:语义相似的输入往往会在经过训练的网络中引发相似的激活模式。
保持相似性的知识蒸馏会引导学生网络的训练,使得在教师网络中能产生相似(不相似)激活情况的输入对,在学生网络中也能产生相似(不相似)的激活情况。与以往的蒸馏方法不同,学生网络不需要去模仿教师网络的表示空间,而是要在其自身的表示空间中保持成对的相似性。

在这里插入图片描述
在这里插入图片描述

本文提出了余弦自相似性表示矩阵,和Frobenius 范数来作为蒸馏损失

ICCV 2019:Correlation Congruence for Knowledge Distillation

1. propose a new framework named correlation congruence for knowledge distillation (CCKD), which transfers not only the instance-level information but also the correlation between instances.

在这里插入图片描述

2. a generalized kernel method based on Taylor series expansion is proposed to better capture the correlation between instances.

在这里插入图片描述

CVPR 2019:Variational Information Distillation for Knowledge Transfer

提出了variational information distillation,借助于最大化教师学生之间的互信息

mutual information between two networks based on the variational information maximization

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

CVPR 2019:Relational Knowledge Distillation

在这里插入图片描述

RKD aims at transferring structural knowledge using mutual relations of data examples

定义了两种relation,一种是基于距离的2个样本之间的relation,另一种是三个样本之间的余弦角度relation

Distance-wise

在这里插入图片描述
在这里插入图片描述

Angle-wise Distillation

在这里插入图片描述

ECCV 2018:Learning Deep Representations with Probabilistic Knowledge Transfer

在这里插入图片描述

本文提出一个 基于概率的知识转移 (probabilistic knowledge transfer) 的方法。通过概率分布来建模数据的关系,然后通过最大化互信息,将teacher的概率分布知识传递给学生。

使用Teacher的数据之间的条件概率分布,作为知识的载体,传递给Student。

核心思想就是,建模 Teacher和Student的输出之间分布。通过Kernel Density Estimation可以将两个样本i与j之间的概率表示为
在这里插入图片描述

考虑到概率和为1,可以构造成:
在这里插入图片描述
在这里插入图片描述
利用KL散度来最小化教师与学生模型之间概率分布的差异
在这里插入图片描述

可以参考知乎

AAAI 2019:Knowledge Transfer via Distillation of Activation Boundaries Formed by Hidden Neurons

在介绍方法之前,本文首先定义了两种feature-based的知识蒸馏方法。

第一种是在学生神经网络学习对输入图像进行分类的过程中传递神经元响应,在这种情况下,交叉熵损失和传递损失会结合起来,形成一个单一的综合损失,用于整个训练过程。

第二种方法是在用标签训练学生之前,通过传递教师神经元响应来初始化学生网络。在基于蒸馏损失完成网络初始化后,再依据交叉熵损失对学生网络进行分类训练。

本文讨论第二种feature-based的知识蒸馏方法,即将这种知识蒸馏用于学生网络的初始化学习或者预训练。

所提出的知识传递方法的概念。所提方法聚焦于神经元的激活情况,而非神经元响应的幅度。这种聚焦能够实现对激活边界更精准的传递。
所提出的知识传递方法的概念。所提方法聚焦于神经元的激活情况,而非神经元响应的幅度。这种聚焦能够实现对激活边界更精准的传递。

普通的特征激活蒸馏损失函数

在这里插入图片描述

论文所提出的基于激活边界的蒸馏损失函数

用 max(0,1)来取代ReLU,用L1来取代L2

在这里插入图片描述
但是max(0,1)不连续可微,因此公式(3)中的损失函数不可导,所以不能作为可微分的损失函数

激活传递损失适用于激活边界的传递。然而,由于max(0,1)是一个离散函数,激活传递损失无法通过梯度下降法来最小化。因此,我们提出了一种可通过梯度下降法最小化的替代损失。
最小化激活传递损失与学习一个二元分类器类似。教师神经元的激活情况对应着类别标签。如果教师神经元处于激活状态,那么学生神经元的响应应该大于 0;如果教师神经元处于未激活状态,那么学生神经元的响应应该小于 0。受这种相似性的启发,该替代损失的设计与支持向量机(SVM)(科尔特斯(Cortes)和瓦普尼克(Vapnik)1995 年)中使用的合页损失the hinge loss(罗萨斯科(Rosasco)等人 2004 年)类似。
在这里插入图片描述
将所提出的损失应用于H*W的特征图蒸馏,损失函数可以定义为H和W维度的累加
在这里插入图片描述

NeurIPS 2018:Paraphrasing Complex Network: Network Compression via Factor Transfer

在本文中,我们提出了一种新颖的知识迁移方法,该方法运用卷积操作对教师的知识进行释义,并将其转化以便学生网络使用。这一过程通过两个卷积模块来实现,它们分别被称作 “释义器” 和 “转换器”。“释义器” 通过无监督的方式进行训练,以提取 “教师因子”,“教师因子” 被定义为教师网络的释义信息。位于学生网络的 “转换器” 会提取 “学生因子”,并通过模仿 “教师因子” 来帮助实现对其的转化。
我们观察到,采用我们所提出的因子迁移方法训练的学生网络,其性能优于采用传统知识迁移方法训练的学生网络。
在这里插入图片描述在这里插入图片描述

常言道,如果一个人完全理解某样事物,那么他 / 她应该能够自行对其作出解释。相应地,如果学生网络能够通过训练来复制所提取的信息,这就意味着该学生网络很好地掌握了相关知识。
在本节中,我们将释义器中间层的输出定义为教师网络的 “教师因子”,而对于学生网络,我们利用由若干卷积层构成的转换器来生成 “学生因子”,并训练这些 “学生因子” 去复制 “教师因子”,如图 1 所示。借助这些模块,我们的知识迁移过程主要包含以下两个步骤:

第一步,通过重建损失对释义器进行训练。然后,利用释义器从教师网络中提取 “教师因子”。

在这里插入图片描述
x是教师网络的特征,P是paraphraser的函数,类似于auto-encoder的自监督重建损失。

第二步,将这些 “教师因子” 迁移转化为 “学生因子”,以便学生网络从中学习。

第二步,教师网络和教师的paraphraser权重冻结,利用FT蒸馏损失和交叉熵损失来训练学生网络
在这里插入图片描述
在这里插入图片描述

蒸馏损失为 将教师网络paraphraser输出的特征和学生网络translator输出的特征进行L2归一化之后,最小化他们之间的L1距离损失

CVPR 2017: A gift from knowledge distillation: Fast optimization, network minimization and transfer learning

我们引入了一种新颖的知识迁移技术,在该技术中,来自预训练深度神经网络(DNN)的知识会被提炼出来并迁移至另一个深度神经网络。由于深度神经网络是通过依次经过多个层将输入空间映射到输出空间的,我们将待迁移的提炼知识依据层间的 “流” 来进行定义,这种 “流” 是通过计算来自两层的特征之间的内积来得出的
当我们将学生深度神经网络与和其规模相同但未经教师网络训练的原始网络进行对比时,所提出的将提炼知识作为两层之间的 “流” 进行迁移的方法呈现出三个重要现象:(1)学习了提炼知识的学生深度神经网络的优化速度比原始模型快得多;(2)学生深度神经网络的性能优于原始深度神经网络;(3)学生深度神经网络能够从针对不同任务训练的教师深度神经网络那里学习提炼知识,而且其性能优于从头开始训练的原始深度神经网络。

通过内积计算两个特征层的FSP矩阵

在这里插入图片描述

第一步,计算两个特征F1和F2之间的FSP矩阵G

在这里插入图片描述

第二步,对教师和学生网络的FSP矩阵进行蒸馏损失计算,损失为均方L2损失

在这里插入图片描述

蒸馏整体架构,多个特征阶段的FSP损失传递

在这里插入图片描述

训练过程,分为两个阶段,第一阶段通过蒸馏损失只优化教师与学生之间的FSP矩阵进行预训练,第二阶段通过标签优化学生的任务损失

在这里插入图片描述

arXiv 2017:Like what you like: Knowledge distill via neuron selectivity transfer

In this paper, we propose a novel knowledge transfer method by treating it as a distribution matching problem. 在本文中,我们提出了一种新颖的知识迁移方法,将其视为一个分布匹配问题来处理。具体而言,我们对教师网络和学生网络之间神经元选择性模式的分布进行匹配。为实现这一目标,我们通过最小化这些分布之间的最大均值差异(MMD)度量设计了一种新的知识迁移(KT)损失函数。将其与原始损失函数相结合,我们的方法能够显著提升学生网络的性能。

我们在多个数据集上验证了该方法的有效性,并进一步将其与其他知识迁移方法相结合,以探索最佳可能的结果。最后但同样重要的是,我们针对诸如目标检测等其他任务对模型进行微调。所得结果同样令人鼓舞,这证实了所学特征的可迁移性。

在这里插入图片描述

学生网络不仅依据真实标签进行训练,而且还会模仿教师网络中间层激活情况的分布。图中的每个圆点或三角形都代表其相应的滤波器激活图。
最大均值差异MMD损失的介绍

在这里插入图片描述

Minimizing the MMD loss is equivalent to transferring neuron selectivity knowledge from teacher to student

在这里插入图片描述
在这里插入图片描述

Linear 形式:

在这里插入图片描述

Polynomial形式

在这里插入图片描述

本文核心思想,就是让学生的中间特征与教师的中间特征之间的分布尽可能接近,采用MMD损失对将两者进行匹配,可视化结果为:

在这里插入图片描述
在这里插入图片描述

CVPR 2018: Deep mutual learning

Large scale distributed neural network training through online distillation

Training shallow and thin networks for acceleration via knowledge distillation with conditional adversarial networks

Improving knowledge distillation with supporting adversarial samples

Knowledge distillation with adversarial samples supporting decision boundary

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

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

相关文章

十、软件设计架构-微服务-服务调用Feign

文章目录 前言一、Feign介绍1. 什么是Feign2. 什么是Http客户端3. Feign 和 OpenFeign 的区别 二、Feign底层原理三、Feign工作原理详解1. 动态代理机制2. 动态代理的创建过程3. 创建详细流程4. FeignClient属性 四、Feign使用1. 常规调用2.日志打印3. 添加Header 前言 服务调…

在 LS-DYNA 中将应力转换为用户定义的坐标系

介绍 通常,使用 LS-DYNA 或 Ansys Mechanical 等仿真工具解决工程问题需要将张量结果与解析解进行比较。一个这样的例子是加压圆柱体,其中圆周应力或环状应力是感兴趣的主要应力度量。例如,如果对具有复杂端部处理的几何结构进行此类仿真&am…

树莓集团是如何链接政、产、企、校四个板块的?

树莓集团作为数字影像行业的积极探索者与推动者,我们通过多维度、深层次的战略举措,将政、产、企、校四个关键板块紧密链接在一起,实现了资源的高效整合与协同发展,共同为数字影像产业的繁荣贡献力量。 与政府的深度合作政府在产业…

工业异常检测-CVPR2024-新的3D异常数据合成办法和自监督网络IMRNet

论文:https://arxiv.org/pdf/2311.14897v3.pdf 项目:https://github.com/chopper-233/anomaly-shapenet 这篇论文主要关注的是3D异常检测和定位,这是一个在工业质量检查中至关重要的任务。作者们提出了一种新的方法来合成3D异常数据&#x…

debian ubuntu armbian部署asp.net core 项目 开机自启动

我本地的环境是 rk3399机器,安装armbian系统。 1.安装.net core 组件 sudo apt-get update && \sudo apt-get install -y dotnet-sdk-8.0或者安装运行库,但无法生成编译项目 sudo apt-get update && \sudo apt-get install -y aspnet…

qt QNetworkAccessManager详解

1、概述 QNetworkAccessManager是QtNetwork模块中的一个核心类,它允许应用程序发送网络请求并接收响应。该类是网络通信的基石,提供了一种方便的方式来处理常见的网络协议,如HTTP、HTTPS等。QNetworkAccessManager对象持有其发送的请求的通用…

21、结构体成员分布

结构体中的成员并不是紧挨着分布的,内存分布遵循字节对齐的原则。 按照成员定义的顺序,遵循字节对齐的原则存储。 字节对齐的原则: 找成员中占据字节数最大的成员,以它为单位进行空间空配 --- 遇到数组看元素的类型 每一个成员距离…

前端基础——CSS

美化文档 HTML内部添加样式 本节我们来学习如何在标签中引入CSS样式。 1 在标签中添加声明 声明的关键字是style后接等号&#xff08;&#xff09;再接引号&#xff08;""&#xff09;&#xff0c;即style"" 具体声明如下&#xff1a; <input typ…

WPS解决Word文件引入excel对象文件无法打开提示“不能启动此对象...”的问题

一、问题现象 接收到了一份 Word文件&#xff0c;里面引入了一个Excel对象文件&#xff0c;双击时候&#xff0c;wps出现卡顿&#xff0c;过一会之后弹出错误提示&#xff1a;不能启动此对象... 二、解决方法 1.点击WPS左上角图标&#xff0c;并打开右上角设置&#xff0c;萱蕚…

spring下的beanutils.copyProperties实现深拷贝

spring下的beanutils.copyProperties方法是深拷贝还是浅拷贝&#xff1f;可以实现深拷贝吗&#xff1f; 答案&#xff1a;浅拷贝。 一、浅拷贝深拷贝的理解 简单说拷贝就是将一个类中的属性拷贝到另一个中&#xff0c;对于BeanUtils.copyProperties来说&#xff0c;你必须保…

3GPP R18 LTM(L1/L2 Triggered Mobility)是什么鬼?(三) RACH-less LTM cell switch

这篇看下RACH-less LTM cell switch。 相比于RACH-based LTM,RACH-less LTM在进行LTM cell switch之前就要先知道target cell的TA信息,进而才能进行RACH-less过程,这里一般可以通过UE自行测量或者通过RA过程获取,而这里的RA一般是通过PDCCH order过程触发。根据38.300中的描…

Ansible 运维工具

安装 apt install ansible /etc/ansible/hosts , 指定密码或密钥访问分组机器 [k8s_masters] master0.c0.k8s.sb[k8s_nodes] node0.c0.k8s.sb node1.c0.k8s.sb[k8s:children] k8s_masters k8s_nodes[k8s_masters:vars] ansible_ssh_usersbadmin ansible_ssh_pass"***&q…

三菱JET伺服CC-Link IE现场网络Basic链接软元件(RYn/RXn)(RWwn/RWrn)

链接软元件(RYn/RXn) 要点 在循环通信中对主站发送给伺服放大器的请求(RYn及RWwn)设定了范围外的值时&#xff0c;将无法反映设定内容。 循环通信的请求报文与响应报文的收发数据被换读为伺服放大器的对象数据(RYn、RXn)。 响应报文的设定值可进行变更。变更初始设定值时&…

WPF中的VisualState(视觉状态)

以前在设置控件样式或自定义控件时&#xff0c;都是使用触发器来进行样式更改。触发器可以在属性值发生更改时启动操作。 像这样&#xff1a; <Style TargetType"ListBoxItem"><Setter Property"Opacity" Value"0.5" /><Setter …

ARINC 标准全解析:航空电子领域多系列标准的核心内容、应用与重要意义

ARINC标准概述 ARINC标准是航空电子领域一系列重要的标准规范&#xff0c;由航空电子工程委员会&#xff08;AEEC&#xff09;编制&#xff0c;众多航空公司等参与支持。这些标准涵盖了从飞机设备安装、数据传输到航空电子设备功能等众多方面&#xff0c;确保航空电子系统的兼…

用golang简单做一个内网穿透小工具!

一个个人需求&#xff0c;需要简单的穿透一下 家里的电脑&#xff0c;也不需要多稳定&#xff0c;也没有并发。然后 通过http可以访问到内网的 一个网站&#xff0c; 因为服务端 是linux 系统 &#xff0c;内网是 windows10服务器 所以 就采用 用golang这个语言来实现&#xff…

微服务监控prometheus+Grafana

目录 Prometheus 概述 核心组件 特点 使用场景 Grafana 概述 功能特点 使用场景 PrometheusGrafana组合 部署和配置 一、准备工作 二、部署Prometheus 三、部署Grafana 四、创建监控仪表盘 五、验证和调优 总结 微服务监控是确保微服务架构稳定运行的关键环节…

(vue)el-cascader多选级联选择器,值取最后一级的数据

(vue)el-cascader多选级联选择器&#xff0c;取值取最后一级的数据 获取到&#xff1a;[“养殖区”,“鸡棚”,“E5001”] 期望&#xff1a;[“E5001”] 问题: 解决方法 增加change事件方法&#xff0c;处理选中的value值 1.单选 <el-cascaderv-model"tags2":o…

Git常用的命令【提交与回退】

git分布式版本控制系统 &#xff08;SVN集中式版本控制系统&#xff09;之间的对比 git有本地仓库和远程仓库&#xff0c;不同的开发人员可以分别提交自己的本地仓库并维护代码的版本控制。 然后多个人员在本地仓库协作的代码&#xff0c;可以提交到远程仓库中做整合。 git本…