参考代码:LD

1. 概述

导读:这篇文章研究的是检测场景下的知识蒸馏方案。在该场景下的蒸馏有采取直接将对应特征图匹配到对应维度之后做特征图差异最小化,也有使用Teacher输出的GT作为引导排除大量背景等无关信息的。在这篇文章中参考和借鉴了在原分类网络中做蒸馏的思想,也就是在网络输出概率分布软化之后做蒸馏。因而这篇文章就使用到GFocal的边界框回归方案,这样就可以直接在输出的概率分布上做蒸馏,从而避免了Teacher和Student网络结构不对应带来的匹配问题,因此更加灵活。在实际进行蒸馏的时候文章指出直接将大小模型进行蒸馏其实是次优的策略,因而提出了一种渐进蒸馏的方案。除了传统上将大小模型进行蒸馏,文章也指出可以使用Self-Distillation的方法实现更加稳定的训练和达到更好的结果。

在检测场景下会遇到一些边界模糊的场景,如下图中红色的虚线圈处:

直接使用传统的只是蒸馏策略是很难显式捕获到这些信息的,需要对其进行建模,而GFocal正是完成此项任务的,因而这篇文章就是在GFocal输出概率分布基础上实现蒸馏。

2. 方法设计

2.1 Localization Distillation(LD)

在GFocal中边界框的输出是区间上概率分布,每条边的回归值可以描述为离散积分的形式(具体请参考GFocal论文):
e^=eTp=∑i=1neiPr(ei),e∈{l,r,b,t}\hat{e}=e^Tp=\sum_{i=1}^ne_iPr(e_i),\ e\in\{l,r,b,t\}e^=eTp=i=1∑n​ei​Pr(ei​), e∈{l,r,b,t}
则这里的概率分布就可以套用在分类中的蒸馏,直接加上软化因子进行概率分布上的蒸馏,避免了需要网络维度适配的问题。其蒸馏的示意图如下:

上文中提到的软化因子τ\tauτ对蒸馏网络性能的影响如下:

2.2 Teacher Assistant Strategy

文章指出直接将大小模型进行蒸馏其结果是次优的,对此可以在大小模型中间线性划分出几个不同大小的模型(也就是Teacher Assistant),之后从大模型沿着这些设计出来的模型逐渐进行蒸馏,但是这样的操作会消耗很多的时间和算力。也就是看下图的形式,从模型T到S设计出从大到小变化的一些网络{A1,A2,…,Am}\{A_1,A_2,\dots,A_m\}{A1​,A2​,…,Am​},然后从A1A_1A1​到AmA_mAm​逐渐蒸馏。

下表展示了逐渐蒸馏与直接进行蒸馏得到的结果对比:

2.3 Self-LD

除了实现大小模型上的蒸馏,其实还可以使用自我蒸馏的方式。这样做的好处是可以得到更加稳定的蒸馏结果和更好的性能。在下面给出这方面的一些文章以方便理解:

REF1:微调预训练模型的新姿势——自集成和自蒸馏
Improving BERT Fine-Tuning via Self-Ensemble and Self-Distillation
该提出了两种自蒸馏的方式:Self-Distillation-Averaged(SDA)和Self-Distillation-Voted(SDV)。在SDA中,首先计算出过去K个time step参数的平均值作为Teacher Model。在SDV中,将过去K个time step的参数视为K个Teacher Model。SDA的目标函数计算方式如下:
Lθ(x,y)=CE(BERT(x,θ),y)+λMSE(BERT(x,θ),BERT(x,θˉ))L_{\theta}(x,y)=CE(BERT(x,\theta),y)+\lambda MSE(BERT(x,\theta),BERT(x,\bar{\theta}))Lθ​(x,y)=CE(BERT(x,θ),y)+λMSE(BERT(x,θ),BERT(x,θˉ))
其中,θˉ=1k∑k=1Kθt−k\bar{\theta}=\frac{1}{k}\sum_{k=1}^K\theta_{t-k}θˉ=k1​∑k=1K​θt−k​。SDV的目标函数计算方式如下:
Lθ(x,y)=CE(BERT(x,θ),y)+λMSE(BERT(x,θ),BERT(x,1k∑k=1KBERT(x,θt−k)))L_{\theta}(x,y)=CE(BERT(x,\theta),y)+\lambda MSE(BERT(x,\theta),BERT(x,\frac{1}{k}\sum_{k=1}^KBERT(x,\theta_{t-k})))Lθ​(x,y)=CE(BERT(x,θ),y)+λMSE(BERT(x,θ),BERT(x,k1​k=1∑K​BERT(x,θt−k​)))

REF2:论文串烧:Self-Knowledge Distillation
论文列表:

  1. Self-Knowledge Distillation: A Simple Way for Better Generalization
  2. Be Your Own Teacher: Improve the Performance of Convolutional Neural Networks via Self Distillation

增加了Self-LD与未增加的区别见下表所示:

3. 实验结果

