Zero Time Waste: Recycling Predictions in Early Exit Neural Networks 论文阅读笔记

news2024/10/7 14:28:26

在这里插入图片描述

这是NIPS2021的一篇论文。论文的主题是解决early exit失败的时候IC的运算被浪费掉的问题。

背景介绍

  • early exit 是一个提高推理速度的研究方向。主要做法就是在网络的浅层特征上插入一些分支的分类器(Internal Classifier)。当以某个简单样本为输入的时候,如果其中某一层的分类器的置信度足够高,那么就无需继续前向传播到深层网络了,在此刻即可输出预测结果,从而加快推理了的速度。
  • 但是,很明显 ,这样的做法存在缺陷,如果置信度不够高,主干网络需要继续前向传播,而前面IC的计算就是无效计算,被浪费掉了。

相关工作

  • Yigitcan Kaya, Sanghyun Hong, and Tudor Dumitras. Shallow-deep networks: Understanding and mitigating network overthinking. In Proceedings of the International Conference on Machine Learning, ICML, pages 3301–3310, 2019.
  • Wangchunshu Zhou, Canwen Xu, Tao Ge, Julian McAuley, Ke Xu, and Furu Wei. BERT loses patience: fast and robust inference with early exit. arXiv:2006.04152, 2020.
  • Surat Teerapittayanon, Bradley McDanel, and Hsiang-Tsung Kung. Branchynet: Fast inference via early exiting from deep neural networks. In Proceedings of the International Conference on Pattern Recognition, ICPR, pages 2464–2469, 2016.
  • Simone Scardapane, Michele Scarpiniti, Enzo Baccarelli, and Aurelio Uncini. Why should we add early exits to neural networks? arXiv:2004.12814, 2020.
  • Konstantin Berestizshevsky and Guy Even. Dynamically sacrificing accuracy for reduced computation: cascaded inference based on softmax confidence. In Proceedings of the International Conference on Artificial Neural Networks, ICANN, pages 306–320. Springer, 2019.

正文

  • 可以直接用一个训练好的不带 early exit 的模型,模型的参数fix,只训练往上面插入的ICs,所以其实有点类似即插即用的方法。
  • 文章通过两个方式来重复利用前面的IC的计算:cascade connections 和 ensembling。网络结构如图所示
    在这里插入图片描述

cascade connections

  • 指的是上图右子图中的中间部分,即除了第一个IC外,每个IC的FC层的输入由前一个IC的FC层的输出和自身前面卷积层的输出拼接而成。这样的方式可以利用到前面IC的预测结果,从而实现没有浪费计算资源的目的(感觉很直观,不浪费就是在后面用上,用上的最简单方法就是concatenate到input中去,倒没有什么巧妙的感觉)
  • 值得注意的是,文章指出,必须阻断梯度通过skip connection反向回传到前面的IC,否则性能会出现下降。这个我觉得倒挺重要的,通过这种回传得到的梯度是极其复杂的,受后面IC块预测值的影响,而前面IC块的预测结果本质上不应该受后面IC块预测结果的影响,学习也无法使得前面的IC块自动抵消这种影响,不如不要通过skip-connection 回传梯度,仅仅通过cross-entropy去训练每个IC块

ensembling

  • ensemble其实指的是通过训练多个模型,融合多个模型的预测结果得到更加稳定的平均的预测结果这一trick。而既然ZTW模型自身已经能生成多个预测结果了,就可以直接对这些预测结果进行ensemble了。关键就是如何对这些从浅到深多个不同的预测结果进行合理的ensemble:
    在这里插入图片描述
  • 文章指出,使用几何平均比使用加权算术平均能够取得更好的效果。所以其实就是对多个IC的softmax输出做几何平均,几何平均的权重 w w w 是可学习的参数(文章指出可学习参数比人为定义取得了更好的效果);连乘外面的 b b b 是对不同类别的算数平均权重,也是可学习的参数; Z m Z_m Zm是归一化参数,使得某个IC的预测结果对各个类别的概率值加和为1
  • 实际实现中,为了防止连乘下溢,将公式修改为如下形式:
    在这里插入图片描述

