Boosted Dynamic Neural Networks

2024-02-22 14:04

本文主要是介绍Boosted Dynamic Neural Networks,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Boosted Dynamic Neural Networks

  • 论文链接:https://arxiv.org/pdf/2211.16726.pdf
  • 源码链接:https://github.com/SHI-Labs/Boosted-Dynamic-Networks

简介

尽管深度学习模型在各种计算机视觉任务上取得成功,但在实际应用中部署模型时,必须考虑计算资源的限制和推理效率。作为深度学习应用一个关键话题,高效深度学习最近得到了广泛的研究,包括高效架构设计,网络剪枝和网络量化。与对应的大baseline模型相比,这些轻量化模型通常表现出显著的推理加速,且性能下降很小或可以忽略不计。
动态神经网络是高效深度学习模型另一个分支。实际上轻量级模型运行速度更快,性能较低,而大模型运行速度较慢,性能较高。给定特定应用场景中计算资源预算,深度学习从业者通常需要在效率和性能之间找到适当的平衡点。然而,预算在许多情况下经常是动态变化的,例如,当计算资源大量被其他应用程序占用或边缘设备电池电量在一天内发生变化时。因此,在给定不同资源预算和性能要求的情况下,动态神经网络(DNN)可以在不同平衡点运行是可取的。
目前一堆各种动态方法进行了广泛的研究,包括动态模型架构、动态模型参数、动态空间感知推理等等。本文重点关注图像分类任务中早期存在的动态神经网络(EDNN),这是最广泛探索的动态架构方法之一。
EDNN的自适应推理属性来源于其可调整的层深度。在推理时,当计算预算紧张或输入示例容易识别时,EDNN在浅分类器处退出。相反,模型运行更多的层,直到最后一个分类器或给出可靠预测的分类器。为了训练这种EDNN模型,现有的方法通常对所有分类器进行联合优化。给定一批训练样本,模型将运行所有层和分类器并对损失进行累计和汇总。然后,总损失梯度反向传播到所有层。上述训练程序一个问题是训练-测试不匹配问题,该问题Dynamic neural networks: A survey中进行了讨论。在训练阶段,模型中所有分类器都会在所有训练样本上进行优化,而在推理阶段,并非所有分类器都能看到所有类型的测试数据。当计算资源紧张或输入容易处理时,只执行浅层与分类器。换句话说,在训练和测试阶段存在数据分布差距。尽管简单的例子也可能有助于在训练阶段对深度分类器进行正则化,但深度分类器设计不应过于关注于这些这些例子,以避免分布失配问题。
为了缓解训练-测试不匹配问题,本文提出了一种新的早退出动态网络,称为Boosted Dynamic Neural Network(BoostNet),其灵感来自著名的梯度提升(Gradient boosting)理论。假定最终模型是弱预测模型的加权和,梯度增强算法通过迭代最小化损失函数在函数空间中用梯度下降训练每个弱模型。在每个训练步骤中,选择指向损失函数负梯度的模型作为新的弱模型。 将梯度增强纳入EDNN学习的一个简单方法是世界遵循传统方法梯度提升框架迭代训练分类器。 然而这在实践中并不奏效。本文推测主要有两个原因。第一个原因是较深的分类器与较浅的分类器共享网络层,因此分类器在网络参数方面并不独立。第二个原因时多层神经网络不是弱预测模型。这两个特性不符合梯度增强的假设。因此,以梯度增强的方式简单地训练分类器是行不通的。
本文提出了BoostNet,它具有类似的梯度提升思想,但以适合动态神经网络的方式进行组织和训练。为了有效地训练模型,本文提出了三种训练技术。首先,对所有分类器进行联合优化。以梯度提升的方式训练弱分类器将导致整个模型的次优解。另一方面,在每个训练批上训练分类器是耗时的。因此,本文通过联合优化训练所有分类器。 其次,本文提出了一种预测重加权策略,在使用当前分类器的集成成员之前重新缩放先前分类器集合。如果训练样本的训练损失足够大,将其定义为有效样本。本文实验表明,当网络进入更深的分类器时,有效训练数据的百分比会降低,为了避免深度分类器缺乏训练数据,使用温度来重新缩放先前分类器集合,以削弱其预测。第三,本文将梯度重新缩放技术应用于网络梯度,以约束不同层深度的参数梯度。

