一种基于动态可精简神经网络的自适应高能效推理方法技术

技术编号:39772650 阅读:9 留言:0更新日期:2023-12-22 02:22
本发明专利技术提出了一种基于动态可精简神经网络的自适应高能效推理方法,要点包括初始化定义宽度乘数

【技术实现步骤摘要】
一种基于动态可精简神经网络的自适应高能效推理方法


[0001]本专利技术属于神经网络优化领域,尤其涉及一种基于动态可精简神经网络的自适应高能效深度神经网络推理方法


技术介绍

[0002]深度神经网络
(Deep Neural Network
,简称
DNN)
是一种基于人工神经网络的机器学习算法,它由多层相互连接的神经元组成,旨在模拟大脑的结构和功能

近年来,
DNN
在计算机视觉

语音处理

自然语言处理等领域得到广泛的应用,并取得了许多令人瞩目的成果

为了满足给定任务
(
例如在图像分类领域利用
DNN
实现高精度识别
)

DNN
通常需要使用数十层甚至上百层的网络结构

这种增加深度的设计策略可以有效提高模型的表示能力,使得模型能够更好地捕捉数据中的复杂特征,从而提高模型的预测准确性

然而,随着
DNN
模型变得越来越复杂,模型中需要训练和优化的参数也在不断增加,同时模型推理过程中需要的计算量也变得越来越大,从而导致
DNN
推理能耗不断增加,
DNN
模型推理过程中的能耗成为限制
DNN
进一步应用的重要因素

特别是在移动设备物联网设备等电池供电并且资源有限的设备上,推理能耗的增加会极大地降低设备的可用性和用户的体验,例如,在物联网设备上,推理能耗的高低直接影响设备的使用寿命和性能

因此,在定量推理能耗约束下,通过动态权衡推理精度和推理能耗,实现
DNN
的自适应高能效推理是极其重要的

[0003]可精简神经网络
(Slimmable Neural Networks
,简称
SNN)
是利用
DNN
每层由不同的神经元构成的特点,允许单个网络可以在不同的宽度下执行并且可以在推理时进行实时自适应精度效率权衡的动态神经网络

通过在训练时就直接训练可切换批量归一化的共享网络,而不是训练具有不同宽度配置的单个神经网络,来降低时间成本

通过在推理时根据设备上的基准和资源限制动态调整宽度,而不是下载和加载不同模型,来降低内存成本

其后续工作通过优化实现了更细粒度的宽度优化和架构搜索,但是对于动态约束而言,约束粒度太细会导致频繁网络切换,产生额外能耗,因此
SNN
更加适用于动态推理能耗约束下完成推理任务

[0004]为了降低动态推理的能耗,现有方法通常可以分为四类:动态参数调整

动态深度调整

动态宽度调整

动态路由

动态参数调整是指网络结构在推理过程中不变,根据输入样本自适应地调节模型的
(
部分
)
参数,从而提升模型的表达能力

但是在动态
DNN
中,由于参数需要进行动态调整,因此需要更多的计算资源来更新和重新计算模型权重和偏置,可能会增加训练和推理的计算成本,并导致模型性能下降;动态深度调整是指根据不同的推理需求,动态地调整
DNN
的网络深度,以达到更高的推理能效和实时性
。Dai
等人提出了一种轻量级的分支结构,为早期退出提供了细粒度的灵活性,并利用马尔可夫决策过程来自动学习提出提退策略

然而,动态深度调整需要重新设计网络结构,需要消耗大量时间,并且推理能耗作为深度调整判断可能会降低推理的准确性;动态宽度调整是指根据不同条件选择性激活部分组件
(
例如神经元

分支或通道
)
,以达到更高的推理能效
。Yu
等人提出了可以即时调整运行时宽度的神经网络,引入通用精简训练算法和可切换批归一化算法来训练不
同宽度的可执行神经网络,允许在运行时进行即时和自适应的精度

效率权衡

但是
Yu
的方法仅是调整通道宽度来降低推理能耗,无法保证在定量能耗约束下完成推理任务;动态路由是指在推理过程中动态选择网络中的某些特定的分支或者模块来处理输入数据,以提高模型的效率和准确性