early exit 判断

  • 简单的人为阈值判断:
    在这里插入图片描述
    如果上述条件成立,那么不需要再继续前向传播,此时的IC的预测结果即为模型的预测结果。

实验结果

  • 实验结果显示,模型在相当于原浮点计算量25% 50% 75%计算量的时候都取得了不太低的准确率,说明模型能够在大幅降低运算量的同时保持高水准的准确率。
    在这里插入图片描述

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

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

相关文章

SpringBoot项目实现发布订阅模式

文章目录自己实现观察者模式观察者被观察者测试利用Spring精简观察者实现类:定义成Bean被观察者:自动注入BeanSpring Event实现发布/订阅模式自定义事件事件监听者实现ApplicationListener接口使用EventListener注解异步和自定义线程池异步执行自定义线程…

SSM框架-Spring(二)

目录 1 手写spring框架 2 Spring IoC注解式开发 2.1 回顾注解 2.2 声明Bean的注解 2.3 Spring注解的使用 2.4 选择性实例化Bean 2.5 负责注入的注解 2.5.1 Value 2.5.2 Autowired与Qualifier 2.5.3 Resource 2.6 全注解式开发 3 JdbcTemplate 3.1 环境准备 3.2 新…

深化服务成工业品电商角逐新焦点

配图来自Canva可画 随着产业互联网的持续深入,TO B赛道就变得愈发火热起来,除了时下比较兴盛的各类SaaS应用之外,工业品电商赛道也再次汇集了外界的众多关注。据日前发布的《中国工业品数字化发展白皮书2022》显示,2022年上半年工…

应急响应-日志分析

Windows日志分析 日志概述在Windows系统中,日志文件包括:系统日志、安全性日志、应用程序日志: 在Windows Vista/windwos 7/windows 8/windows 10/windows server 2008及以上版本中: 系统日志的存放位置:%SystemRoot%\System32\…

【多线程 (一)】实现多线程的三种方式、线程休眠、线程优先级、守护线程

文章目录多线程1.1简单了解多线程1.2并发和并行1.3进程和线程1.4实现多线程方式一:继承 Thread类1.5实现多线程的方式二:实现 Runnable接口1.6实现多线程方式三:实现Callable接口1.7三种实现方式的对比1.8设置和获取线程名称1.9线程休眠1.10线…

电商网站运营的 7 大关键指标

本文介绍电商网站用户运营转化的相关指标体系,通过对这些指标的统计、监测和分析,可以及时发现电商运营的问题,以便有效及时改进和优化,提升电商转化率和销售额。 其中,不同类别指标对应电商运营的不同环节&#xff0…

02 使用jenkins实现K8s持续集成

1.项目架构的代码仓库使用gitlab托管 架构描述我不打算用过多文字描述了,来我们一起直接看图吧....二.将测试代码上传到gitlab 1.注册gitlab账户 此处使用本地搭建仓库2.创建仓库名称为"idiaoyan" 如下图所示,安装图解方式创建相应的用户即…

基于Multisim的LC正弦波振荡器的设计与仿真

目 录 1、绪论 1 1.1选题背景及意义 1 1.2国内外研究现状 1 1.3研究主要内容 2 2、系统整体设计 3 2.1开发环境Multisim的介绍 3 2.2方案比较与论证 4 2.2.1振荡电路方案选择 4 2.2.2 控制电路设计方案 4 2.3系统整体设计 5 3、工作原理、硬件电路的设计和参数的计算 6 3.1 反馈…

2022中科院分区表即将公布,今年迎来较大变化

再有一段时间,备受科研人员关注的中科院分区表就要公布了。 据中科院文献情报中心分区表小编今天留言透露,今年的分区表预计11月底或12月初上线。 不少科研人已经开始期待了 。和往年相比,今年的分区表将会有较大变化。 只有升级版期刊分区…

