Channel-wise Knowledge Distillation for Dense Prediction论文阅读和

paper:https://arxiv.org/pdf/2011.13256.pdf

code:https://github.com/open-mmlab/mmrazor 

这篇paper主要是商汤开源的mmrazor中提及在detection有效果,我之前记录的几篇sota文章虽然在各自的paper中在detection领域都有提及有增益,但实际上在我的测试中,可能由于模型容量或者其他原因,收益都几乎不可见,但是这篇文章是商汤开源的,我认为应该具有比较好的含金量,因此再分析和实验一波。

摘要:

kd被认为是一种简单有效的方法用来训练密集预测模型,许多的kd方法对其student和teacher的空间域的activation maps,通常的方法是normalizing 每一个空间位置激活值,并逐点最小化或者比较之间的差异,与之前的方法不同,我们的建议是归一化激活map,然后获得一张soft probability(软概率),然后最小化KL散度来比较两个网络之间的通道概率图,kd过程中更注重最突出的每个通道的显著性区域,这对密集预测很有价值,然后本方法在semantic和detection上进行了实验,取得了sota的结果,在retinanet上提升了3.4.

Introduction

    Spatial distillation: 空间方向的蒸馏,可以理解成对所有通道的相同位置的点做归一化,然后让学生网络学习这个归一化后的分布,可以理解成对类别的蒸馏。
    Channel distillation: 通道方向的蒸馏,可以理解成对单个通道内做归一化,然后让学生网络学习这个归一化后的分布,可以理解成对位置的蒸馏。 

    如上所示,使用kl散度来最小化通道的归一化后的激活maps的分布,如上图所示,每个通道的激活值更倾向于编码的显著性类别,比如car的通道就会更注重于car的类别,对于每个通道,student网络更注重于模仿和学习那些具有显著激活值得区域,从而在密集预测恩物中实现更准确地定位,比如detection,就更加注重于前景的对象的激活值学习。

    本小节的结论是:paper展示了每个简单归一化每个通道可以提升spatial distillation的baseline,本文提出channel-wise kd方法能够兼得的应用于各个人物和网络结构,总结贡献如下:

    1、提出了一种新的channel-wise蒸馏范式,取得了sota效果在semantic和detection任务上

    2、在不同的网络结构中泛化性能很好,都取得了比较好的增益。

    鉴于其简单和有效性,认为该方法可以作为密集预测任务的有效方法

Method

1、常规的空间蒸馏方法

 2、Channel-wise Distillation

    为了更好地利用每个通道的只是,使用软对齐(softly align activations)teacher和studfent相应通道的激活值。首先,将通道的激活值转化为概率分布,然后在使用figure2中的方法来衡量差异,比如kl散度,

    

      yt和ys分别代表相应通道的activation map,里面的c代表对应的通道,ϕ代表将activation map转化为概率的分布,概率转换完成后可以消除大网络和小网络之间的绝对数值的大小差异,转化方式如下图所示:

    上图也提到,当student和teacher模型的channel不一致时,可以使用1x1的卷积进行适配,最后对进行soft后的概率分布进行kl散度计算,同时如上式代入温度参数。

这里也提到了一个核心点,为什么kl散度是有效的,即当如果当 ϕ ( yT )越大,则  ϕ ( yS)同样也越大,来最小化kl散度,但是相反的,ϕ ( yT )越小,则  ϕ ( yS)则不会一直无穷小,因此,这样能够更加保证student学习到teacher的更显著的概率map。

experiments:

本博客只给出paper的detection的结构,有兴趣的同学自己去看其他的实验结果和超参数优化。 

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

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

相关文章

hide函数的使用方法

在编程中,我们常常需要控制元素的显示与隐藏。特别是在前端开发中,hide 函数是一个非常常见的操作,尤其是在 JavaScript 和 jQuery 中。它可以让你轻松地将元素从视图中隐藏,进而提升用户交互体验和页面的响应能力。本文将介绍如何…

【MySQL】基本操作 —— DML 与约束

目录 DML 基本介绍DML 常见操作添加数据 insert给指定字段添加数据给全部字段添加数据给指定字段批量添加数据给全部字段批量添加数据 修改数据 update删除数据 delete 约束基本概念约束操作主键约束添加单列主键添加多列主键(联合主键)修改表结构添加主…

nginx配置转发到另一个网站或另一台服务器的服务

需求背景 在一台服务器上安装了一个服务,不想使用ip:port方式,想使用域名打开这个服务的地址。 1. 配置转发 1.1 参数解释 listen:指定 Nginx 监听的端口。在上面的例子中,Nginx 监听 8888 端口。server_name:用于…

HarmonyOS三层架构实战

