基于隐式空间映射的端到端边缘智能模型搜索方法和系统

文档序号:29206761发布日期:2022-03-12 01:40阅读:189来源:国知局
基于隐式空间映射的端到端边缘智能模型搜索方法和系统

1.本发明涉及计算机边缘计算和人工智能领域,具体涉及一种基于隐式空间映射的端到端边缘智能模型搜索方法和系统。


背景技术:

2.随着人工智能(ai)技术的广泛应用,越来越多的场景需要将基于深度学习的ai模型运行在计算资源受限的边缘设备上,以满足减少计算时延、降低数据传输带宽、缓解计算中心压力、提高业务可用性、保护数据安全和隐私等需求。因此,边缘智能(ei)这种计算模式得到了快速的发展,而高精度且小规模的神经网络模型对ei就显得尤为重要。然而,限于边缘设备的计算能力和计算资源,以及计算任务实时性等的要求,高精度、高效率、小规模神经网络模型的设计工作是非常困难的。传统的设计方法,是通过对现有的神经网络模型进行压缩、剪枝和参数量化等操作,使得这些规模庞大的神经网络模型能够适应ei的要求。如今,随着神经网络结构搜索(nas)技术的发展,已经越发展示出其在神经网络设计方面的优势和潜力。分析现有方法,可以发向利用nas技术进行面向ei的神经网络模型自动化设计过程还是比较复杂,主要表现为现有nas技术的设计模式和ei应用的需求不匹配上,即nas技术主要面向的是高性能神经网络结构的搜索工作,其设计初衷并未考虑模型规模这一因素。此外,现有的nas技术在实际使用时还需要同其他方法结合起来共同使用,才能够实现神经网络模型的自动化搜索。
3.根据搜索方式的不同,目前的nas方法主要可以分为两类,一类是基于强化学习的搜索方法,另一类是基于梯度优化的搜索方法。基于强化学习的搜索方法通过逐层迭代的方式来获得最终的网络结构,将每一层的卷积核宽度、高度、通道数、步长等,均预设一定的候选值,然后控制器会将每一层的参数选择当成一个分类任务进行处理,每迭代一次会输出目标神经网络一层的结构。迭代完成后,将生成的神经网络的性能评测结果(如,模型精度)作为反馈信息,反向传播回控制器,并基于此来更新控制器的搜索策略,从而使得搜索到的结果是满足任务需求的。不同于强化学习这种基于离散表征的搜索方法,基于梯度优化的方法将离散的神经网络结构映射至连续空间,从而实现对离散的网络结构进行参数化连续表示,从而利用梯度信息对结构参数进行优化搜索。
4.无论是基于强化学习的搜索方法,还是基于梯度优化的搜索方法,虽然都能够针对特定的应用场景给出超越人工设计高精度神经网络模型,但是对于ei这一应用领域所需要的模型,还是不能保证输出的结果能够直接运行于资源受限的边缘设备上。大部分情况下,还需要人工辅助进行模型压缩和适应性优化处理,才可以满足ei应用场景。这主要是由于在执行nas搜索的过程,现有方法都只能在一个维度上进行搜索,即只能保证模型精度,无法协同处理模型精度和模型复杂度这一对相互影响且又相互对立的因素。
5.综上所述,现有搜索方法无法协同处理模型精度和模型复杂度、只能沿单一维度进行模型结构搜索,且使用过程依赖于其他方法。


技术实现要素:

