动态网络的核心思想——自适应地调节自身的结构/参数

本文作者:韩亦增、高煌

本文介绍了我们最近在 arxiv 上发布的一篇论文“Dynamic Neural Networks: A Survey”。

传统的静态网络(如众所周知的 ResNet、DenseNet)在测试阶段对所有输入样本使用相同的网络架构和参数。与静态模型不同的是,动态网络可以根据不同的样本调整自己的结构/参数,从而在计算效率和表达能力方面表现出优异的优势。

根据自适应推理的方式,文章将动态网络分为三类:样本自适应、空间自适应和时间自适应。本文回顾了动态网络中一些重要的研究问题,如结构设计、决策方法、训练策略和应用c语言实现神经网络算法,并讨论了该领域的开放问题和未来的研究方向。

为适应微信读者的阅读习惯,本文为摘要内容的精简版。详情请参考“致远研究院”知乎账号:

图1整体框架概览

01 简介

近年来,我们见证了越来越强大的神经网络模型,例如 AlexNet、VGG、GoogleNet、ResNet、DenseNet 和最近流行的 Transformer。

然而,大多数流行的深度网络共享相同的静态推理范式:训练后,网络的结构和参数在测试阶段保持不变,这限制了模型的表示能力、推理效率和可解释性。

动态网络在推理阶段可以根据输入自适应调整自己的结构/参数,因此在以下几个方面具有静态网络所不具备的良好特性:

其实,动态网络的核心思想,自适应推理,在深度网络流行之前就已经研究过了。最典型的方法是构建多个模型的动态集成,并根据输入自适应地激活这些模型。在深度学习方面,虽然已经设计了多种动态网络并取得了一定的成功,但仍缺乏对该领域的系统全面概述。

论文地址:

我们希望这篇评论动态神经网络:调查能够:

02 自适应动态网络示例

样本自适应动态网络根据每个不同的输入样本自适应地调整其结构或参数。前者主要是在不影响精度的情况下尽可能提高计算效率,而后者则致力于在尽可能少增加计算量的同时提高模型的表达能力。

2.1 动态结构

动态网络结构一般可以从三个方面来实现:超网中的动态深度、动态宽度和动态路由。

2.1.1 动态深度

由于深度网络通常由多个层堆叠而成,一个自然的想法是为不同的样本选择性地执行不同的层。

1.“提前退出”机制:设置多个出口,自适应决定是否在每个出口提前输出样本。具体实现包括级联多个模型、在骨干网中间层添加分类器等。(图2).

图2“早退”机制

值得一提的是,多尺度密集连接网络(MSDNet,图3(a))采用多尺度架构和密集连接,有效提升了多个分类器的协同训练效果。

图3多尺度动态网络结构

2.“跳层”机制:自适应地决定是否对每个输入样本执行网络的每个中间层。论文总结了三种实现方式,如图4所示。

图 4 动态层跳转

2.1.2 动态宽度

早期的工作研究了线性层中神经元的动态激活。本文重点介绍了另外两种更常见的方法:多专家混合系统 (MoE) 和 CNN 中的动态通道修剪。

1. MoE:通过并行结构构建多个子网络,并对这些子网络的输出进行动态加权。早期的工作对这些结果进行了软加权(图 5(a))以提高模型的表示能力。最近的研究选择性地激活不同的子网络以提高模型效率(图 5(b))。 MoE 结构已在各种类型的网络中实现,包括 CNN、LSTM 和 Transformer。

图。 5 MoE结构(a,b)和树结构(c)

2. CNN中的动态通道剪枝:根据样本自适应激活不同的卷积通道,实现CNN的动态宽度。具体形式包括通道维度的多阶段结构,以及基于门函数或激活值的动态剪枝。另外,现有工作使用门函数同时控制网络的深度和宽度:首先判断是否执行了某个网络层,如果是,则进一步选择该层的不同通道。

2.1.3 动态路由

不同于以往工作中基于经典架构的网络模块的选择性执行,另一类工作建立了更通用的超网(SuperNet),并在超网内动态路由样本。本文讨论了几种常见的超网络结构:多分支结构、树状结构(图5(c))和其他(图3(d))。

2.2个动态参数

与动态结构不同,另一个动态网络不会改变网络的计算图,而是根据输入样本自适应地调整模型参数以提高其表达能力(如图6所示)。

图 6 动态参数

2.2.1的参数动态调整

1.动态加权。典型的做法是多组卷积核加权求和后进行卷积运算:

2.卷积核形状自适应调整。代表作品的数学形式如下表所示。

2.2.2参数预测

其他作品直接从输入生成网络权重。早期的代表性方法包括分别用于 CNN 和 RNN 的动态滤波器网络和 HyperNetwork。最近的 WeightNet 统一了 CondConv 和 SENet 的自适应范式,通过参数预测的方式在性能和效率之间取得更好的平衡。

2.2.3 动态特征

动态参数法的主要作用是生成更多动态和多样化的特征。一个等效的方案是使用注意力机制直接对特征的不同通道/空间位置进行自适应加权(图6(c))。

此外,最近的一些工作通过设计动态激活函数可以大大提高模型的表达能力。

03 空间自适应动态网络

也可以从图像的空间维度进行自适应推理。

3.1 像素级

