0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

一文全面概览动态神经网络

中科院长春光机所 来源:AIWalker 作者:Happy 2021-06-02 12:58 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

在过去了几年里,动态神经网络非常热,热到每周都能看到几篇不错的动态神经网络论文上传到arxiv。那么什么是动态神经网络呢?它有有哪些类型呢?它的研究现状如何呢?接下来,就由Happy带领大家简单回顾一下咯。

Abstract

Abstract 动态神经网络已成为深度学习新型研究课题。相比静态模型(固定计算图、固定参数),动态网络可以按照不同输入自适应调整自身结构或者参数量,导致了精度、计算效率、自适应等方面的显著优势。

本文对动态神经网络进行了系统性的综述并将其分为三大类:

instance-wise 它采用数据依赖的结构或参数处理每个样例;

spatial-wise 它采用与图像空域位置相关的方式进行自适应计算;

temporal-wise 它验证序列数据(比如视频、文本)的时间维度进行自适应推理。

相比静态网络,动态神经网络有这样几个优势:

Efficiency

Representation power

Adaptiveness

Compatibility

Generality

Interpretability

本文对动态网络的几个重要组成部分(比如结构设计、决策机制、优化技术以及应用)进行了系统性研究,最后我们对该领域的开问题以及未来研究方向进行了讨论。

Instance-wise

实例级动态神经网络旨在通过数据依赖方式处理不同样例,它一般从以下两个角度出发进行设计:

基于不同样例分配适当计算量达到调整网络架构的目的,因此可以在easy样例上降低冗余计算,进而达到改善推理效率的目的;

针对不同样例调整网络参数且保持计算图不变,通过小幅提升计算量达到提升模型表达能力的目的。

接下来,我们将从以上两个角度出发,对现有实例级动态神经网络进行介绍。

Dynamic Architectures

假设不同的输入具有不同的计算需求,一种自然的方式:根据输入动态调整推理时的架构。具体来说,我们可以调整网络的深度、宽度或者动态路径。具有动态架构的网络不仅可以节省对于简单样例冗余计算,而且保证对于困难样例的表达能力。相比静态模型的加速技术,该方案可以带来显著的效率优势。

Dynamic Depth

为识别“困难”样例,目前CNN的结构变得越来越深,一种直观的解决方案:在推理阶段采用动态网络深度减少冗余计算。关于动态深度有两种实现方式:

Early exiting:对于“简单”样例提前退出。常见“早退”方案有以下三种形式:

Cascading DNNs,见下图a。

Intermediate Classifier,见下图b;

Multi-scale architecture with early exits,见Fig2-a。

Layer skipping:进行自适应的中间特征跳过。常见的“层跳过”有以下几种形式:

The halting score 见下图a;

Gating Function,见下图b;

Policy Network,见下图c。

Dynamic Width

动态宽度是动态深度之外的另一种选择:尽管每个层都需要执行,但它的多个成分(比如神经元、分支或者通道)将根据输入自适应选择。

给出了几个常见动态宽度方案:

Dynamic width of FC Layers

Mixture of Experts(MoE),见上图a和b;

Dynamic channel pruning in CNNs,

Dynamic Routing

除了动态深度、动态宽度外,还有一种动态路径的方案(见上面图c):SuperNet中的计算路径根据输入自适应调整。关于SuperNet及其路径决策主要有以下几种方案:

Path selection in multi-branch structures

Neural trees and tree-structured networks

Others,主要见诸于NAS

Dynamic Parameters

尽管前面提到的动态架构可以按照不同样例自适应调整推理图并取得有效计算量分配,但它们通常需要特定的架构设计、特定的训练策略或者精心的超参数调整。

那么另一条线来了:保持推理架构不变,但网络参数自适应调整。已有研究已证实其有效性:通过小幅提升计算量改进网络的表达能力。给定输入

x,静态参数网络(模块)的输出可以描述为:

y=F(x,Θ);与之对立的,动态参数网络的输出描述如下:

y=F(x,^Θ|x)=F(x,W(x,Θ))其中,

W(⋅,Θ)用于生成动态参数,

W的不同选择已得到了充分的探索。

一般来说,参数自适应可以通过以下三种方式(可参见上图)得到:

基于输入调整训练参数;

根据输入直接生成网络参数;

采用软注意力调整特征。

Parameter Adjustment

