一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种时间感知的动态神经网络设计与优化方法

2022-06-29 22:48:18 来源:中国专利 TAG:


1.本发明涉及神经网络设计与优化领域,尤其涉及一种时间感知的动态神经网络设计与优化方法。


背景技术:

2.随着智能信息时代的到来,人工智能不断发展,以深度学习为代表的人工智能技术也发展的越发成熟。机器学习是人工智能的子领域,同时也是人工智能的核心,而作为机器学习的重要分支,深度学习旨在模拟人类的神经网络系统构建深度人工神经网络,对输入的数据进行分析和解释,将数据的底层特征组合成抽象的高层特征,其在计算机视觉、自然语言处理等人工智能相关领域发挥了不可替代的作用。作为深度学习的典型代表,深度神经网络(deep neural network,dnn)近年来在计算机视觉任务中大放异彩,然而,随着人们对于精度的追求越来越高,dnn网络结构也越来越深,性能变强的同时带来了模型参数量巨大需要大量计算开销和能源成本的问题,这也导致了其很难被应用在在计算资源、能源受限的智能边缘设备上,同时,这对于需要进行快速推理的领域提出了一个问题,特别是在如自动驾驶、机器人导航或移动设备上的用户交互应用程序等延迟敏感和实时场景中。
3.为了解决这项问题,许多研究人员尝试加快深度神经网络模型的推理,例如轻量级网络架构设计、网络修剪和权重量化。尽管这些方法确实可以开发更快、更轻量级的深度神经网络模型,但也经常导致模型的性能在准确性方面比原始模型差。此外,这些方法开发的模型是静态的,即它们无法动态适应可用的计算资源。因此,我们需要一种可以使模型动态适应可用的计算资源。自适应推理方案通过动态调整网络结构或以每个输入为条件的参数来减少“简单”样本的计算冗余,已被证明具有良好的性能。
4.然而,现有的动态推理方案的网络结构是手工制作,一旦主干网络过于复杂,则设计动态网络结构的工作量将急剧增加,将会消耗大量的时间和精力。此外,手工设计的网络往往依赖于设计人员的经验,很容易被困在局部最优。为了解决这个问题,研究人员又引入了神经架构搜索(neural architecture search,nas)自动搜索最佳的网络结构,这称为s2dnas。它将原始的主干网络架构转换为不同的多阶段网络,以形成搜索空间,然后使用基于强化学习(reinforcement learning,rl)的方法在空间中搜索最佳架构。然而,对于更复杂的计算图,s2dnas的搜索空间是巨大的,并且还需要额外的控制器,这需要大量的搜索迭代。


技术实现要素:

5.鉴于现有解决方案的不足,本发明提出一种时间感知的动态神经网络设计与优化方法,基于智能边缘系统不同的时延需求,同时根据神经网络不同结构的推理时延,动态的设计出满足要求的神经网络。
6.本发明技术方案:
7.一种时间感知的动态神经网络设计与优化方法,具体包括:
8.步骤1:针对目标智能边缘系统对神经网络模型进行分析,得到不同块组合的推理时延信息;
9.步骤2:根据步骤1得到的块组合和时延信息,由一个时间感知控制块设计出满足智能边缘系统时延要求的动态神经网络,利用数据集对设计好的网络进行训练并保存训练完成的网络;
10.步骤3:智能边缘系统可以根据不同的状态下的时延需求动态选择训练好的神经网络。
11.步骤1所述的神经网络模型设计为主干网络和跳过块组成,其中,主干网络和跳过块由一组门控单元gi决定执行主干网络块或跳过块;
12.所述门控单元gi∈{0,1}在两个离散状态之间进行选择:0表示执行跳过块,1表示执行主干网络块,其根据其第i个值为1或0决定执行第i组块为主干网络块或跳过块;
13.计算图的定义如下:
[0014][0015]
其中,fi(
·
),i∈{1,

,n}表示第i组主干网络块,si(
·
),i∈{1,

,n}表示第i组跳过块;
[0016]
步骤2所述根据步骤1中得到的不同块组合的推理时延信息,根据模型在特定门控单元配置下的时延t={t1,t2,
……
,tn}得到满足智能边缘系统不同状态下时延要求的子网络;
[0017]
对于有多个时延要求的情况下,设计出满足不同时延要求的不同子网,联合优化不同的子网络,包括以下流程:
[0018]
s1.1:根据不同块组合的时延信息得到满足第一个时延要求的门控单元配置信息,由时间感知控制块得到子网络n1;
[0019]
s1.2:利用数据集对子网络n1进行训练并保存训练完成的网络;
[0020]
s1.3:根据不同块组合的时延信息得到满足第二个时延要求的门控单元配置信息,由时间感知控制块得到子网络n2;
[0021]
s1.4:利用数据集对子网络n1和n2进行联合训练并保存训练完成的网络;
[0022]
s1.5:重复上述过程,直到训练完多个时延要求下的子网并保存训练好的网络。
[0023]
为了训练满足多个时延要求下的多个子网络,我们将联合优化问题形成为每个满足时延要求的子网络的损失函数的加权和,定义如下:
[0024][0025]
其中,l(
·
)为损失函数,ωn为权重,n为子网络总数,g={g1,g2,

,g
t
}表示满足不同时延要求的子网的门控单元集合。
[0026]
本发明的有益效果:
[0027]
本发明提出的一种时间感知的动态神经网络设计与优化方法,基于智能边缘系统不同的时延需求,同时根据神经网络不同结构的推理时延,动态的设计出满足要求的神经网络。
附图说明
[0028]
附图并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
[0029]
图1是本发明流程图。
[0030]
图2是本发明门控单元具体流程图。
[0031]
图3是本发明不同块组合的推理时延信息图。
[0032]
图4是本发明不同块组合的门控单元和flops图。
具体实施方式
[0033]
以下结合附图及具体实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0034]
本发明基于智能边缘系统不同的时延需求,同时根据神经网络不同结构的推理时延,动态的设计出满足要求的神经网络。
[0035]
本发明提出一种时间感知的动态神经网络设计与优化方法如图1所示,该方法根据在目标智能边缘系统上的不同时延需求得到门控单元配置,根据门控单元配置得到子网络。
[0036]
本发明提出一种时间感知的动态神经网络设计与优化方法,包括以下步骤:
[0037]
步骤1:针对目标智能边缘系统对神经网络模型进行分析,得到不同块组合的推理时延信息表示如图3,神经网络模型中所有的门控单元配置都有对应的推理时延,将此信息保存为.json文件。
[0038]
其中,神经网络模型设计为主干网络和跳过块组成,其中,主干网络和跳过块由一组门控单元gi决定执行主干网络块或跳过块。
[0039]
其中,如图2所示,所述门控单元gi∈{0,1}在两个离散状态之间进行选择:0表示执行跳过块,1表示执行主干网络块,其根据其第i个值为1或0决定执行第i组块为主干网络块或跳过块。
[0040]
步骤2:根据步骤1得到的块组合和时延信息,由一个时间感知控制块根据模型在特定门控单元配置下的时延t={t1,t2,
……
,tn}得到满足智能边缘系统不同状态下时延要求的子网络,利用数据集对设计好的网络进行联合训练并保存训练完成的网络。
[0041]
对于有多个时延要求的情况下,设计出满足不同时延要求的不同子网,联合优化不同的子网络,包括以下流程:
[0042]
s1.1:时间感知控制块读取保存的.json文件以及目标时延t1,根据不同块组合的时延信息得到满足第一个时延要求的门控单元g1,然后设计得到子网络n1。
[0043]
s1.2:利用数据集对子网络n1进行训练并保存训练完成的网络,其中,其训练时计算图的定义如下:
[0044][0045]
其中,fi(
·
),i∈{1,

,n}表示第i组主干网络块,si(
·
),i∈{1,

,n}表示第i组跳过块。
[0046]
s1.3:时间感知控制块读取保存的.json文件以及目标时延t2,根据不同块组合的
时延信息得到满足第二个时延要求的门控单元g2,然后设计得到子网络n2。
[0047]
s1.4:利用数据集对子网络n1和n2进行联合训练并保存训练完成的网络;
[0048]
s1.5:重复上述过程,直到训练完多个时延要求下的子网并保存训练好的网络。
[0049]
其中,为了训练满足多个时延要求下的多个子网络,我们将联合优化问题形成为每个满足时延要求的子网络的损失函数的加权和,定义如下:
[0050][0051]
其中,l(
·
)为损失函数,ωn为权重,n为子网络总数,g={g1,g2,

,g
t
}表示满足不同时延要求的子网的门控单元集合。
[0052]
步骤3:智能边缘系统可以根据不同的状态下的时延需求动态选择训练好的子网络进行推理。
[0053]
在本实施例中,使用cifar数据集进行训练和测试,以进一步验证本发明实施例提供的时间感知的动态神经网络设计与优化的实用性。
[0054]
本实施例测试了resnet38、resnet74、resnet110网络在cifar10数据集上的flops(浮点运算次数),我们使用这个指标来衡量模型计算的复杂度。
[0055]
如图4所示,不同门控单元配置下的flops不同,可以看出,当门控单元配置中的0越多,则执行跳过组越多,flops越小,即模型计算的复杂度越小。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献