6.本发明要解决的技术问题:针对现有搜索方法无法协同处理模型精度和模型复杂度、只能沿单一维度进行模型结构搜索,且使用过程依赖于其他方法的问题,提供一种基于隐式空间映射的端到端边缘智能模型搜索方法和系统,本发明能够协同处理模型精度和模型复杂度,可沿多种维度进行模型结构搜索,独立性也高。
7.为了解决上述技术问题,本发明采用的技术方案为:
8.一种基于隐式空间映射的端到端边缘智能模型搜索方法,包括:
9.1)随机选择指定数量的神经网络结构作为搜索种子;
10.2)针对搜索种子,获取在隐空间内的连续表征表示ei;
11.3)计算搜索步长δi和搜索方向偏置λi两个超参数;基于隐空间内的连续表征表示计算搜索种子的模型精度、模型参数量的梯度;
12.4)基于搜索步长δi和搜索方向偏置λi两个超参数以及搜索种子的模型精度、模型参数量的梯度在隐空间内开展神经网络结构搜索,得到新搜索种子在隐空间内的连续表征表示e
′i;
13.5)对新搜索种子在隐空间内的连续表征表示e
′i解码重构为新搜索种子;
14.6)将新搜索种子与搜索种子进行对比,若相同则判定搜索失败,跳转执行步骤4)以重新搜索;否则,跳转执行下一步;
15.7)将新搜索种子加入搜索结果集合;
16.8)判断是否满足预设的终止条件,若不满足则更新搜索种子,跳转执行步骤2);否则,返回最终得到的搜索结果集合并退出。
17.可选地,步骤2)包括:
18.2.1)提取神经网络结构的内部拓扑结构信息;
19.2.2)基于内部拓扑结构信息构建神经网络结构的有向无环图dag;
20.2.3)基于神经网络结构的有向无环图dag,分别提取出邻接矩阵m
adj
和操作向量v
opt

21.2.4)检查邻接矩阵m
adj
和操作向量v
opt
的维度,若维度符合要求,则跳转执行下一步;否则对邻接矩阵m
adj
和操作向量v
opt
进行维度填充处理,跳转执行步骤2.4);
22.2.5)基于邻接矩阵m
adj
和操作向量v
opt
计算神经网络结构的编码向量v
nae

23.2.6)基于神经网络结构的编码向量v
nae
通过预先训练好的特征提取网络进行神经网络结构的特征提取,得到搜索种子在隐空间内的连续表征表示ei。
24.可选地,步骤3)中计算搜索步长δi和搜索方向偏置λi两个超参数包括:
25.3.1a)随机初始化搜索步长δi和搜索方向偏置λi;
26.3.2a)根据搜索步长δi和搜索方向偏置λi,得到新搜索种子在隐空间内的连续表征表示e
′i;
27.3.3a)根据原始的搜索种子在隐空间内的连续表征表示ei、新搜索种子在隐空间内的连续表征表示e
′i分别计算模型数量r
gen
、模型精度r
acc
和模型参数量r
par

28.3.4a)若模型数量r
gen
大于等于1则动态调整搜索步长δi,跳转执行步骤3.2a);若模型精度r
acc
和模型参数量r
par
两者之和r
pre
大于等于1则动态调整搜索方向偏置λi,跳转执行步骤3.2a);否则,跳转执行下一步;
29.3.5a)计算模型数量r
gen
、模型精度r
acc
和模型参数量r
par
三者之和,若三者之和满足终止条件,则输出最终得到的搜索步长δi和搜索方向偏置λi;否则,为搜索步长δi和搜索方向偏置λi两者中的至少一者添加扰动以更新取值,跳转执行步骤3.2a)。
30.可选地,步骤3.3a)中模型数量r
gen
、模型精度r
acc
和模型参数量r
par
的计算函数为:
[0031][0032]
上式中,为搜索到的神经网络结构数量,ε是一个用于防止0作为除数的小量,f
acc
(e
′i)为新搜索种子在隐空间内的连续表征表示e
′i的模型精度,f
acc
(ei)为原始的搜索种子在隐空间内的连续表征表示ei的模型精度,f
par
(e
′i)为新搜索种子在隐空间内的连续表征表示e
′i的模型参数量,f
par
(ei)为原始的搜索种子在隐空间内的连续表征表示ei的模型参数量。
[0033]
可选地,步骤3)中计算搜索种子的模型精度、模型参数量的梯度包括:
[0034]
3.1b)分别根据下式计算搜索种子的模型精度、模型参数量;
[0035]
acc=f
acc
(ei),par=f
par
(ei),
[0036]
上式中,f
acc
为模型精度预测器,f
par
为模型参数量预测器,其中模型精度预测器和模型参数量预测器均为机器学习分类器;
[0037]
3.2b)分别根据下式计算搜索种子的模型精度、模型参数量的梯度;
[0038][0039]
上式中,为搜索种子的模型精度的梯度,为搜索种子的模型参数量的梯度。
[0040]
可选地,所述模型精度预测器和模型参数量预测器均为多层感知机,且所述多层感知机在训练时采用的损失函数为:
[0041][0042]
上式中,为损失函数,α∈[0,1]为权重系数,为设计损失函数,为设计限制条件,且设计损失函数的函数表达式为:
[0043][0044]
上式中,表示设计损失函数ω为端到端搜索模型的参数,为拼接器的输出结果,y
ij
为融合标签;其中,和y
ij
的函数表达式为:
[0045][0046]
其中,softmax为激活函数,cat为拼接函数,可以将两个向量拼接成一个向量,f(ei)和f(ej)分别为拼接器的输入,是搜索种子i与搜索种子j所对应神经网络模型的预测结果,该结果在模型精度预测器训练过程中为模型精度预测结果,在模型参数量预测器训练
过程中为模型参数量预测结果,yi和yj为种子i与种子j所对应神经网络结构的标签,在模型精度预测器训练过程中为模型精度,在模型参数量预测器训练过程中为模型参数量;
[0047]
设计限制条件的函数表达式为:
[0048][0049]
上式中,为设计限制条件为(∈(ei)-∈(ej))
×
σ(y
ij
)的变种sigmoid函数,σ(y
ij
)为y
ij
的变种sign函数,∈(ei)和∈(ej)分别为多层感知机中间层的输出特征,分别与搜索种子i和搜索种子j相对应,也是数据对组件的输入,数据对组件选择;且有:
[0050][0051]
上式中,为变种sigmoid函数,x和y分别为函数自变量。
[0052]
可选地,步骤4)中在隐空间内开展神经网络结构搜索时,得到新搜索种子在隐空间内的连续表征表示e
′i的函数表达式为:
[0053][0054]
上式中,ei为搜索种子,δi为搜索步长,λi为搜索方向偏置,为搜索种子的模型精度的梯度,为模型参数量的梯度。
[0055]
可选地,步骤5)中对新搜索种子在隐空间内的连续表征表示e
′i解码重构为新搜索种子包括:
[0056]
5.1)将新搜索种子在隐空间内的连续表征表示e
′i解码获得神经网络结构的编码向量v
nae