参数自适应的一种典型方法:在推理阶段,根据输入调整网络权值。通常来讲,该过程通过非常少的计算量生成这种调整,比如注意力权值、采样偏移。

Attention on weights 可训练参数量时影响表达能力的重要因素。动态网络(比如谷歌的CondConv、微软DY-CNN)在多个卷积核上执行软注意力生成自适应集成参数,它不会导致明显的计算量提升。假设有N个核

Wn,n=1,2,⋯,N,该动态卷积定义如下:

y=x∗~W=x∗(N∑n=1αnWn)

该过程可以显著提升模型的容量(capacity)且保持高效性,因为多分枝卷积融合等价于多卷积核参数融合后的单次卷积,而后者仅需前者

1/N的计算量。

权值调整还可以通过在卷积核的空域位置上实施软注意力。比如,PAC(pixel-adaptive convolution)在每一层根据输入生成注意力掩码对卷积核进行调整。

Kernel shape adaptation 除了自适应调整权值外,参数调整还可以用于调整卷积核的形状达到动态感受野的作用。比如,Deformable Convolution、Deformable Kernel。下表从不同角度对比了该方向的几个方法。

Weight prediction

相比于在线修改模型参数,权值预测更为直接:在测试阶段采用子网络直接生成参数。

DFN(Dynamic Filter Network)与HyperNetwork是两个经典的实现运行时权值预测的CNN和RNN方案。具体来说,DFN采用滤波器生成网络为卷积生成滤波器。旷视科技提出的WeightNet则将CondConv与SENet纳入到同一框架中,它通过分组全连接层生成卷积核,在精度-Flops、精度-参数量方面取得了极具竞争力的结果。其他类似的方法有:CARAFE、VSR-DUF等。

Dynamic Features

在推理阶段通过调整或生成参数的主要影响在于生成更动态的、信息丰富的特征,进而增强了深度模型的表达能力。一种更直接的方式:采用输入相关的软注意力调整特征,见前面Figure6-c。这种类型的动态特征更易于得到,仅需要在计算图上作微小调整。对于线性变换

F,在输入特征执行注意力

α等价于调整参数:

F(x,Θ)⊗α=F(x,Θ⊗α)Channel-wise attention 一种常用软注意力机制:动态缩放不同通道的特征,比如SENet:

~y=y⊗α=y⊗A(y)当把卷积纳入考虑时,上述过程空域成如下形式:

~y=(x∗W)⊗α=x∗(W⊗α)也就是说:特征上的注意力等价于动态权值的卷积。

不同形式的注意力得到了了探索,比如采用标准差提供更多统计信息,采用更高效的1D卷积替换全连接层。总而言之,通道注意力可以概括为以下三种形式:

~y=y⊗A(y)

~y=y⊗A(x)

~y=y⊗A(Conv(x))Spatial-wise attention 特征还可以在从空域位置角度采用注意力进行动态调整以改进深度模型的表达能力。更进一步,通道与空域注意力还可以集成到一个框架中,比如BAM、CBAM。

Dynamic activation functions 前面两种在激活函数之前通过软注意力生成动态特征。近期一些工作开始尝试通过动态激活函数提升模型的表达能力。比如,DY-ReLU采用N个线性变换

yc=maxn{ancxc+bnc}的最大值替换ReLU

yc=max(xc,0);此外还有旷视科技提出的FReLU、ACON。动态激活函数能能与现有网络架构兼容,已在不同视觉任务中证实了其有效性。

总而言之,由于简单、有效性,软注意力已在多个领域得到探索,而且,软注意力能方便的与其他方法集成组合。

Spatial-wise Dynamic Network

在视觉学习中,并非所有位置对于最终的预测起均等贡献,这意味着:空域动态计算有极大潜力降低计算冗余。换句话说,仅需通过自适应方式计算一定比例的像素或者区域即可做出一个正确的决策。已有研究表明:对于大部分输入而言,低分辨率表达已足以得到一个不错的性能,CNN采用相同分辨率的输入无疑会造成冗余计算。

为此,空域动态网络旨在采用图像的不同空域位置进行自适应推理。按照动态计算的粒度,我们将其分为:

pixel level

region level

resolution level

Pixel-level Dynamic Networks

按照前述分类,像素级动态包含有以下两种类型:

dynamic architectures:采用动态架构处理每个像素;

dynamic parameters:采用动态参数处理每个像素。

Pixel-wise dynamic architectures

