动态神经网络是深度学习领域的一个新兴研究课题。与静态模型在推理阶段具有固定的计算图和参数相比,动态网络可以根据不同的输入调整其结构或参数,在精度、计算效率和适应性等方面具有显著优势。在本综述中,我们通过将动态网络分为三大类,全面回顾了这一快速发展的领域: 1) 使用依赖数据的架构或参数处理每个实例的实例动态模型; 2) 空间动态网络,针对图像数据的不同空间位置进行自适应计算; 3) 时间动态模型,针对视频、文本等顺序数据,沿时间维进行自适应推理。本文系统地评述了动态网络的结构设计、决策方案、优化技术及应用等重要研究问题。最后,讨论了该领域有待解决的问题以及未来的研究方向。
https://www.zhuanzhi.ai/paper/c42261b93aa5ce0b2775fc59e546acda
深度神经网络(DNNs)在计算机视觉(CV)[1]、[2]、[3]、[4]、[5]和自然语言处理(NLP)[6]、[7]、[8]等领域发挥着重要作用。近年来,我们见证了许多成功的深度模型,如AlexNet [1], VGG [2], google [3], ResNet [4], DenseNet [5], Transformers[6]。这些体系结构创新使训练更深入、更准确和更有效的模型成为可能。最近的神经结构搜索(NAS)[9],[10]进一步加速了设计更强大结构的过程。然而,目前流行的深度学习模型大多采用静态方式进行推理,即训练后计算图和网络参数都是固定的,这可能会限制其表示能力、效率和可解释性[11],[12],[13],[14]。
与静态网络不同,动态网络可以在推理过程中根据输入调整其结构或参数,因此具有静态模型所缺乏的良好特性。总的来说,深度学习环境下的动态计算具有以下优点:
2)表示能力。动态网络由于具有数据依赖性的网络结构/参数,极大地扩大了网络的参数空间,提高了网络的表示能力。例如,通过在卷积核[13]、[17]的集合上应用特征约束的注意力权重,可以在计算量的少量增加的情况下提高模型容量。值得注意的是,流行的软注意力机制也可以统一在动态网络的框架中,在测试时间对特征的不同通道[18]、空间区域[19]或时间位置[20]进行动态加权。
3)适应能力。动态模型能够在处理动态变化的计算预算的准确性和效率之间实现理想的平衡。因此,与计算成本固定的静态模型相比,它们更能适应不同的硬件平台和不断变化的环境。
4)兼容性。动态网络与深度学习中最先进的技术兼容,包括架构设计[4],[5],优化算法[21],[22]和数据预处理[23],[24],这确保他们可以从该领域的最新进展中受益,实现最先进的性能。例如,动态网络可以继承轻量级模型[25]中的架构创新,也可以通过NAS方法[9]、[10]来设计。通过使用针对静态模型的加速方法,如网络剪枝[26]、权重量化[27]、知识蒸馏[28]和低秩近似[29],也可以进一步提高其效率。
5)通用性。作为静态深度学习技术的替代品,许多动态模型都是可以无缝应用于广泛应用的通用方法,如图像分类[12]、[30]、对象检测[31]、语义分割[32]。此外,在CV任务中开发的技术被证明可以很好地迁移到NLP任务[33]和[34]的语言模型中,反之亦然。
6)可解释性。最后,我们发现动态网络的研究可能会在深层模型的潜在机制和大脑之间架起桥梁,因为我们认为大脑以动态的方式处理信息[35],[36]。使用动态神经网络,我们可以分析在处理输入实例时,深度模型的哪些组件被激活,并观察哪些输入部分对某些预测负责。这些特性可能有助于解释DNNs的决策过程。
事实上,动态神经网络的关键思想自适应推理在现代DNNs流行之前就已经被研究过了。最经典的方法是通过级联[38]或并行[39]结构构建多个模型的自适应集成,并根据输入条件选择性地激活它们。spike neural network (SNN)[40],[41]也通过在模型中传播脉冲信号来执行数据依赖推理。然而,SNN的训练策略与流行的卷积神经网络(CNNs)有很大的不同,在视觉任务中并不常用。因此,我们在本次综述中省略了与SNN相关的工作。
在深度学习的背景下,现代深度架构下的动态推理提出了许多新的研究问题,并在近三年来引起了广泛的研究兴趣。尽管在设计各种类型的动态网络方面做了大量的工作,但对这一主题的系统和全面的回顾仍然缺乏。为此,我们撰写本研究,回顾这一快速发展领域的最新进展,目的是:1)为感兴趣的研究人员提供一个概述和新的视角; (2)指出不同组件之间的紧密联系,降低重复发明的风险; (3)总结关键挑战和未来可能的研究方向。