[0057]
5.2)根据基于邻接矩阵m
adj
和操作向量v
opt
计算神经网络结构的编码向量v
nae
时邻接矩阵上三角矩阵最后一列元素在编码向量v
nae
中位置的位置向量v
pos
,检查位置向量v
pos
在解码获得的神经网络结构的编码向量v
nae
中对应位置的元素是否为0,若为0,说明对应节点与输出结点之间没有连接关系,继续保持0元素不变;如果不为0,说明对应节点与输出结点之间存在连接关系,且该节点的元素类型一定为输出节点对应的映射值,于是将该位置的元素值强制置为输出节点对应的映射值;
[0058]
5.3)根据位置向量v
pos
,将解码获得的神经网络结构的编码向量v
nae
拆分成不同的向量,并按顺序将拆分之后的向量组合成上三角矩阵,完成上三角矩阵的重组;
[0059]
5.4)逐列分析上三角矩阵列向量的非零元素,从中提取出操作向量对应位置的元素,且原则是所占比例超过设定值的元素为该位置的对应的操作类型;将上三角矩阵的非零元素重置为1,得到了对应的邻接矩阵m
adj
,再结合操作向量v
opt
,重构出该神经网络结构对应的有向无环图dag;
[0060]
5.5)基于有向无环图dag重构出该神经网络结构。
[0061]
此外,本发明还提供一种基于隐式空间映射的端到端边缘智能模型搜索系统,包括相互连接的微处理器和存储器,该微处理器被编程或配置以执行所述基于隐式空间映射的端到端边缘智能模型搜索方法的步骤。
[0062]
此外,本发明还提供一种计算机可读存储介质,该计算机可读存储介质中存储有被编程或配置以执行所述基于隐式空间映射的端到端边缘智能模型搜索方法的计算机程序。
[0063]
和现有技术相比,本发明具有下述优点:
[0064]
1)本发明方法可以利用神经网络结构搜索方法实现满足ei(企业智能)计算需求的神经网络模型的自动化设计,即利用edgenas自动搜索得到高精度、小规模的神经网络模型,可以直接部署于资源受限的边缘设备上。
[0065]
2)本发明方法在神经网络结构搜索的过程中,控制搜索方向沿着模型精度上升和参数规模下降两个方向同时进行,提高了神经网络模型搜索效果,简化了ei计算的模型设计过程。
附图说明
[0066]
图1为本发明实施例方法的原理框架示意图。
[0067]
图2为本发明实施例中二元分类问题的构造方式图。
[0068]
图3为本发明实施例中状态自适应的感知方法的流程图。
[0069]
图4为本发明实施例中方法的搜索流程图。
具体实施方式
[0070]
以下将结合附图和具体实施例对本发明作进一步详细说明。
[0071]
为了简便,下文将本发明基于隐式空间映射的端到端边缘智能模型搜索方法命名为edgenas(edge neural architecture serach)。
[0072]
参见图1和图4,本实施例基于隐式空间映射的端到端边缘智能模型搜索方法包括:
[0073]
1)随机选择指定数量的神经网络结构作为搜索种子;
[0074]
2)针对搜索种子,获取在隐空间内的连续表征表示ei;
[0075]
3)计算搜索步长δi和搜索方向偏置λi两个超参数;基于隐空间内的连续表征表示计算搜索种子的模型精度、模型参数量的梯度;
[0076]
4)基于搜索步长δi和搜索方向偏置λi两个超参数以及搜索种子的模型精度、模型参数量的梯度在隐空间内开展神经网络结构搜索,得到新搜索种子在隐空间内的连续表征表示e
′i;
[0077]
5)对新搜索种子在隐空间内的连续表征表示e
′i解码重构为新搜索种子;
[0078]
6)将新搜索种子与搜索种子进行对比,若相同则判定搜索失败,跳转执行步骤4)以重新搜索;否则,跳转执行下一步;
[0079]
7)将新搜索种子加入搜索结果集合;
[0080]
8)判断是否满足预设的终止条件,若不满足则更新搜索种子,跳转执行步骤2);否则,返回最终得到的搜索结果集合并退出。
[0081]
参见图1,本实施例方法包含了用于完成隐式空间映射的特征提取模块(afe模块)、用于获得梯度的模型精度预测模块、神经网络结构解码模块、二元分类构造器和两类损失函数。各个模块的主要功能描述如下:afe模块用于将离散化的神经网络结构数据转化
为隐空间内的连续表征。模型精度预测模块主要负责利用隐空间内的连续特征,预测该特征对应的神经网络结构的模型精度和参数量。神经网络结构解码模块主要负责将隐空间内的连续特征状态,解码重构成神经网络结构,组成最终的神经网络模型。二元分类构造器主要负责将预测器的输出结构构造成一个新的二元分类数据对《ei|ej》,包含两个来自不同神经网络结构的预测值,以及该二元分类数据对的分类标签y
ij
。本实施例中二元分类问题的构造方式如图2所示。包含预测器的直接输出结果f(ei)以及预测器生成的特征∈(ei)。二元分类问题以预测器的输出结果f(ei)为输入,利用一个拼接操作cat(
·
)将来自两个不同神经网络结构的预测结果拼接成一个二分类问题的输出向量,即长度为2的向量。然后,利用分类损失函数对其进行训练。二元分类问题的约束操作,以预测器生成的特征∈(ei)为输入,通过计算不同神经网络结构特征之间的距离d(h
i-hj)=∈(ei)-∈(ej),来达到约束的目的。这里的d(
·
)与范数的计算过程不同,这里要保留运算结果符号,即保留两个特征之间的大小关系。
[0082]
常见的神经网络结构表示方法均为离散的,通常采用“网络连接拓扑结构+具体操作类型”这种方式进行表示,在输入神经网络结构搜索系统之前需要对其进行连续化处理。传统的方法对于模型结构的连续化处理过程较为简单,直接将其转换成向量或者张量,然后输入到卷积神经网络(cnn)或循环神经网络(lstm)中,这种方式会引入一些限制条件而破搜索过程中各个组件之间独立同分布的前提。本实施例中,采用多空间自适应神经网络结构编码表征以获取在隐空间内的连续表征表示ei;得到离散神经网络结构的连续型表征,即ei∈ε,ε为连续、可微分的隐空间。从而,完成将神经网络结构由离散状态至隐空间的映射。具体地,本实施例中步骤2)包括:
[0083]
2.1)提取神经网络结构的内部拓扑结构信息;
[0084]
2.2)基于内部拓扑结构信息构建神经网络结构的有向无环图dag;
[0085]
2.3)基于神经网络结构的有向无环图dag,分别提取出邻接矩阵m
adj
和操作向量v
opt