基于这样的认知:前景像素更具信息价值,其计算需求要比背景更高。一些网络尝试对每个像素调整其网络架构,现有方案可以划分为以下两种:

Dynamic sparse convolution:仅在子集像素区域进行卷积计算,见下图。

Dynamic additional refinement:不同于采样子集进行计算计算,另外一条线是:现在整个特征层面执行相对廉价的卷积,然后自适应激活额外的模块在特定像素上进行更进一步的提炼。

Pixel-wise dynamic parameters

不同于在像素子集上完整调整卷积计算,动态网络还可以对每个像素执行数据依赖的卷积以提升其表达能力或者感受野。现有方案主要有以下三种:

Dynamic weights,包含动态卷积、动态区域卷积等。

Dynamic reception fields,包含形变卷积、自适应链接网络等。

Pixel-wise dynamic feature,包含空域注意力。

Region-level Dynamic Networks

像素级动态网络需要特定的计算库以适配稀疏计算,在实际硬件上加速极为有限。另一种可选方案:在区域或者块级进行自适应推理。主要包含两条线路:

Dynamic transformations:常见于细粒度图像分类;

Hard attention:比如GFNet、RA-CNN。

Resolution-level Dynamic Networks

上面的讨论是将特征分成不同的区域,然后采用自适应方式对不同区域进行处理。然而,所涉及的稀疏采样、裁剪奥做会导致实际效率的价格降低。另外,动态网络可以把不同分辨率的图像视作整体:低分辨率图像对于“简单”样例足够有效。现有的分辨率级动态网络可以分为以下两种:

Adaptive scaling ratios:采用自适应缩放因子对特征进行上/下采样达到动态分辨率目的。

Dynamic resolution in multi-scale architectures:采用并行/级联方式构建多个子网络以达到动态分辨率目的。

Inference and Training

从前面介绍可以看到:推理阶段的数据依赖决策对于获得高性能、高效率推理非常重要;此外,训练动态网络通常比静态网络更具挑战性。

由于参数的自适应性可以通过SGD直接优化训练得到,且无需特定技术。接下来我们主要针对离散决策、训练策略进行介绍。

Decision Making of Dynamic Networks

推理阶段的数据依赖决策主要有以下三种:

Confidence-based Criteria

Policy Networks

Gating Functions

Training of Dynamic Networks

从目标与优化两个角度简单汇总了训练动态网络的策略:

Training objectives for efficient inference:在这方面有分为以下几种:

Trainng multi-exit networks,

Encouraging sparsity,包含稀疏正则

Other techniques,包含知识蒸馏等

Optimization of non-differentiable functions:

Gradient estimation,包含STE等;

Reparameterization techniques,包含Gumbel Softmax等;

Reinforcement learning,包含RL等。

Application of Dynamic Networks

接下来,我们将汇总以下动态神经网络的典型应用,见下表。

可以看到:

对于图像识别来说,动态CNN大多为instance-wise和spatial-wise形式;

对于文本数据来说,其推理框架大多为itemporal-wis形式;

对于视频相关任务,三种类型的动态推理可同时使用;

动态网络还可以用于解决深度学习中的基础问题,比如:

缓解over-thinking降低整体计算量;

引入早退机制进行长尾分类;

提升模型鲁棒性

在多任务框架下降低训练耗时;

在迁移学习中寻找最优微调策略。

编辑:jq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 滤波器
    +关注

    关注

    162

    文章

    8350

    浏览量

    184730
  • 谷歌
    +关注

    关注

    27

    文章

    6244

    浏览量

    110231
  • PAC
    PAC
    +关注

    关注

    0

    文章

    72

    浏览量

    28688
  • DFN
    DFN
    +关注

    关注

    0

    文章

    15

    浏览量

    8794

原文标题:【综述】一文概览动态神经网络

