Feature Fusion for Online Mutual KD

news2024/9/23 5:32:13

paper:Feature Fusion for Online Mutual Knowledge Distillation

official implementation:https://github.com/Jangho-Kim/FFL-pytorch

本文的创新点 

本文提出了一个名为特征融合学习(Feature Fusion Learning, FFL)的框架,该框架通过一个组合并行网络特征图并生成更有意义特征图的融合模块(fusion module)高效的训练一个强大的分类器。具体来说,首先训练多个并行网络作为子网络,然后通过融合模块组合来自每个子网络的特征图得到一个更有意义的特征图,这个融合特征图送入融合分类器fused classifier中进行整体的分类。与现有的特征融合方法不同,该框架集成各个子网络的分类器ensemble classifier并将知识蒸馏到融合分类器中,同时融合分类器也将它的知识蒸馏回各个子网络中,以一种在线蒸馏online-knowledge distillation的方式进行互学习mutual learning。这种互学习的方式不仅提高了融合分类器的性能同时提升了各个子网络的性能。此外和其它一些类似方法相比,本文的方法中每个子网络的架构可以不同。

方法介绍

Fusion Module

和DualNet不同,本文的方法在融合特征时不是简单的求和或求均值,而是先concatenate不同子网络的特征,然后通过融合模块进行卷积操作。为了减少参数,使用了深度可分离卷积。我们使用最后一层的特征进行融合因为它特定于该任务并且具有足够的表示能力。假定子网络1,2的最后一层特征的通道分别为 \(C_{1},C_{2}\),拼接后特征图的通道数为 \(M=C_{1}+C_{2}\),融合模块的输出通道 \(N\) 可以根据需要设定。如图2所示,首先执行3x3的深度卷积,然后使用点卷积来创建特征映射切片的线性组合,以便更好的融合它们。

在DualNet中,存在一个问题,即子网络的输出通道数必须相等,因为特征图需要进行element-wise add。在本方法中,由于子网络的特征时concatenate的,因此FFL可以使用不同输出通道的网络作为子网络。如果子网络最后特征图的分辨率不同,那么使用一个卷积就可以对齐分辨率,如FitNets中的regressor。

Feature Fusion Learning

在子网络的结构方面,ONE(On-the-fly Native Ensemble)和DualNet都不够灵活因为它们的子网络的结构必须相同。为了解决这个问题,本文基于子网络的结构设计了两种不同的FFL 

  • 如果子网络的结构相同,则子网络的low-level层共享,high-level层分成不同的分支。
  • 如果子网络的结构不同,则子网络分别独立训练因为无法共享层。

本文处理的多类别分类任务,假设有 \(m\) 个类别,第 \(k\) 个网络的logit定义为 \(\mathbf{z}_{k}=\left \{z^1_{k},z^2_{k},...,z^{m}_{k} \right \} \)。在训练过程中,我们使用softened probability进行模型泛化。给定 \(\mathbf{z}_{k}\),软化概率定义为

当 \(T=1\) 时,就是原始的softmax。给定one-hot标签 \(\mathbf{y}=\left\{y^{1},y^{2},...,y^{m}\right\}\),第 \(k\) 个子网络的交叉熵损失为

完整的过程如图1所示,其中子网络的结构不同。为了充分利用给定的知识,我们使用了一个强大的集成分类器。子网络通过集成logits创建一个集成分类器用来训练融合模块。假设有 \(n\) 个子网络,则logits的集成如下

为了训练融合模块,集成分类器将它的知识蒸馏给融合分类器,称为集成知识蒸馏(ensemble knowledge distillation, EKD)。EKD损失定义为集成分类器软化分布和融合分类软化分布之间的KL散度。如果融合分类器的logit定义为 \(\mathbf{z}_{f}\),则EKD损失如下

和其他方法相比,EKD损失可以帮助训练一个融合模块来生成更有意义的特征图。不同子网络最后一层特征图拼接后进入融合模块。为了训练每个子网络,融合模块中的融合分类器将它的知识蒸馏回每个子网络,称为融合知识蒸馏(fusion knowledge distillation, FKD)。将融合分类器的软化分布蒸馏回每个子网络的FKD损失如下

 