[0086]
2.4)检查邻接矩阵m
adj
和操作向量v
opt
的维度,若维度符合要求,则跳转执行下一步;否则对邻接矩阵m
adj
和操作向量v
opt
进行维度填充处理,跳转执行步骤2.4);
[0087]
2.5)基于邻接矩阵m
adj
和操作向量v
opt
计算神经网络结构的编码向量v
nae

[0088]
2.6)基于神经网络结构的编码向量v
nae
通过预先训练好的特征提取网络进行神经网络结构的特征提取,得到搜索种子在隐空间内的连续表征表示ei。
[0089]
步骤2.4)用于检查邻接矩阵和操作向量的维度。如果维度不满足要求,需要对邻接矩阵m
adj
和操作向量v
opt
进行填充。本实施例中,步骤4)中对邻接矩阵m
adj
和操作向量v
opt
进行维度填充处理时,对邻接矩阵m
adj
进行维度填充的步骤包括:在邻接矩阵m
adj
的最后一列之前,填充全零列向量,直到维度满足要求为止;在邻接矩阵m
adj
的最后一行之前,填充全零行向量,直到维度满足要求为止。步骤4)中对邻接矩阵m
adj
和操作向量v
opt
进行维度填充处理时,对操作向量v
opt
进行维度填充的步骤包括:在操作向量v
opt
的最后一个元素之前按位进行填充,每一位都随机填充搜索空间的一种操作类型的映射值,直到维度满足要求为止。
[0090]
本实施例中,步骤2.5)包括:
[0091]
2.5.1)针对邻接矩阵m
adj
的行向量进行遍历,针对遍历得到的任意第i行,将邻接
矩阵的行向量m
adj
[i]和操作向量v
ont
进行逐元素乘法得到然后用得到的新向量替换邻接矩阵对应的行向量m
adj
[i]即:
[0092][0093]
最终,可得到新的邻接矩阵;
[0094]
2.5.2)将新的邻接矩阵的上三角部分逐行展开,即将每行前面的全零元素去除掉,并将展开结果按逐行顺序拼接成一个向量,这个向量即为神经网络结构的编码向量v
nae