目录: 1、三层架构项目结构1.0、三层架构简介1.1、 common层(主要放一些公共的资源等)1.2、 features层(主要模块定义的组件以及图片等静态资源)1.3、 products层(主要放主页面层和一些主要的资源&#xff…

macOS homebrew - 切换源

https://mirrors.tuna.tsinghua.edu.cn/help/homebrew/ 环境变量中 添加: export HOMEBREW_BREW_GIT_REMOTE"https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/brew.git" export HOMEBREW_CORE_GIT_REMOTE"https://mirrors.tuna.tsinghua.edu.cn…

ETL中的实用功能以及数据集成方式

在企业数字化转型的进程中,数据集成扮演着至关重要的角色。它不仅是实现信息流动和系统协同的关键步骤,更是提升企业运营效率和决策能力的核心驱动力。ETL(Extract,Transform,Load)作为数据集成的重要工具&…

基于Springboot+Typst的PDF生成方案,适用于报告打印/标签打印/二维码打印等

基于SpringbootTypst的PDF生成方案,适用于报告打印/标签打印/二维码打印等。 仅提供后端实现 Typst2pdf-for-report/label/QR code github 环境 JDK11linux/windows/mac 应用场景 适用于定制化的报告模板/标签/条码/二维码等信息的pdf生成方案。通过浏览器的p…

OSG简介

OSG OpenSceneGraph (简称 OSG) 是一个开源的高性能3D图形库。 作用 它为开发者提供了一个强大的API,处理和渲染复杂的3D图形。 特点 OSG基于OpenGL构建,提供了对现代图形技术的支持,如着色器、纹理映射、光照模型等高级特性。 跨平台支…

简述下npm,cnpm,yarn和pnpm的区别,以及跟在后面的-g,--save, --save-dev代表着什么

文章目录 前言一、npm,cnpm,yarn和pnpm的基本介绍和特点1.npm (Node Package Manager)2. Yarn3. cnpm (China npm)4. pnpm 二、简述npm和pnpm 的存储方式和依赖数1.存储方式2.依赖树 三、两者依赖树的差异导致结果的对比四、简单说说-g,--sav…

三分钟掌握视频剪辑 | 在 Rust 中优雅地集成 FFmpeg

前言 在当今的短视频时代,高效的视频剪辑已成为内容创作者和开发者的迫切需求。无论是裁剪视频开头结尾、提取高光时刻,还是制作 GIF、去除广告,剪辑都是必不可少的一环。 然而,批量处理大量视频并非易事,常见的挑战…

Python 视频爬取教程

文章目录 前言基本原理环境准备Python安装选择Python开发环境安装必要库 示例 1:爬取简单直链视频示例 2:爬取基于 HTML5 的视频(以某简单视频网站为例) 前言 以下是一个较为完整的 Python 视频爬取教程,包含基本原理…

ollama搭建deepseek调用详细步骤

在使用 Ollama 搭建 DeepSeek 并投喂数据的过程中,你需要几个主要步骤来确保一切顺利进行。以下是详细的指南,涵盖了从准备工作到实际投喂数据的所有环节。 准备环境确保你的计算机具备足够的硬件资源: CPU: 至少8核处理器(推荐12核以上)内存: 至少32GB RAM(推荐64GB以上…

VSCode C/C++ 开发环境完整配置及常见问题(自用)

这里主要记录了一些与配置相关的内容。由于网上教程众多,部分解决方法并不能完全契合我遇到的问题,因此我选择以自己偏好的方式,对 VSCode 进行完整的配置,并记录在使用过程中遇到的问题及解决方案。后续内容也会持续更新和完善。…

如何搭建一个安全经济适用的TRS交易平台?

TRS(总收益互换)一种多方参与的投资方式,也是绝对收益互换(total return swap)的一种形式。 它是一种衍生合约,是一种金融衍生品的合约,是指交易双方在协议期间将参照资产的总收益转移给信用保…

SpringMVC(四)Restful软件架构风格

目录 ​编辑 API接口设计的架构风格 一 Dao层实现(处理数据库) 二 Sercice层实现(处理业务逻辑) 三 Controller层(处理http请求) 四 补充知识点 1 PathVariable - 路径变量 2 CrossOrigin(Origins …

Docker搭建MySQL主从服务器

一、在主机上创建MySQL配置文件——my.cnf master服务器配置文件路径:/data/docker/containers/mysql-cluster-master/conf.d/my.cnf slave服务器配置文件路径: /data/docker/containers/mysql-cluster-master/conf.d/my.cnf master服务配置文件内容 …

鸿蒙路由 HMrouter 配置及使用一

1、学习链接 HMRouter地址 https://gitee.com/hadss/hmrouter/blob/dev/HMRouterLibrary/README.md 2、工程配置 下载安装 ohpm install hadss/hmrouter 添加编译插件配置 在工程目录下的build-profile.json5中,配置useNormalizedOHMUrl属性为true (我这项目创…

智能家居分享

因为最近沉迷智能家居,所以来给大家分享一些轻松改变生活体验的小家具 1: 智能门锁 出门忘记带钥匙是许多人都遇到过的尴尬事,智能门锁的出现完美解决了这个困扰。智能门锁采用指纹识别、密码、刷卡、手机等多种开锁方式,大大增…

C#入门学习记录(四)C#运算符详解:掌握算术与条件运算符的必备技巧+字符串拼接

一、运算符概述 运算符是程序进行数学运算、逻辑判断的核心工具&#xff0c;C#中的运算符分为&#xff1a; 算术运算符 → 数学计算&#xff08; - * / %&#xff09; 条件运算符 → 三目判断&#xff08;?:&#xff09; 关系运算符 → 比较大小&#xff08;> < &#…

Linux中安装Git

安装Git 安装git&#xff0c;我们可以使用yum指令在线安装&#xff0c;这里&#xff0c;我们先对yum做一个简单介绍。 执行下面命令 #查看可用的git安装包 yum list git #安装git yum install -y git 查看git安装包 安装git 验证是否安装成功 安装完毕之后&#xff0c;我们…