与传统架构通过激活其计算单元
(
如层或通道
)
来调整深度或宽度的方法不同,动态路由通过超级网络的路由节点将特征或样本分配到不同路径,使得模型更好地适应不同输入数据和任务,从而提高模型的灵活性和泛化能力

上述动态约束下
DNN
推理优化方法大多是通过调整参数

深度

宽度等实现不同约束下
DNN
模型动态变化,可以有效降低推理能耗

然而,以上现有相关方法尚未将能耗预算考虑到
DNN
训练的过程中,无法实现定量的推理能耗保证

因此,这些相关方法难以满足在动态推理能耗约束下实现面向动态
DNN
高能效推理的需求

[0005]鉴于上述已有研究方法的不足,本专利技术提出了一种基于动态可精简神经网络的自适应高能效推理方法

具体来说,针对动态能耗约束,本专利技术提出了基于宽度乘数的动态
DNN
多项式回归推理能耗模型

基于构建的能耗模型,本专利技术提出了动态约束可精简
DNN
构建方法,实现了定量能耗保证以及推理精度与推理能耗之间的动态权衡


技术实现思路

[0006]为了解决提高深度神经网络推理精度的问题,本申请的一些实施例中提出一种基于动态可精简神经网络的自适应高能效推理方法,步骤如下:
[0007]步骤1:初始化定义宽度乘数
c
和可切换宽度乘数列表
S

[0008]步骤2:构建基于能耗乘数的可精简神经网络
SNN

[0009]步骤
2.1
:预定义可切换能耗约束列表
SE
,初始化神经网络
M

[0010]步骤
2.2
:计算神经网络
M
推理能耗
E
original

[0011]步骤
2.3
:进行子网络精度优化;
[0012]步骤
2.4
:迭代训练
n
iters
次;
[0013]步骤3:得到可切换能耗约束下可精简神经网络
M
*
本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.
一种基于动态可精简神经网络的自适应高能效推理方法,其特征在于,步骤如下:步骤1:初始化定义宽度乘数
c
和可切换宽度乘数列表
S
;步骤2:构建基于能耗乘数的可精简神经网络
SNN
:步骤
2.1
:预定义可切换能耗约束列表
SE
,初始化神经网络
M
;步骤
2.2
:计算神经网络
M
推理能耗
E
original
;步骤
2.3
:进行子网络精度优化;步骤
2.4
:迭代训练
n
iters
次;步骤3:得到可切换能耗约束下可精简神经网络
M
*
。2.
根据权利要求1所述的基于动态可精简神经网络的自适应高能效推理方法,其特征在于,步骤1中,定义宽度乘数
c
,宽度乘数计算如下:其中,
c
A
为当前网络实际宽度,
c
T
为网络模型原始宽度,用
×
表示宽度乘数;训练拥有不同宽度的可精简神经网络
SNN
,对于多个宽度乘数,引入可切换宽度乘数列表
S
,表示如下:
S

[c1,c2,
……
,c
n
]
×
其中
c1,c2,
……
,c
n
表示
n
个不同的宽度乘数,深度神经网络
DNN
可切换宽度乘数列表
S
中切换拥有不同宽度乘数的子网络
。3.
根据权利要求2所述的基于动态可精简神经网络的自适应高能效推理方法,其特征在于,步骤2:构建基于能耗乘数的可精简神经网络能耗乘数
e
表示如下:其中
e
A
表示实际推理能耗,
e
T
表示原始模型下所需推理能耗,用
×
表示能耗乘数,能耗乘数
e
对应的可切换能耗约束
SE
表示如下:
SE

[e1,e2,
……
,e
n
]
×
其中
e1,e2,
……
,e
n
表示
n
个不同的能耗乘数,深度神经网络
DNN
可在不同能耗约束下切换到不同能耗乘数的子网络下执行;通过可切换批归一化
S

BN
对可精简网络
SNN
中的不同子网络采用独立的批量归一化,归一化输出
y

表示如下:其中,
y
为归一化输入,
α

β
为可学习系数和偏差值,
u

δ2为训练过程中当前小批...

【专利技术属性】
技术研发人员:任健康倪政钱一诚宿晓燕李思梦李声宇吕宪徐子川叶鑫
申请(专利权)人:大连理工大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1