Java多线程(一)

目录 一、基本概念 程序、进程、线程 单核CPU和多核CPU 并行与并发 使用多线程的优点 二、线程的创建与使用 线程的创建和启动 Thread类 Thread类的特性 Thread类的构造器 API中创建线程的两种方式 创建线程方式一:继承Thread类 创建继承Thread类线程方…

魔众文库系统 v3.5.0 预览页数调整,批量操作命令,多处优化

魔众文库系统基于文档系统知识,建立平台与领域,打造流量、用户、付费和变现的闭环,帮助您更好的搭建文库系统。 魔众文库系统发布v3.5.0版本,新功能和Bug修复累计23项,预览页数调整,批量操作命令&#xff…

Java基础深化和提高 ---- 反射技术

目录 反射机制介绍 什么是反射 反射的作用 创建对象过程 Java创建对象的三个阶段 创建对象时内存结构 反射的具体实现 创建Users类 通过getClass()方法获取Class对象 通过.class 静态属性获取Class对象 通过forName()获取Class对象 获取类的构造方法 通过构造方法创…

设计模式之享元模式(十)

目录 1. 享元模式概述 2. 享元模式在Integer中的应用 1. 享元模式概述 享元模式(Flyweight Pattern) 也叫 蝇量模式,运用共享技术有效地支持大量细粒度的对象。简单来说就是共享对象。 享元模式能够解决重复对象的内存浪费的问题&#xff…

Python3,os模块还可以这样玩,自动删除磁盘文件,非必要切勿操作。

删除磁盘下所有的文件1、引言2、代码实战2.1 模块介绍2.2 获取盘符2.3 获取盘符下的目录2.3.1 os.listdir()2.3.2 os.environ2.3.3 os.getenv()2.4 删除文件2.4.1 删除指定文件下文件2.4.2 删除所有文件下文件3、总结1、引言 小屌丝:鱼哥, 请教你个问题…

Flink基础篇(基础算子+WaterMarker)

Flink高可用HA 依赖于zkFlink ON Yarn两种模式Session模式Per-Job模式前置说明Flink原理数据在两个operator算子之间传递的时候有两种模式:Operator ChainTaskSlot And SharingFlink执行图(ExecutionGraph)APISourceTransformationSink控制台…

【图像识别-车牌识别】基于BP神经网络求解车牌识别问题含GUI界面和报告

✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。 🍎个人主页:Matlab科研工作室 🍊个人信条:格物致知。 更多Matlab仿真内容点击👇 智能优化算法 …

11个销售心理学方法,帮你搞定客户!

销售心理学中,站在客户的角度,客户都会有以下几个疑问: 1、你是谁? 2、你要跟我介绍什么? 3、你介绍的产品和服务对我有什么好处? 4、如何证明你介绍的是真实的? 5、为什么我要跟你买&…

Linux学习之expect操作详解

一、expect安装介绍 1.expect命令安装 安装语句:yum install expect 2.expect命令含义 expect是一种脚本语言,它能够代替人工实现与终端的交互,主要应用于执行命令和程序时,系统以交互形式要求输入指定字符串,实现交互通信。 …

疟原虫蛋白复合物疫苗科研

疟疾是一种蚊媒疾病,感染者通常会出现发烧、发冷和流感样疾病。如果不及时治疗,严重者甚至会危及生命。世卫组织新近发布的数据表明,2019 年全球估计发生 2.29 亿疟疾病例,死于该病的人数超过 40 万例。 图 1. 2000 年有病例的国…

Flutter 应用程序中的 Quick Actions

Flutter 应用程序中的 Quick Actions 原文 https://medium.com/vijay-r/quick-actions-in-flutter-app-75b63acc420b 前言 在这篇文章中,我们将讨论如何添加 Quick Actions 在我们的 Flutter 应用程序,使我们的应用程序更加友好的用户。 正文 插件 quick…