[0095]
由于邻接矩阵是一个上三角矩阵,所以做完上一步操作之后得到的新的邻接矩阵仍然是上三角矩阵。将新邻接矩阵的上三角部分逐行展开,即将每行前面的全零元素去除掉,并将展开结果按逐行顺序拼接成一个向量,这个向量就是神经网络结构的编码向量v
nae
;为了重构的需要,步骤2.5.2)中还包括记录邻接矩阵上三角矩阵最后一列元素在编码向量v
nae
中的位置信息,并保存到位置向量v
pos
中。
[0096]
经过上一步的操作,不同搜索空间的神经网络结构都被转化成了维度一样的神经网络结构编码向量v
nae
。针对统一结构的输入数据,可通过预先训练好的特征提取网络来提取特征表征ei。步骤2.6)中预先训练好的特征提取网络为卷积神经网络cnn、长短期记忆网络lstm或基于transformer的特征提取器。本实施例中,采用基于transformer的特征提取器,通过基于transformer的特征提取器获得来自不同搜索空间的神经网络结构的特征表达,表示为:
[0097]ei
=e(v
nae
),
[0098]
上式中,e则表示基于transformer的特征提取器。v
nae
是神经网络结构的编码向量,神经网络结构可以来自任意搜索空间,ei是该神经网络结构的特征表达。于是,可以利用该结果构建“网络结构-精度数据”数据对,来对设计好的精度预测器进行训练,也可以利用训练好的精度预测器对该神经网络结构的精度进行预测。本实施例基于transformer的特征提取器包括嵌入器和多个特征编码器(本实施例中具体包括特征编码器1~特征编码器4共四个特征编码器,此外可以根据需要选择更多或更少数量的特征编码器),嵌入器和多个特征编码器依次级联连接,且所有特征编码器的输出最终合并得到特征表征ei。
[0099]
本实施例中,步骤3)中计算搜索步长δi和搜索方向偏置λi两个超参数包括:
[0100]
3.1a)随机初始化搜索步长δi和搜索方向偏置λi;
[0101]
3.2a)根据搜索步长δi和搜索方向偏置λi,得到新搜索种子在隐空间内的连续表征表示e
′i;
[0102]
3.3a)根据原始的搜索种子在隐空间内的连续表征表示ei、新搜索种子在隐空间内的连续表征表示e
′i分别计算模型数量r
gen
、模型精度r
acc
和模型参数量r
par