本文方法

总览

EDNN模型通常由多个子模型组成。在推理时,给定一个输入图像,本文运行模型直到第一个分类器的最后一层, 以获得粗糙的预测。如果预测结果确信高于预定阈值,则可以尽在第一分类器处终止推理。否则,第二分类器将对来自第一分类器的特征执行。它有望给出更自信的预测,纠正第一个分类器所犯的错误。如果没有重复上述过程,直到某个分类器给出足够有信心的预测,或者达到最后一个分类器。为了训练模型,现有的EDNN方法在不考虑上述自适应推理特性的情况下联合训练所有分类器。考虑到N分类器的EDNN模型,总体任务损失为:
L ( x ) = ∑ n = 1 N w n L n ( F n ( x ) , y ) L(x)=\sum_{n=1}^{N}w_{n}L_{n}(F_{n}(x),y) L(x)=n=1NwnLn(Fn(x),y)
F n ( x ) F_{n}(x) Fn(x) w n w_{n} wn是第n分类器预测和对总损失的贡献。这使得所有分类器以相同方式处理每个训练样本。然而,在推理时,模型将在容易输入的早期分类器处退出,因此深度分类器将尽在困难输入上执行。这种训练-测试不匹配问题将导致模型训练和测试阶段之间的数据分布差距,使训练后的模型变得次优。重新思考上述推断过程,本文发现EDNN模型的内在性质时,深层次的分类器通过纠正其错误来补充其先前的分类器。
首先简单介绍梯度提升理论。给定输入 x x x及其输出 y y y,梯度提升是找到一些函数 F ( x ) F(x) F(x)近似输出y。 F F F是多个基本分类器之和的形式:
F ( x ) = ∑ n = 1 N f n ( x ) + C F(x)=\sum_{n=1}^{N}f_{n}(x)+C F(x)=n=1Nfn(x)+C
梯度增强按顺序优化每个弱分类器:
F 0 ( x ) = arg ⁡ min ⁡ α L 0 ( α , y ) F n ( x ) = F n − 1 ( x ) + arg ⁡ min ⁡ f n ∈ F L n ( F n − 1 ( x ) + f n ( x ) , y ) \begin{aligned} F_{0}(x)&=\arg\min_{\alpha}L_{0}(\alpha,y)\\ F_{n}(x)&=F_{n-1}(x)+\arg\min_{f_{n}\in \mathcal{F}}L_{n}(F_{n-1}(x)+f_{n}(x),y)\\ \end{aligned} F0(x)Fn(x)=argαminL0(α,y)=Fn1(x)+argfnFminLn(Fn1(x)+fn(x),y)
给定任意损失函数 L n L_{n} Ln直接求解最优 f n f_{n} fn是困难的。梯度提升方法实现对上述的一阶估计:
f n ( x ) = λ ∇ F n − 1 L n ( F n − 1 ( x ) , y ) f_{n}(x)=\lambda \nabla_{F_{n-1}}L_{n}(F_{n-1}(x),y) fn(x)=λFn1Ln(Fn1(x),y)
受到梯度提升启发,本文将EDNN分类器组织成类似的结构。第n块最终输出是第n块及其所有先前块的输出的线性组合。与梯度提升中的一阶近似不同,本文通过多步的小批梯度下降直接优化神经网络 f n f_{n} fn的参数 θ n \theta_{n} θn
θ n k = θ n k − 1 − λ ∇ θ L n ( x ; θ n k − 1 ) ∇ θ L n ( x ; θ n k − 1 ) = ∇ θ L n ( F n − 1 ( x ) + f n ( x ; θ n k − 1 ) , y ) \begin{aligned} \theta_{n}^{k}&=\theta_{n}^{k-1}-\lambda\nabla_{\theta}L_{n}(x;\theta_{n}^{k-1}) \\ \nabla_{\theta}L_{n}(x;\theta_{n}^{k-1})&=\nabla_{\theta}L_{n}(F_{n-1}(x)+f_{n}(x;\theta_{n}^{k-1}),y) \end{aligned} θnkθLn(x;θnk1)=θnk1λθLn(x;θnk1)=θLn(Fn1(x)+fn(x;θnk1),y)
F n − 1 ( x ) F_{n-1}(x) Fn1(x)梯度被禁用,即使它与 F n F_{n} Fn共享参数子集。