除了蒸馏损失,每个子网络和融合分类器还通过交叉熵损失学习ground truth,完整损失如下

 

在FFL中,每个子网络和融合分类器通过交叉熵损失学习ground truth。同时,集成分类器通过 \(\mathcal{L}^{e}_{kl}\) 将它的知识蒸馏到融合分类器中,反过来,融合分类器也将它的知识蒸馏回每个子网络。通过这种互蒸馏(mutual knowledge distillation, MKD),融合模块生成对分类更有意义的特征。由于软分布的梯度缩放了 \(1/T^{2}\),我们乘上 \(T^{2}\)。FFL中的子网络和融合模块是同时训练的。

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

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

相关文章

设计模式—— 单例设计模式

单例设计模式 什么是单例模式 单例模式是一种对象创建型模式,使用单例模式,可以保证为一个类只生成唯一的实例对象。也就是说,在整个程序空间中,该类只存在一个实例对象。 为什么使用单例模式 在应用系统开发中,我…

Python测试开发,掌握技巧更上一层楼!

学员学习分享: 自动化测试工作稳定之后,一向对技术着迷的我,迫不及待地要进入测开的世界,在java和Python的方向上,我选择了Python。 原因很简单,比较好上手,而且市场上也比较主流。 在跟着课…

【操作系统】在阅读论文:OrcFS: Orchestrated file system for flash storage是需要补充的基础知

在阅读论文:OrcFS: Orchestrated file system for flash storage是需要补充的基础知识 这篇论文是为了解决软件层次之间的信息冗余问题 To minimize the disk traffic, the file system buffers the updates and then flushes them to the disk as a single unit, …

二极管限幅电路理论分析,工作原理+作用

一、限幅是什么意思? 限幅也就是,将电压限制在某个范围内,去除交流信号的一部分但不会对波形的剩余部分造成影响。通常来说,限幅电路主要是由二极管构成,波形的形状取决于电路的配置和设计。二、限幅电路工作原…

流量预测中文文献阅读(郭郭专用)

目录 基于流量预测的超密集网络资源分配策略研究_2023_高雪亮_内蒙古大学(1)内容总结(2)流量预测部分1、数据集2、结果对其中的一个网格的CDR进行预测RMSE和R2近邻数据和周期数据对RMSE的影响 (3)基于流量预…

C语言实现简易n子棋小游戏(代码含注解)

利用C语言简单实现一个n子棋小游戏,棋盘大小由自己定义 将源文件分为 执行游戏的测试文件(test.c)和保存游戏运行逻辑的相关函数的文件(game.c) 头文件中声明符号和函数的定义(game.h) 游戏执行主要依靠二维数组实现,电脑走棋采用随机值的方法简易地…

【NI-DAQmx入门】LabVIEW中DAQmx同步

1.同步解释 1.1 同步基础概念 触发器:触发器是控制采集的命令。您可以使用触发器来启动、停止或暂停采集。触发信号可以源自软件或硬件源。 时钟:时钟是用于对数据采集计时的周期性数字信号。根据具体情况,您可以使用时钟信号直接控制数据采…

ElasticSearch概述+SpringBoot 集成 ES