《LD:Localization Distillation for Object Detection》论文笔记相关推荐

  1. 论文笔记之Understanding and Diagnosing Visual Tracking Systems

    Understanding and Diagnosing Visual Tracking Systems 论文链接:http://dwz.cn/6qPeIb 本文的主要思想是为了剖析出一个跟踪算法中到 ...

  2. 《Understanding and Diagnosing Visual Tracking Systems》论文笔记

    本人为目标追踪初入小白,在博客下第一次记录一下自己的论文笔记,如有差错,恳请批评指正!! 论文相关信息:<Understanding and Diagnosing Visual Tracking ...

  3. 论文笔记Understanding and Diagnosing Visual Tracking Systems

    最近在看目标跟踪方面的论文,看到王乃岩博士发的一篇分析跟踪系统的文章,将目标跟踪系统拆分为多个独立的部分进行分析,比较各个部分的效果.本文主要对该论文的重点的一个大致翻译,刚入门,水平有限,如有理解错 ...

  4. 目标跟踪笔记Understanding and Diagnosing Visual Tracking Systems

    Understanding and Diagnosing Visual Tracking Systems 原文链接:https://blog.csdn.net/u010515206/article/d ...

  5. 追踪系统分模块解析(Understanding and Diagnosing Visual Tracking Systems)

    追踪系统分模块解析(Understanding and Diagnosing Visual Tracking Systems) PROJECT http://winsty.net/tracker_di ...

  6. ICCV 2015 《Understanding and Diagnosing Visual Tracking Systems》论文笔记

    目录 写在前面 文章大意 一些benchmark 实验 实验设置 基本模型 数据集 实验1 Featrue Extractor 实验2 Observation Model 实验3 Motion Mod ...

  7. Understanding and Diagnosing Visual Tracking Systems

    文章把一个跟踪器分为几个模块,分别为motion model, feature extractor, observation model, model updater, and ensemble po ...

  8. CVPR 2017 SANet:《SANet: Structure-Aware Network for Visual Tracking》论文笔记

    理解出错之处望不吝指正. 本文模型叫做SANet.作者在论文中提到,CNN模型主要适用于类间判别,对于相似物体的判别能力不强.作者提出使用RNN对目标物体的self-structure进行建模,用于提 ...

  9. ICCV 2017 UCT:《UCT: Learning Unified Convolutional Networks forReal-time Visual Tracking》论文笔记

    理解出错之处望不吝指正. 本文模型叫做UCT.就像论文题目一样,作者提出了一个基于卷积神经网络的end2end的tracking模型.模型的整体结构如下图所示(图中实线代表online trackin ...

  10. CVPR 2018 STRCF:《Learning Spatial-Temporal Regularized Correlation Filters for Visual Tracking》论文笔记

    理解出错之处望不吝指正. 本文提出的模型叫做STRCF. 在DCF中存在边界效应,SRDCF在DCF的基础上中通过加入spatial惩罚项解决了边界效应,但是SRDCF在tracking的过程中要使用 ...

最新文章

  1. Fast construction of FM-index for long sequence reads
  2. 2018.3.31 设计模式之生成器模式详解及例子(对象创建型模式)
  3. RocketMQ源码:NameSrv启动全过程详解
  4. 我用着不舒服的东西, 就TM是不合理的东西!!!
  5. 【Java基础】 JQuery的常用操作
  6. iphone短信尚未送达_iPhone开启这个功能,从此告别垃圾短信骚扰!
  7. 红橙Darren视频笔记 bsdiff bspatch 使用(Linux下)
  8. 线程控制、如何给面试官描述线程不安全的情况?模拟黄牛抢票展现不安全的情况及解决方式、互斥锁加锁解锁
  9. 年薪30W的软件测试“老司机”工作经验
  10. 基于JAVA+SpringMVC+Mybatis+MYSQL的医院挂号系统
  11. 编码原则:意外情况的注释
  12. qtcreator中常用快捷键总结
  13. 怎样查找某个sp中哪条sql语句存在性能问题。
  14. 餐饮后厨计算机应用,美萍餐饮管理系统,餐饮管理软件,餐饮软件,酒店收银系统,饭店点菜系统 --- 管理软件 美萍是专家!...
  15. AKKA:大数据下的并发编程模型
  16. 有限元分析简单实例之四杆结构(matlab)
  17. 解决“ssh服务器拒绝了密码 请再试一次”问题
  18. 华为MH5000模块知识应用简介
  19. turtle设置背景图片
  20. 百度网盘网页倍速播放

热门文章

  1. 华硕顽石第五代FL8000拆机教程
  2. RNA 4. SCI 文章中基于TCGA 差异表达之 edgeR
  3. WireMock 让你轻松模拟API
  4. POJ 2785: 4 Values Whose Sum is 0
  5. 始祖双碳新闻 | 2022年8月26日碳中和行业早知道
  6. 关于MySQL数据库当中,字段(或栏位)采用中文命名时的掉坑经历
  7. 浅谈 Mock Server
  8. ROS入门(一)——ROS安装(vmware16+ubuntu20.04+ROS-Noetic)
  9. 博雅笔试记录:输入最小的数
  10. Win7 Paimei 安装