最小批联合优化

遵循传统的梯度提升方法,一个直接的优化过程是依次训练N个分类器,即训练分类器 f n f_{n} fn直到收敛,固定其分类头,然后训练 f n + 1 f_{n+1} fn+1。然而这使得所有比 f n + 1 f_{n+1} fn+1浅的分类器在训练 f n + 1 f_{n+1} fn+1时恶化,因为所有分类器分享相同的网络backbone。另一方面,固定共享参数之训练 f n + 1 f_{n+1} fn+1不共享部分将损害它表示能力。相反。本文采用了小批联合优化架构。给定一小批训练数据,传入整个BoostNet获得N个预测输出。然后,累加了N个输出上的训练损失,并进行一次反向传播。
L ( x ) = ∑ n = 1 N w n L n ( stop_grad ( F n − 1 ( x ) + f n ( x ) ) , y ) L(x)=\sum_{n=1}^{N}w_{n}L_{n}(\text{stop\_grad}(F_{n-1}(x)+f_{n}(x)),y) L(x)=n=1NwnLn(stop_grad(Fn1(x)+fn(x)),y)

梯度重缩放

与Anytime Recognition with Routing Convolutional Networks类似,本文使用梯度重缩放操作重新缩放来自不同网络分支的梯度。本文在每个分支中乘以一个标量来重新缩放通过它的梯度。使用该操作,整体损失梯度 L L L描述为:
∂ L ∂ b n = 1 N − n + 1 ∑ i = n N ∂ L i ∂ b n \frac{\partial L}{\partial b_{n}}=\frac{1}{N-n+1}\sum_{i=n}^{N}\frac{\partial L_{i}}{\partial b_{n}} bnL=Nn+11i=nNbnLi
即使 N N N是一个很大的数字,它也是有界的,给出了一个较弱的假设 ∂ L i / ∂ b n \partial L_{i}/\partial b_{n} Li/bn是有界的。

基于温度的预测重缩放

当在上述过程中进行训练时,观察到一个问题,即较深的分类器与较浅的分类器相比没有表现出太大的性能改进。当在上述过程中进行训练时,观察到一个问题,即较深的分类器与较浅的分类器相比没有表现出太大的性能提升,尽管模型大小增加了很大的幅度。图3a中显示每个分类器的训练样本数量。如果训练样本的训练损失大于某个阈值时,则训练样本是有效的。这里,将v设置为第一个分类器在每批训练数据中所有训练损失的第10个百分比,即假设第一个分类器总是具有90%的有效训练样本。图中发现较浅较浅的分类器具有更多有效的训练数据,而较深的分类器具有较少的训练数据。如图3b所示,本文展示了不同分类器的批平均训练损失。与图3a一致,较深的分类器具有较小的训练损失。从另一个角度来看,这可以通过以下事实解释,即更深的分类器具有更大的模型大小,从而具有更高的表示能力,但这也表明更深的分类器需要更具挑战性的训练样本,而不是学习较浅分类器的容易残差。为了解决这个问题,本文来作为 F n F_{n} Fn的集成成员之前,将第n-1分类器的输出乘以温度 t n t_{n} tn
F n = t n F n − 1 + f n F_{n}=t_{n}F_{n-1}+f_{n} Fn=tnFn1+fn
F n − 1 , F n F_{n-1},F_{n} Fn1,Fn是softmax前预测logits。设置所有温度 { t n } ∣ n = 1 N \{t_{n}\}|_{n=1}^{N} {tn}n=1N为0.5.本文将该技术称为预测重加权。这样浅分类器 F n − 1 F_{n-1} Fn1的集成输出相当于在基础输出中使用之前被削弱。
在这里插入图片描述

这篇关于Boosted Dynamic Neural Networks的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/735477

相关文章

MonoHuman: Animatable Human Neural Field from Monocular Video 翻译