ES概述 开源的、高扩展的、分布式全文检索引擎【站内搜索】 解决问题 1.搜索词是一个整体时,不能拆分(mysql整体连续) 2.效率会低,不会用到索引(mysql索引失效) 解决方式 进行数据的存储(只存储…

ssm基于Javaweb的物流信息管理系统的设计与实现论文

摘 要 如今社会上各行各业,都喜欢用自己行业的专属软件工作,互联网发展到这个时候,人们已经发现离不开了互联网。新技术的产生,往往能解决一些老技术的弊端问题。因为传统物流信息管理难度大,容错率低,管理…

基于OpenCV的谷物颗粒识别

基于OpenCV的谷物颗粒识别 一、程序整体功能介绍1.1 导入库与函数定义1.2 颜色分割与灰度处理1.3 二值化与轮廓检测1.4 绘制与计数1.5 主程序与结果展示 二、算法原理与实现流程2.1算法原理(1)颜色分割(2)灰度处理与二值化&#x…

mysql进阶 - 存储过程

目录 1. 用途: 2. 相关语法 2.1 创建 2.1.1 语法 2.1.2 示例 2.2 查看存储过程 2.3 调用 2.4 修改存储过程 2.5 删除存储过程 1. 用途: 存储过程广泛存在于一些遗留系统,可以减少代码的编写。而近些年,存储过程很少再用…

【期末不挂科-C++考前速过系列P4】大二C++实验作业-继承和派生(3道代码题)【解析,注释】

前言 大家好吖,欢迎来到 YY 滴C考前速过系列 ,热烈欢迎! 本章主要内容面向接触过C的老铁 主要内容含: 欢迎订阅 YY滴C专栏!更多干货持续更新!以下是传送门! YY的《C》专栏YY的《C11》专栏YY的《…

试用统信服务器操作系统UOS 20

作者:田逸(formyz) 试用统信Linux操作系统UOS,想了解一下用已有的Linux经验能否轻松驾驭它。以便在某些场景下,可以多一种选择。本次试验在Proxmox VE 8(以下简称PVE 8)平台下进行,采…

杨中科 .NETCORE ENTITY FRAMEWORK CORE-1 EFCORE 第一部分

一 、什么是EF Core 什么是ORM 1、说明: 本课程需要你有数据库、SOL等基础知识。 2、ORM: ObjectRelational Mapping。让开发者用对象操作的形式操作关系数据库 比如插入: User user new User(Name"admin"Password"123”; orm.Save(user);比如查询: Book b…

串行Nor Flash的结构和参数特性

文章目录 引言1、Nor Flash的结构2、Nor Flash的类别3.标准Serial Nor Flash的特征属性1.Wide Range VCC Flash2.Permanent Lock3.Default Lock Protection4.Standard Serial Interface5.Multi-I/O6.Multi-I/O Duplex (DTR)7.XIP(片上执行) 4.标准Serial…

【LabVIEW FPGA入门】LabVIEW FPGA 实现SPI通信协议

该实现由两个组件组成:在 LabVIEW FPGA 中实现的 SPI 协议以及用于从主机 PC 或实时控制器与 FPGA 进行通信的 LabVIEW 主机接口。该架构允许从单个主机程序控制多个 SPI 端口,同时仍然允许定制 FPGA VI 以进行其他数据采集和处理。该实现不使用任何DMA&…

运算电路(1)——加法器

一、引言 微处理器是由一片或少数几片大规模集成电路组成的中央处理器。这些电路执行控制部件和算术逻辑部件的功能。微处理器能完成取指令、执行指令,以及与外界存储器和逻辑部件交换信息等操作,是微型计算机的运算控制部分。它可与存储器和外围电路芯片…

FasterNet(CVPR 2023)论文解读

paper:Run, Dont Walk: Chasing Higher FLOPS for Faster Neural Networks official implementation:https://github.com/jierunchen/fasternet 存在的问题 为了设计轻量、速度快的网络,许多工作都专注于减少floating-point operations (F…

点餐新体验:老板自研扫码点餐小程序的成果

为了提高餐厅的效率和顾客的用餐体验,餐饮店老板们纷纷开始探索新的技术手段。其中,扫码点餐小程序就是一种非常受欢迎的解决方案。 扫码点餐小程序是一种基于微信小程序开发的餐饮点餐系统,它通过扫描桌码或菜品二维码,实现快速点…

图神经网络|图注意网络Graph Attention Network

图注意网络Graph Attention Network Leaky ReLU 有利于压低负数对结局的影响。 图注意网络Graph Attention Network的流程 输入向量 h i h_i hi​乘上权重矩阵W得到对应的向量 h i ∗ h_i^* hi∗​,并将 h i ∗ h_i^* hi∗​计算出对应的 a i a_i ai​,从而得到最终对结果向量…