[0103]
3.4a)若模型数量r
gen
大于等于1则动态调整搜索步长δi,跳转执行步骤3.2a);若模型精度r
acc
和模型参数量r
par
两者之和r
pre
大于等于1则动态调整搜索方向偏置λi,跳转执行步骤3.2a);否则,跳转执行下一步;
[0104]
3.5a)计算模型数量r
gen
、模型精度r
acc
和模型参数量r
par
三者之和,若三者之和满足终止条件,则输出最终得到的搜索步长δi和搜索方向偏置λi;否则,为搜索步长δi和搜索方向偏置λi两者中的至少一者添加扰动以更新取值,跳转执行步骤3.2a)。
[0105]
本实施例中,步骤3.3a)中模型数量r
gen
、模型精度r
acc
和模型参数量r
par
的计算函数为:
[0106][0107]
上式中,为搜索到的神经网络结构数量,ε是一个用于防止0作为除数的小量,f
acc
(e
′i)为新搜索种子在隐空间内的连续表征表示e
′i的模型精度,f
acc
(ei)为原始的搜索种子在隐空间内的连续表征表示ei的模型精度,f
par
(e
′i)为新搜索种子在隐空间内的连续表征表示e
′i的模型参数量,f
par
(ei)为原始的搜索种子在隐空间内的连续表征表示ei的模型参数量。
[0108]
本实施例中,步骤3)中计算搜索种子的模型精度、模型参数量的梯度包括:
[0109]
3.1b)分别根据下式计算搜索种子的模型精度、模型参数量;
[0110]
acc=f
acc
(ei),par=f
par
(ei),
[0111]
上式中,f
acc
为模型精度预测器,f
par
为模型参数量预测器,其中模型精度预测器和模型参数量预测器均为机器学习分类器;
[0112]
3.2b)由于神经网络结构连续型表征ei所在的隐空间ε是连续且可微分的,于是可以获得隐空间中ei关于模型精度(acc)和模型参数量(par)的梯度,分别根据下式计算搜索种子的模型精度、模型参数量的梯度;
[0113][0114]
上式中,为搜索种子的模型精度的梯度,为搜索种子的模型参数量的梯度。
[0115]
本实施例中,得到离散神经网络结构的连续表征之后,我们利用一个简单的多层感知机(mlp)来预测该网络结构组成的神经网络模型的精度(accuracy)以及模型参数量(parameter amount)。因此,模型精度预测器和模型参数量预测器均为多层感知机(mlp),且所述多层感知机在训练时采用的损失函数为:
[0116][0117]
上式中,为损失函数,α∈[0,1]为权重系数,为设计损失函数,为设计限制条件,且设计损失函数的函数表达式为:
[0118][0119]
上式中,表示设计损失函数ω为端到端搜索模型的参数,为拼接器的输出结果,y
ij
为融合标签;其中,和y
ij
的函数表达式为:
[0120][0121]
其中,softmax为激活函数,cat为拼接函数,可以将两个向量拼接成一个向量,f
(ei)和f(ej)分别为拼接器的输入,是搜索种子i与搜索种子j所对应神经网络模型的预测结果,该结果在模型精度预测器训练过程中为模型精度预测结果,在模型参数量预测器训练过程中为模型参数量预测结果,yi和yj为种子i与种子j所对应神经网络结构的标签,在模型精度预测器训练过程中为模型精度,在模型参数量预测器训练过程中为模型参数量;
[0122]
设计限制条件的函数表达式为:
[0123][0124]
上式中,为设计限制条件为(∈(ei)-∈(ej))
×
σ(y
ij
)的变种sigmoid函数,σ(y
ij
)为y
ij
的变种sign函数,∈(ei)和∈(ej)分别为多层感知机中间层的输出特征,分别与搜索种子i和搜索种子j相对应,也是数据对组件的输入,数据对组件选择;且有:
[0125][0126]
上式中,为变种sigmoid函数,x和y分别为函数自变量。
[0127]
本实施例中,步骤4)中在隐空间内开展神经网络结构搜索时,得到新搜索种子在隐空间内的连续表征表示e
′i的函数表达式为:
[0128][0129]
上式中,ei为搜索种子,δi为搜索步长,λi为搜索方向偏置,为搜索种子的模型精度的梯度,为模型参数量的梯度。
[0130]
本实施例方法(edgenas)在进行神经网络结构搜索时,是在隐空间内进行的,即由初始状态(ei)出发,沿着搜索路径按搜索步长搜索到新的状态(e
′i),即新的神经网络结构的特征表达;由于神经网络结构搜索的目标是获得高精度、小规模的神经网络模型,即搜索到的e
′i应满足:
[0131][0132]
搜索需要兼顾模型精度和模型规模,所以在搜索路径的规划需要同时考虑两个维度,使得搜索过程能够沿着模型精度上升和模型参数量下降的这两个方向同时前进,即:
[0133][0134]
其中,搜索步长δi和方向偏置λi的选择非常重要,对于搜索结果的影响也非常大,于是我们给出了一种状态自适应的感知方法用于根据搜索状态实时调整这两个参数的大小,即:
[0135][0136]
图3是本实施例状态自适应的感知方法r(
·
)的流程图,主要步骤包括:首先,随机初始化搜索步长δi和方向偏置λi,利用步骤3.3计算新的神经网络结构表征e
′i;接下来,分别计算r
gen
,r
acc
和r
par
。r
gen
用于标志搜索结果的数量,r
acc
用于标志搜索结果的精度,r
par
用于标志搜索结果的参数量。然后,判断r
gen
是否小于1,如果小于1说明当前搜索参数是有效的,可以搜索到新的神经网络结构,如果大于1说明当前的搜索参数无法搜索到新的神经网
络结构,需要调整搜索步长δi。同时,判断r
pre
=r
acc
+r
par
的结果是否小于1,若小于1则说明搜索到的神经网络结构精度比当前结构有提升,同时参数量有下降,否则需要调整方向偏置λi。如果r
gen
和r
pre
均小于1,则计算r
gen
+r
acc
+r
par
的值,判断是否满足终止条件。如果满足,则返回δi和λi作为搜索参数,开始神经网络结构搜索;如果不满足,则加入扰动后更新δi和λi的值,重复上述步骤,直到获得满足条件的δi和λi为止。
[0137]
步骤5)中对新搜索种子在隐空间内的连续表征表示e
′i解码重构为新搜索种子包括:
[0138]
5.1)将新搜索种子在隐空间内的连续表征表示e
′i解码获得神经网络结构的编码向量v
nae