MonoHuman:来自单目视频的可动画人类神经场 摘要。利用自由视图控制来动画化虚拟化身对于诸如虚拟现实和数字娱乐之类的各种应用来说是至关重要的。已有的研究试图利用神经辐射场(NeRF)的表征能力从单目视频中重建人体。最近的工作提出将变形网络移植到NeRF中,以进一步模拟人类神经场的动力学,从而动画化逼真的人类运动。然而,这种流水线要么依赖于姿态相关的表示,要么由于帧无关的优化而缺乏运动一致性

论文精读-Supervised Raw Video Denoising with a Benchmark Dataset on Dynamic Scenes

论文精读-Supervised Raw Video Denoising with a Benchmark Dataset on Dynamic Scenes 优势 1、构建了一个用于监督原始视频去噪的基准数据集。为了多次捕捉瞬间,我们手动为对象s创建运动。在高ISO模式下捕获每一时刻的噪声帧,并通过对多个噪声帧进行平均得到相应的干净帧。 2、有效的原始视频去噪网络(RViDeNet),通过探

A Comprehensive Survey on Graph Neural Networks笔记

一、摘要-Abstract 1、传统的深度学习模型主要处理欧几里得数据(如图像、文本),而图神经网络的出现和发展是为了有效处理和学习非欧几里得域(即图结构数据)的信息。 2、将GNN划分为四类:recurrent GNNs(RecGNN), convolutional GNNs,(GCN), graph autoencoders(GAE), and spatial–temporal GNNs(S

OpenSNN推文:神经网络(Neural Network)相关论文最新推荐(九月份)(一)

基于卷积神经网络的活动识别分析系统及应用 论文链接:oalib简介:  活动识别技术在智能家居、运动评估和社交等领域得到广泛应用。本文设计了一种基于卷积神经网络的活动识别分析与应用系统,通过分析基于Android搭建的前端采所集的三向加速度传感器数据,对用户的当前活动进行识别。实验表明活动识别准确率满足了应用需求。本文基于识别的活动进行卡路里消耗计算,根据用户具体的活动、时间以及体重计算出相应活

【硬刚ES】ES基础(十三)Dynamic Template和Index Template

本文是对《【硬刚大数据之学习路线篇】从零到大数据专家的学习指南(全面升级版)》的ES部分补充。

Complex Networks Package for MatLab

http://www.levmuchnik.net/Content/Networks/ComplexNetworksPackage.html 翻译: 复杂网络的MATLAB工具包提供了一个高效、可扩展的框架,用于在MATLAB上的网络研究。 可以帮助描述经验网络的成千上万的节点,生成人工网络,运行鲁棒性实验,测试网络在不同的攻击下的可靠性,模拟任意复杂的传染病的传

Convolutional Neural Networks for Sentence Classification论文解读

基本信息 作者Yoon Kimdoi发表时间2014期刊EMNLP网址https://doi.org/10.48550/arXiv.1408.5882 研究背景 1. What’s known 既往研究已证实 CV领域著名的CNN。 2. What’s new 创新点 将CNN应用于NLP,打破了传统NLP任务主要依赖循环神经网络(RNN)及其变体的局面。 用预训练的词向量(如word2v

【机器学习】生成对抗网络(Generative Adversarial Networks, GANs)详解

🌈个人主页: 鑫宝Code 🔥热门专栏: 闲话杂谈| 炫酷HTML | JavaScript基础 ​💫个人格言: "如无必要,勿增实体" 文章目录 生成对抗网络(Generative Adversarial Networks, GANs)详解GANs的基本原理GANs的训练过程GANs的发展历程GANs在实际任务中的应用小结 生成对

Show,Attend and Tell: Neural Image Caption Generation with Visual Attention

简单的翻译阅读了一下 Abstract 受机器翻译和对象检测领域最新工作的启发,我们引入了一种基于注意力的模型,该模型可以自动学习描述图像的内容。我们描述了如何使用标准的反向传播技术,以确定性的方式训练模型,并通过最大化变分下界随机地训练模型。我们还通过可视化展示了模型如何能够自动学习将注视固定在显着对象上,同时在输出序列中生成相应的单词。我们通过三个基准数据集(Flickr9k,Flickr

Image Transformation can make Neural Networks more robust against Adversarial Examples

Image Transformation can make Neural Networks more robust against Adversarial Examples 创新点 1.旋转解决误分类 总结 可以说简单粗暴有效