像素级动态网络对输入特征图的不同像素位置进行自适应计算,可分为动态结构和动态参数两种。对于动态结构,最典型的做法如图7所示,即生成空间掩码,然后对选中的像素进行稀疏卷积操作。

图 7 选定像素的稀疏卷积

3.2 区域

区域级动态网络从原始输入中选择整个区域进行自适应计算(图8)。代表作品是最近发表的glance-and-focus network(GFNet):Modeling Image Recognition For the序列决策问题,迭代地截取图像块作为分类的输入,通过在这种序列决策中实现“提前退出”,实现了空间和时间二维的自适应推理。

图 8 区域动态网络

3.3 个分辨率级别

采样/裁剪操作往往会影响模型的实际运行效率。分辨率级动态网络对不同的图像采用自适应分辨率,从而减少了高分辨率表示带来的冗余计算。一个具有代表性的工作是分辨率自适应网络(RANet)(图3(c)):根据不同的分辨率对不同的子网络进行特征分类,并根据分类置信度选择性地执行高分辨率子网络。

04 时间自适应动态网络

时间自适应动态网络旨在对不同时间位置的时间序列数据(例如文本、视频等)执行自适应计算。由于基本思路大同小异,下面主要介绍文章中的4.1部分。

4.1 基于RNN的动态文本处理

考虑到不同时间输入的不同重要性,动态RNN被设计为自适应地决定是否在每个时刻将计算分配给输入,或者使用什么样的计算复杂度。

图10 时间自适应动态网络

4.1.1隐藏状态的动态更新

1.跳过更新:忽略不重要的输入,将前一时刻的状态复制到下一时刻(图 10 (a))。

2.粗略更新:例如调用不同宽度的子网络来更新隐藏状态的部分维度(图10(b))。

3.在多尺度架构中,高层RNN根据低层输出选择性地更新其状态(图10(c))。

4.1.2“早退”机制

在许多场景中,仅根据时间序列数据的开头即可解决所需的任务。一类动态 RNN 在每一时刻都确定当前隐藏状态是否足以解决任务。如果是,则终止推理。

4.1.3“跳跃”机制

动态网络还可以在每个时刻跳过一定数量的输入,决定从数据中读取输入的位置(如图 10 (d) 所示)。

05 推理和训练

动态网络的核心元素是在推理阶段基于数据的决策过程(调整其结构/参数,或决定对样本中的哪些时空位置进行操作)。这样的决策过程也带来了更多的培训挑战。该评论侧重于动态网络中的离散决策及其优化方法。

5.1 决定

1. 基于置信度的“早期撤退”准则:常用于分类网络;

2. Backbone-independent policy network:常用于动态结构方法;

3. 门功能:使用即插即用的轻量级模块在骨干网络的任何位置做出离散决策。

5.2 次训练

5.2.1个训练目标

1. 对于多出口网络:每个出口的损失函数的加权求和。在链式结构中,这样的做法往往会导致网点之间相互干扰。 MSDNet 通过特殊的结构设计解决了这个问题。随后的工作提出了一种梯度平衡算法来稳定训练过程,并利用双向信息传递来改进多个分类器的协同训练。

2. 对于具有动态结构或空间/时间位置采样的模型:为了减少冗余计算,通常会添加正则化项以鼓励稀疏性。整体训练目标可以写成

3. 为特定任务引入额外的损失函数术语。

5.2.2 不可导函数的优化

1. 梯度估计:使用直通估计 (STE) 估计离散门函数的梯度。

2.重参数化:以Gumbel SoftMax为代表,也常用于离散门函数的训练。

3. 强化学习:奖励函数通常包含计算开销的惩罚项。

06动态网络的应用

文章根据输入模态总结了动态网络的典型应用以及对应的自适应推理类型,如下表所示。

此外,动态网络还用于解决深度学习中的一些基本问题,例如用于具有长尾分布的图像分类的多出口网络,以及用于减少多任务设置中的训练开销的动态路由思想。

07 讨论

最后,文章讨论了该领域的开放性问题和未来的研究方向。

1.动态网络理论。包括有理论保证的最优决策,以及训练和测试数据分布偏差下的模型泛化性能。

2.动态网络的结构设计。大多数当前方法基于经典静态模型c语言实现神经网络算法,其中有选择地执行不同的单元。自适应计算的动态网络结构设计可以进一步提高其性能和计算效率。

3.更多任务下的适用性。大多数动态网络仍然只能处理分类任务。一个具有挑战性的任务是设计一个统一、简洁、优雅的动态网络,可以直接作为其他任务的骨干网络。

4.实际效率与理论的差距。现有的深度学习计算硬件和软件库大多是针对静态网络开发的,导致动态模型的实际加速可能落后于理论结果。设计对硬件友好的动态网络是一个有价值且具有挑战性的话题。另一个有趣的方向是优化计算硬件/软件平台,以更好地获得动态网络带来的效率收益。

5.动态网络的鲁棒性也是一个有趣且未被充分研究的话题。最近的工作表明,多出口动态模型对对抗性攻击更加稳健。此外,对于动态网络,可以进行对抗性攻击,以确保其准确性和效率。

6.可解释性。动态网络的特别之处在于其时空适应性与人类视觉系统一致。此外,对于给定的样本,可以方便地分析动态网络的哪些部分需要被激活来进行预测。我们希望这些属性能够激发关于深度学习可解释性的新工作。

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论