[0139]
5.2)根据基于邻接矩阵m
adj
和操作向量v
opt
计算神经网络结构的编码向量v
nae
时邻接矩阵上三角矩阵最后一列元素在编码向量v
nae
中位置的位置向量v
pos
,检查位置向量v
pos
在解码获得的神经网络结构的编码向量v
nae
中对应位置的元素是否为0,若为0,说明对应节点与输出结点之间没有连接关系,继续保持0元素不变;如果不为0,说明对应节点与输出结点之间存在连接关系,且该节点的元素类型一定为输出节点对应的映射值,于是将该位置的元素值强制置为输出节点对应的映射值;
[0140]
5.3)根据位置向量v
pos
,将解码获得的神经网络结构的编码向量v
nae
拆分成不同的向量,并按顺序将拆分之后的向量组合成上三角矩阵,完成上三角矩阵的重组;
[0141]
5.4)逐列分析上三角矩阵列向量的非零元素,从中提取出操作向量对应位置的元素,且原则是所占比例超过设定值的元素为该位置的对应的操作类型;将上三角矩阵的非零元素重置为1,得到了对应的邻接矩阵m
adj
,再结合操作向量v
opt
,重构出该神经网络结构对应的有向无环图dag;
[0142]
5.5)基于有向无环图dag重构出该神经网络结构。
[0143]
本实施例中,步骤5.1)中解码采用通过预先训练好的解码器来将新搜索种子在隐空间内的连续表征表示e
′i解码获得神经网络结构的编码向量v
nae
;该解码器为预训练好的神经网络结构编码生成网络,可以为卷积神经网络cnn、长短期记忆网络lstm或基于transformer的神经网络结构解码器。本实施例中,采用基于transformer的神经网络结构解码器,通过基于transformer的解码器完成来自不同搜索空间的神经网络结构的解码过程。本实施例中,针对该解码器,采用的训练损失函数为:
[0144][0145]
上式中,表示解码器采用的训练损失函数,crossentropy表示通用的交叉熵损失函数,计算公式为:
[0146][0147]
上式中,f
dec
(
·
)为解码器,ai为ei对应的神经网络结构。且构建端到端的训练损失函数为:
[0148][0149]
上式中,为端到端的训练损失函数,该损失函数由三个部分组成。其中,为模型精度预测器的训练损失函数,计算方法如步骤6所述;为模型参数量预测器的训练
损失函数,计算方法同前;为解码器的训练损失函数。λ
acc
、λ
par
和λ
dec
权重系数,均为区间(0,1)内的实数。利用多任务学习的方式,根据训练情况动态调整(λ
acc

par

dec
)的值,最终训练得到端到端的搜索算法。
[0150]
参见前文可知,对神经网络结构解码与重构的过程中,首先对神经网络结构的特征表征ei的解码获得神经网络结构的编码向量v
nae
;接下来,需要对编码向量进行校验。校验完成后,按得到的位置向量v
pos
对编码向量进行拆分。将拆分得到的向量按顺序重组成上三角矩阵。接下来,根据得到的上三角矩阵,重构出该候选神经网络结构对应的有向无环图dag。最后,基于神经网络结构内部连接关系信息的提取方式,由有向无环图dag重构出对应的神经网络结构,返回解码和重构结果。
[0151]
综上所述,本实施例方法首先在搜索空间内随机选择一定数量的神经网络结构作为搜索种子,利用获取搜索种子在隐空间内的连续特征表示;接下来,利用步骤2计算出精度梯度和参数量梯度利用计算出搜索步长δi和搜索方向偏置λi;然后,利用在隐空间内开展神经网络结构搜索,对于搜索到的新神经网络结构特征表达,利用解码器对其进行解码与重构;将重构的结果与搜索种子进行对比,如果相同则搜索失败,需要重新搜索,如果不同,则形成搜索集合;在此基础上,判断是否满足终止条件,如果满足则返回搜索结果,否则利用搜索到的结果更新搜索种子集合,再次重复上述步骤,开展新的搜索,直到满足终止条件,返回最终搜索结果。本发明方法包括神经网络结构内部结构的特征信息提取,基于提取到的特征信息构建出连续、可微分且足够规则的隐式映射空间;利用多层感知机(mlp)在隐式空间中预测神经网络结构所对应的神经网络模型的精度(accuracy)以及该模型的参数量(parameter amount);在隐式空间中隐式空间中构建神经网络结构关于模型精度(accuracy)和模型参数量(parameter amount)的梯度信息,即模型精度梯度和模型参数量梯度利用梯度下降方法构建隐式空间中搜索路径,控制搜索进程朝着模型精度提升且模型参数量下降的方向进行;最后设计了一种端到端的训练和搜索算法,使得该过程可以高效、便捷的实施。本发明能够同时满足多种应用场景下神经网络结构的搜索,亦可扩展至其他维护的搜索条件。本实施例方法可以利用神经网络结构搜索方法实现满足ei(企业智能)计算需求的神经网络模型的自动化设计,即利用本实施例方法自动搜索得到高精度、小规模的神经网络模型,可以直接部署于资源受限的边缘设备上。本实施例方法在神经网络结构搜索的过程中,控制搜索方向沿着模型精度上升和参数规模下降两个方向同时进行,提高了神经网络模型搜索效果,简化了ei计算的模型设计过程。
[0152]
此外,本实施例还提供一种基于隐式空间映射的端到端边缘智能模型搜索系统,包括相互连接的微处理器和存储器,该微处理器被编程或配置以执行所述基于隐式空间映射的端到端边缘智能模型搜索方法的步骤。
[0153]
此外,本实施例还提供一种计算机可读存储介质,该计算机可读存储介质中存储有被编程或配置以执行所述基于隐式空间映射的端到端边缘智能模型搜索方法的计算机程序。
[0154]
本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机
可读存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。本技术是参照根据本技术实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0155]
以上所述仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1