文章出处:【微信号:cas-ciomp,微信公众号:中科院长春光机所】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    NMSIS神经网络库使用介绍

    NMSIS NN 软件库是组高效的神经网络内核,旨在最大限度地提高 Nuclei N 处理器内核上的神经网络的性能并最​​大限度地减少其内存占用。 该库分为多个功能,每个功能涵盖特定类别
    发表于 10-29 06:08

    在Ubuntu20.04系统中训练神经网络模型的些经验

    本帖欲分享在Ubuntu20.04系统中训练神经网络模型的些经验。我们采用jupyter notebook作为开发IDE,以TensorFlow2为训练框架,目标是训练个手写数字识别的神经
    发表于 10-22 07:03

    液态神经网络(LNN):时间连续性与动态适应性的神经网络

    1.算法简介液态神经网络(LiquidNeuralNetworks,LNN)是种新型的神经网络架构,其设计理念借鉴自生物神经系统,特别是秀丽隐杆线虫的
    的头像 发表于 09-28 10:03 656次阅读
    液态<b class='flag-5'>神经网络</b>(LNN):时间连续性与<b class='flag-5'>动态</b>适应性的<b class='flag-5'>神经网络</b>

    无刷电机小波神经网络转子位置检测方法的研究

    摘要:论文通过对无刷电机数学模型的推导,得出转角:与三相相电压之间存在映射关系,因此构建了个以三相相电压为输人,转角为输出的小波神经网络来实现转角预测,并采用改进遗传算法来训练网络结构与参数,借助
    发表于 06-25 13:06

    神经网络专家系统在电机故障诊断中的应用

    的诊断误差。仿真结果验证了该算法的有效性。 纯分享帖,需要者可点击附件免费获取完整资料~~~*附件:神经网络专家系统在电机故障诊断中的应用.pdf【免责声明】本文系网络转载,版权归原作者所有。本文所用视频、图片、文字如涉及作品版权问题,请第
    发表于 06-16 22:09

    BP神经网络网络结构设计原则

    BP(back propagation)神经网络种按照误差逆向传播算法训练的多层前馈神经网络,其网络结构设计原则主要基于以下几个方面:
    的头像 发表于 02-12 16:41 1247次阅读

    BP神经网络与卷积神经网络的比较

    BP神经网络与卷积神经网络在多个方面存在显著差异,以下是对两者的比较: 、结构特点 BP神经网络 : BP神经网络
    的头像 发表于 02-12 15:53 1301次阅读

    BP神经网络的优缺点分析

    BP神经网络(Back Propagation Neural Network)作为种常用的机器学习模型,具有显著的优点,同时也存在些不容忽视的缺点。以下是对BP神经网络优缺点的分析
    的头像 发表于 02-12 15:36 1562次阅读

    什么是BP神经网络的反向传播算法

    BP神经网络的反向传播算法(Backpropagation Algorithm)是种用于训练神经网络的有效方法。以下是关于BP神经网络的反向传播算法的介绍:
    的头像 发表于 02-12 15:18 1269次阅读

    BP神经网络与深度学习的关系

    BP神经网络与深度学习之间存在着密切的关系,以下是对它们之间关系的介绍: 、BP神经网络的基本概念 BP神经网络,即反向传播神经网络(Ba
    的头像 发表于 02-12 15:15 1338次阅读

    BP神经网络的基本原理

    BP神经网络(Back Propagation Neural Network)的基本原理涉及前向传播和反向传播两个核心过程。以下是关于BP神经网络基本原理的介绍: 网络结构 BP
    的头像 发表于 02-12 15:13 1504次阅读

    BP神经网络在图像识别中的应用

    BP神经网络在图像识别中发挥着重要作用,其多层结构使得网络能够学习到复杂的特征表达,适用于处理非线性问题。以下是对BP神经网络在图像识别中应用的分析: 、BP
    的头像 发表于 02-12 15:12 1179次阅读

    深度学习入门:简单神经网络的构建与实现

    深度学习中,神经网络是核心模型。今天我们用 Python 和 NumPy 构建个简单的神经网络神经网络由多个神经元组成,
    的头像 发表于 01-23 13:52 838次阅读

    人工神经网络的原理和多种神经网络架构方法

    在上篇文章中,我们介绍了传统机器学习的基础知识和多种算法。在本文中,我们会介绍人工神经网络的原理和多种神经网络架构方法,供各位老师选择。 01 人工神经网络   人工
    的头像 发表于 01-09 10:24 2233次阅读
    人工<b class='flag-5'>神经网络</b>的原理和多种<b class='flag-5'>神经网络</b>架构方法

    详解物理信息神经网络

    物理信息神经网络 (PINN) 是神经网络,它将微分方程描述的物理定律纳入其损失函数中,以引导学习过程得出更符合基本物理定律的解。
    的头像 发表于 12-05 16:50 1.4w次阅读
    <b class='flag-5'>一</b><b class='flag-5'>文</b>详解物理信息<b class='flag-5'>神经网络</b>