神经网络模型优化方法及相关设备与流程

文档序号:33620346发布日期:2023-03-25 11:21阅读:47来源:国知局
神经网络模型优化方法及相关设备与流程

1.本发明实施例涉及人工智能领域,尤其涉及一种神经网络模型优化方法及相关设备。


背景技术:

2.神经网络模型可以完成诸如目标检测、目标分类、机器翻译、语音识别等任务,因此在安防、交通、工业生产等各个领域被广泛使用。
3.其中,transformer网络模型是不包含卷积层,完全由自注意力(self-attention)层、编码器注意力(encoder-attention)层和前馈(feed-forward)层构成的深度神经网络模型。得益于self-attention操作在全局感受野上提取特征的能力,transformer网络模型在计算机视觉,自然语言处理等方面有着广泛的应用。其中,标准transformer的网络结构如图1a所示,图1a、图1b是标准transformer网络模型的结构示意图;标准transformer网络模型由6个编码器(encoder)和6个解码器(decoder)组成。前馈层(图1a中的f)由全连接操作组成,负责提取数据在channel维度间的相关性;而self-attention层(图1a中s)主要由self-attention操作组成,提取数据另一维度(patch或token)的特征。而编码器注意力层是将编码器的输出特征与解码器的中间特征进行attention操作。
4.进一步地,transformer网络模型中所有self-attention层的质询(query)特征转换模块,键(key)特征转换模块和值(value)特征转换模块的输入完全相同,即所有self-attention层的质询特征转换模块,键特征转换模块和值特征转换模块的输入均为其前一层的输出。参考图1b,以自注意力层位于模型的第六层为例,自注意力层的质询特征转换模块(图1b中的q),键特征转换模块(图1b中的k)和值特征转换模块(图1b中的v)的输入均为模型中第五层的输出特征。因此,transformer网络整体呈“直筒型”,这样的网络设计使得transformer网络的输入连接方式固定,无法保证transformer网络在所有任务上都能有良好的性能。


技术实现要素:

5.本技术提供一种神经网络模型优化方法及相关设备,可以实现对神经网络模型的优化处理,改善模型的表达能力,以提升模型的性能。
6.第一方面,提供一种神经网络模型优化方法,包括以下步骤:对第一神经网络模型进行优化处理得到第二神经网络模型;其中,第二神经网络模型包括优化注意力层和位于优化注意力层之前的至少两个在前网络层,至少两个在前网络层串联连接;优化注意力层包括优化质询query特征变换模块、优化键key特征变换模块以及优化值value特征变换模块,优化质询query特征变换模块的输入是根据优化注意力层的至少一个在前网络层的输出特征得到的;优化键key特征变换模块的输入是根据优化注意力层的至少一个在前网络层的输出特征得到的;优化值value特征变换模块的输入是根据优化注意力层的至少一个在前网络层的输出特征得到的;其中,优化质询query特征变换模块、优化键key特征变换模
块、优化值value特征变换模块中的至少一个特征变换模块的输入是根据优化注意力层的至少一个非相邻在前网络层的输出特征得到的。
7.本发明实施例中的优化方法,通过对第一神经网络模型进行优化处理,以得到第二神经网络模型,其中,第二神经网络模型包括优化注意力层和位于优化注意力层之前的至少两个在前网络层,每个在前网络层可以为单个网络层或者是由多个并列的网络层组成。而优化注意力层包括优化质询query特征变换模块、优化键key特征变换模块以及优化值value特征变换模块。优化质询query特征变换模块的输入是根据优化注意力层的至少一个在前网络层的输出特征得到的;优化键key特征变换模块的输入是根据优化注意力层的至少一个在前网络层的输出特征得到的;优化值value特征变换模块的输入是根据优化注意力层的至少一个在前网络层的输出特征得到的;其中,优化质询query特征变换模块、优化键key特征变换模块、优化值value特征变换模块中的至少一个特征变换模块的输入是根据优化注意力层的至少一个非相邻在前网络层的输出特征得到的。这样优化处理得到的第二神经网络模型,由于补充了网络的层间特征信息,增强了模型的表达能力,有利于提升模型的任务处理性能。
8.可选地,目标特征变换模块的输入为优化注意力层的至少一个在前网络层的输出特征;目标特征变换模块为优化质询query特征变换模块、优化键key特征变换模块、优化值value特征变换模块中的任一个。
9.可选地,第一神经网络模型包括串联连接的注意力层和位于注意力层之前的至少两个在前网络层,至少两个在前网络层串联连接;对第一神经网络模型进行优化处理得到第二神经网络模型,具体包括以下步骤:确定第一神经网络模型的搜索空间,搜索空间中的元素包括注意力层中的第一质询query特征变换模块、第一键key特征变换模块、第一值value特征变换模块可连接的在前网络层;利用基于搜索空间的搜索算法确定优化注意力层,其中,搜索算法用于根据搜索条件确定优化质询query特征变换模块连接的第一在前网络层、优化键key特征变换模块连接的第二在前网络层、优化值value特征变换模块连接的第三在前网络层,第一在前网络层、第二在前网络层和第三在前网络层中的至少一个是优化注意力层的非相邻在前网络层。
10.本发明实施例中,在确定第一神经网络模型对应的搜索空间之后,利用基于搜索空间的搜索算法进行搜索,可以确定优化注意力层,也即确定优化注意力层中的优化质询query特征变换模块连接的第一在前网络层、优化键key特征变换模块连接的第二在前网络层、优化值value特征变换模块连接的第三在前网络层,其中,第一在前网络层、第二在前网络层和第三在前网络层中的至少一个是优化注意力层的非相邻在前网络层。可见,优化注意力层与在前网络层的连接结构不同于第一神经网络模型中的注意力层与在前网络层的连接结构,优化注意力层关注层间特征融合,因此,优化注意力层能增强第二神经网络模型的表达能力,有助于提升第二神经网络模型的性能。
11.可选地,搜索算法包括进化算法、强化学习算法、网络结构搜索算法中的任一个。
12.其中,进化算法的训练收敛速度快,有利于提升模型的优化速度。
13.可选地,搜索空间中的元素还包括以下至少一项:第一神经网络模型可选的激活函数、第一神经网络模型可选的归一化操作、第一神经网络模型可选的特征图的操作类型、第一神经网络模型可选的并行支路个数、可选的搜索单元中的模块个数、除注意力层之外
的在前网络层之间可选的连接方式。
14.本发明实施例中,在确定第一神经网络模型对应的搜索空间时,除了将注意力层与在前网络层之间可能的连接关系作为搜索空间的元素之外,还可以扩展搜索空间中的元素,以提升搜索后确定的第二神经网络模型的模型性能。
15.可选地,目标特征变换模块的输入为优化注意力层的至少两个在前网络层的输出特征和在前网络层的权重加权求和得到的输入特征;目标特征变换模块为优化质询query特征变换模块、优化键key特征变换模块、优化值value特征变换模块中的任一个。
16.可选地,第二神经网络模型还包括第一融合模块、第二融合模块和第三融合模块,优化注意力层全部的在前网络层的输出端与第一融合模块的输入端连接,第一融合模块的输出端与优化质询query特征变换模块的输入端连接;第一融合模块用于根据与自身连接的在前网络层进行加权求和处理得到优化质询query特征变换模块的第一输入特征,第一融合模块的参数包括与自身连接的在前网络层对应的第一权重;优化注意力层全部的在前网络层的输出端与第二融合模块的输入端连接,第二融合模块的输出端与优化键key特征变换模块的输入端连接;第二融合模块用于根据与自身连接的在前网络层进行加权求和处理得到优化键key特征变换模块的第二输入特征,第二融合模块的参数包括与自身连接的在前网络层对应的第二权重;优化注意力层全部的在前网络层的输出端与第三融合模块的输入端连接,第三融合模块的输出端与优化值value特征变换模块的输入端连接;第三融合模块用于根据与自身连接的在前网络层进行加权求和处理得到优化值value特征变换模块的第三输入特征,第二融合模块的参数包括与自身连接的在前网络层对应的第三权重。
17.本发明实施例中,以优化质询query特征变换模块为例,在其之前增加第一融合模块,该第一融合模块用于根据优化注意力层全部的在前网络层进行加权求和以得到优化质询query特征变换模块的第一输入特征,其中,第一融合模块的参数包括与自身连接的在前网络层对应的第一权重。这样,利用第一融合模块,可以融合优化注意力层的在前网络层的特征,以增强优化注意力层的表达能力,提升第二神经网络模型的性能。
18.可选地,第一融合模块、第二融合模块、第三融合模块中的任一个包括以下任一个结构:静态加权模块、多层感知机模块、注意力模块。
19.第二方面,本技术还提供一种神经网络模型,神经网络模型包括优化注意力层和位于优化注意力层之前的至少两个在前网络层,至少两个在前网络层串联连接,优化注意力层包括优化质询query特征变换模块、优化键key特征变换模块以及优化值value特征变换模块;优化质询query特征变换模块的输入是根据优化注意力层的至少一个在前网络层的输出特征得到的;优化键key特征变换模块的输入是根据优化注意力层的至少一个在前网络层的输出特征得到的;优化值value特征变换模块的输入是根据优化注意力层的至少一个在前网络层的输出特征得到的;其中,优化质询query特征变换模块、优化键key特征变换模块、优化值value特征变换模块中的至少一个特征变换模块的输入是根据优化注意力层的至少一个非相邻在前网络层的输出特征得到的。
20.本发明实施例中提供的上述神经网络模型,由于其补充了网络的层间特征信息,增强了模型的表达能力,有利于提升模型的任务处理性能。
21.可选地,目标特征变换模块的输入为优化注意力层的至少一个在前网络层的输出特征;目标特征变换模块为优化质询query特征变换模块、优化键key特征变换模块、优化值
value特征变换模块中的任一个。
22.可选地,目标特征变换模块的输入为优化注意力层的至少一两在前网络层的输出特征和在前网络层的权重加权求和得到的输入特征;目标特征变换模块为优化质询query特征变换模块、优化键key特征变换模块、优化值value特征变换模块中的任一个。
23.可选地,神经网络模型还包括第一融合模块、第二融合模块和第三融合模块,优化注意力层全部的在前网络层的输出端与第一融合模块的输入端连接,第一融合模块的输出端与优化质询query特征变换模块的输入端连接;第一融合模块用于根据与自身连接的在前网络层进行加权求和处理得到输入优化质询query特征变换模块的第一输入特征,第一融合模块的参数包括与自身连接的在前网络层对应的第一权重;优化注意力层全部的在前网络层的输出端与第二融合模块的输入端连接,第二融合模块的输出端与优化键key特征变换模块的输入端连接;第二融合模块用于根据与自身连接的在前网络层进行加权求和处理得到输入优化键key特征变换模块的第二输入特征,第二融合模块的参数包括与自身连接的在前网络层对应的第二权重;优化注意力层全部的在前网络层的输出端与第三融合模块的输入端连接,第三融合模块的输出端与优化值value特征变换模块的输入端连接;第三融合模块用于根据与自身连接的在前网络层进行加权求和处理得到输入优化值value特征变换模块的第三输入特征,第二融合模块的参数包括与自身连接的在前网络层对应的第三权重。
24.可选地,第一融合模块、第二融合模块、第三融合模块中的任一个包括以下任一个结构:静态加权模块、多层感知机模块、注意力模块。
25.第三方面,本技术还提供一种模型优化装置,包括:处理模块,用于对第一神经网络模型进行优化处理得到第二神经网络模型;其中,第二神经网络模型包括优化注意力层和位于优化注意力层之前的至少两个在前网络层,至少两个在前网络层串联连接,优化注意力层包括优化质询query特征变换模块、优化键key特征变换模块以及优化值value特征变换模块;优化质询query特征变换模块的输入是根据优化注意力层的至少一个在前网络层的输出特征得到的;优化键key特征变换模块的输入是根据优化注意力层的至少一个在前网络层的输出特征得到的;优化值value特征变换模块的输入是根据优化注意力层的至少一个在前网络层的输出特征得到的;其中,优化质询query特征变换模块、优化键key特征变换模块、优化值value特征变换模块中的至少一个特征变换模块的输入是根据优化注意力层的至少一个非相邻在前网络层的输出特征得到的。
26.第四方面,本技术还提供一种模型优化设备,包括处理器和存储器,其中,处理器和存储器相连,其中,存储器用于存储程序代码,处理器用于调用程序代码,以执行如第一方面所述的神经网络模型优化方法。
27.第五方面,本技术还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行以实现如第一方面所述的神经网络模型优化方法。
28.第六方面,本技术还提供一种包含指令的计算机程序产品,当所述计算机程序产品在计算机上运行时,使得计算机执行第一方面所述的神经网络模型优化方法。
29.第七方面,提供一种芯片,所述芯片包括处理器与数据接口,所述处理器通过所述数据接口读取存储器上存储的指令,执行第一方面所述的神经网络模型优化方法。
30.可选地,作为一种实现方式,所述芯片还可以包括存储器,所述存储器中存储有指令,所述处理器用于执行所述存储器上存储的指令,当所述指令被执行时,所述处理器用于执行第一方面所述的神经网络模型优化方法。
31.第八方面,本技术还提供一种终端设备,所述终端设备上运行有第二方面所述的神经网络模型。
附图说明
32.下面对本技术实施例用到的附图进行介绍。
33.图1a、图1b是标准transformer网络模型的结构示意图;
34.图2是注意力层的示意图;
35.图3是本技术实施例提供的一种系统架构示意图;
36.图4是本技术实施例提供的一种卷积神经网络的示意图;
37.图5是本技术实施例提供的一种芯片硬件结构示意图;
38.图6是本发明实施例提供的一种神经网络模型优化方法的流程示意图;
39.图7是本发明实施例提供的一种优化注意力层的结构示意图;
40.图8是本发明实施例提供的一种进化算法的框架示意图;
41.图9a、图9b、图9c是本发明实施例提供的一种网络结构搜索过程示意图;
42.图10是本发明实施例提供的一种优化处理之后的transformer网络模型的结构示意图;
43.图11是本发明实施例提供的另一种进化算法的框架示意图;
44.图12是本发明实施例提供的另一种优化注意力层的结构示意图;
45.图13a、图13b、图13c是本发明实施例提供的一种第一融合模块的结构示意图;
46.图14是本发明实施例提供的一种模型优化装置的结构示意图;
47.图15是本发明实施例提供的一种模型优化设备的结构示意图;
48.图16是本发明实施例提供的一种终端设备的结构示意图。
具体实施方式
49.下面将结合附图,对本技术中的技术方案进行描述。
50.由于本技术实施例涉及大量神经网络的应用,为了便于理解,下面先对本技术实施例涉及的相关术语及神经网络等相关概念进行介绍。
51.(1)、神经网络
52.神经网络可以是由神经单元组成的,神经单元可以是指以xs和截距1为输入的运算单元,该运算单元的输出可以为:
[0053][0054]
其中,s=1、2、
……
n,n为大于1的自然数,ws为xs的权重,b为神经单元的偏置。f为神经单元的激活函数(activation functions),用于将非线性特性引入神经网络中,来将神经单元中的输入信号转换为输出信号。该激活函数的输出信号可以作为下一层卷积层的输入。激活函数可以是sigmoid函数。神经网络是将许多个上述单一的神经单元联结在一起形成的网络,即一个神经单元的输出可以是另一个神经单元的输入。每个神经单元的输入
可以与前一层的局部接受域相连,来提取局部接受域的特征,局部接受域可以是由若干个神经单元组成的区域。
[0055]
(2)、深度神经网络
[0056]
深度神经网络(deep neural network,dnn),也称多层神经网络,可以理解为具有很多层隐含层的神经网络,这里的“很多”并没有特别的度量标准。从dnn按不同层的位置划分,dnn内部的神经网络可以分为三类:输入层,隐含层,输出层。一般来说第一层是输入层,最后一层是输出层,中间的层数都是隐含层。层与层之间是全连接的,也就是说,第i层的任意一个神经元一定与第i+1层的任意一个神经元相连。虽然dnn看起来很复杂,但是就每一层的工作来说,其实并不复杂,简单来说就是如下线性关系表达式:其中,是输入向量,是输出向量,是偏移向量,w是权重矩阵(也称系数),α()是激活函数。每一层仅仅是对输入向量经过如此简单的操作得到输出向量由于dnn层数多,则系数w和偏移向量的数量也就很多了。这些参数在dnn中的定义如下所述:以系数w为例:假设在一个三层的dnn中,第二层的第4个神经元到第三层的第2个神经元的线性系数定义为上标3代表系数w所在的层数,而下标对应的是输出的第三层索引2和输入的第二层索引4。总结就是:第l-1层的第k个神经元到第l层的第j个神经元的系数定义为需要注意的是,输入层是没有w参数的。在深度神经网络中,更多的隐含层让网络更能够刻画现实世界中的复杂情形。理论上而言,参数越多的模型复杂度越高,“容量”也就越大,也就意味着它能完成更复杂的学习任务。训练深度神经网络的也就是学习权重矩阵的过程,其最终目的是得到训练好的深度神经网络的所有层的权重矩阵(由很多层的向量w形成的权重矩阵)。
[0057]
(3)、卷积神经网络
[0058]
卷积神经网络(cnn,convolutional neuron network)是一种带有卷积结构的深度神经网络。卷积神经网络包含了一个由卷积层和子采样层构成的特征抽取器。该特征抽取器可以看作是滤波器,卷积过程可以看作是使用一个可训练的滤波器与一个输入的图像或者卷积特征平面(feature map)做卷积。卷积层是指卷积神经网络中对输入信号进行卷积处理的神经元层。在卷积神经网络的卷积层中,一个神经元可以只与部分邻层神经元连接。一个卷积层中,通常包含若干个特征平面,每个特征平面可以由一些矩形排列的神经单元组成。同一特征平面的神经单元共享权重,这里共享的权重就是卷积核。共享权重可以理解为提取图像信息的方式与位置无关。这其中隐含的原理是:图像的某一部分的统计信息与其他部分是一样的。即意味着在某一部分学习的图像信息也能用在另一部分上。所以对于图像上的所有位置,都能使用同样的学习得到的图像信息。在同一卷积层中,可以使用多个卷积核来提取不同的图像信息,一般地,卷积核数量越多,卷积操作反映的图像信息越丰富。
[0059]
卷积核可以以随机大小的矩阵的形式初始化,在卷积神经网络的训练过程中卷积核可以通过学习得到合理的权重。另外,共享权重带来的直接好处是减少卷积神经网络各层之间的连接,同时又降低了过拟合的风险。
[0060]
(4)、循环神经网络
[0061]
循环神经网络(rnn,recurrent neural networks)是用来处理序列数据的。在传
统的神经网络模型中,是从输入层到隐含层再到输出层,层与层之间是全连接的,而对于每一层层内之间的各个节点是无连接的。这种普通的神经网络虽然解决了很多难题,但是却仍然对很多问题却无能无力。例如,你要预测句子的下一个单词是什么,一般需要用到前面的单词,因为一个句子中前后单词并不是独立的。rnn之所以称为循环神经网路,即一个序列当前的输出与前面的输出也有关。具体的表现形式为网络会对前面的信息进行记忆并应用于当前输出的计算中,即隐含层本层之间的节点不再无连接而是有连接的,并且隐含层的输入不仅包括输入层的输出还包括上一时刻隐含层的输出。理论上,rnn能够对任何长度的序列数据进行处理。对于rnn的训练和对传统的cnn或dnn的训练一样。同样使用误差反向传播算法,不过有一点区别:即,如果将rnn进行网络展开,那么其中的参数,如w,是共享的;而如上举例上述的传统神经网络却不是这样。并且在使用梯度下降算法中,每一步的输出不仅依赖当前步的网络,还依赖前面若干步网络的状态。该学习算法称为基于时间的反向传播算法back propagation through time(bptt)。
[0062]
既然已经有了卷积神经网络,为什么还要循环神经网络?原因很简单,在卷积神经网络中,有一个前提假设是:元素之间是相互独立的,输入与输出也是独立的,比如猫和狗。但现实世界中,很多元素都是相互连接的,比如股票随时间的变化,再比如一个人说了:我喜欢旅游,其中最喜欢的地方是云南,以后有机会一定要去。这里填空,人类应该都知道是填“云南”。因为人类会根据上下文的内容进行推断,但如何让机器做到这一步?rnn就应运而生了。rnn旨在让机器像人一样拥有记忆的能力。因此,rnn的输出就需要依赖当前的输入信息和历史的记忆信息。
[0063]
(5)、损失函数
[0064]
在训练深度神经网络的过程中,因为希望深度神经网络的输出尽可能的接近真正想要预测的值,所以可以通过比较当前网络的预测值和真正想要的目标值,再根据两者之间的差异情况来更新每一层神经网络的权重向量(当然,在第一次更新之前通常会有初始化的过程,即为深度神经网络中的各层预先配置参数),比如,如果网络的预测值高了,就调整权重向量让它预测低一些,不断的调整,直到深度神经网络能够预测出真正想要的目标值或与真正想要的目标值非常接近的值。因此,就需要预先定义“如何比较预测值和目标值之间的差异”,这便是损失函数(loss function)或目标函数(objective function),它们是用于衡量预测值和目标值的差异的重要方程。其中,以损失函数举例,损失函数的输出值(loss)越高表示差异越大,那么深度神经网络的训练就变成了尽可能缩小这个loss的过程。
[0065]
(6)、反向传播算法
[0066]
卷积神经网络可以采用误差反向传播(back propagation,bp)算法在训练过程中修正初始的超分辨率模型中参数的大小,使得超分辨率模型的重建误差损失越来越小。具体地,前向传递输入信号直至输出会产生误差损失,通过反向传播误差损失信息来更新初始的超分辨率模型中参数,从而使误差损失收敛。反向传播算法是以误差损失为主导的反向传播运动,旨在得到最优的超分辨率模型的参数,例如权重矩阵。
[0067]
(7)、attention
[0068]
注意力操作(attention)从数据包含的大量信息中提取出用于描述特征重要性的权重,并将权重与特征结合,使网络集中关注权重更大的信息。执行注意力操作的网络层为
注意力层,具体地,参考图2,图2是注意力层的示意图;注意力层包括第一质询query特征变换模块(即图2中的q模块)、第一键key特征变换模块(即图2中的k模块)、第一值value特征变换模块(即图2中的v模块),注意力层的输入xq、xk、xv分别经过q模块、k模块、v模块进行特征变换后成为k
out
,q
out
,v
out
;根据k
out
和q
out
生成相关权重,然后根据权重系数对v
out
进行加权求和,最后输出加权后的特征out。其中,自注意力操作(self-attention)是特殊的注意力操作,即当注意力层的xq=xk=xv=x时,此时的注意力层即为自注意力层。
[0069]
参考图2,下面以介绍其基本过程。自注意力层的输入为x,首先对x分别做三个特征变换,得到q
out
,k
out
和v
out

[0070]qout
=xw
qkout
=xw
kvout
=xwvꢀꢀꢀ
(1)
[0071]
式(1)中x为自注意力层的输入,wq,wk,wv为特征变换矩阵,wq,wk,wv在卷积神经网络中为全连接层,它们的权值为可学参数。将x分别与wq,wk,wv相乘,得到q
out
,k
out
和v
out
的目的是将x特征映射到另一维度,使映射后的特征能够满足attention操作中对q
out
,k
out
和v
out
的要求,wq,wk,wv的功能,将随着深度神经网络训练过程的进行逐渐体现。其中,一般地,经过wk变换后得到k
out
能够描述输入的内容特征,代表输入特征是什么样的;经过wq特征变换后的q
out
能够包含关于输入的引导特征,代表模型处理需要哪些信息;而经过wv特征变换后的v
out
为一表达了输入特征的向量。
[0072]
然后将q
out
与k
out
作矩阵乘(matmul),再利用数值缩放(scale)层进行数值缩放处理;可选地,在文本处理领域中,注意力操作中,还利用掩码(mask)层对数值缩放后的数据进行处理;最后经过softmax归一化操作后得到描述x某一维度间自相关性的attention map,即attention map为:
[0073][0074]
式(2)中,d为常数,其为自定义数值,根据模型的不同需要进行具体设置。矩阵乘这一操作相当于在内容特征中寻找引导特征。
[0075]
最后用attention map对v
out
加权,即将v
out
和attention map做矩阵乘,再经特征变换后作为注意力层的输出。式(3)中的w
out
为特征变换矩阵。
[0076]
out=av
outwout
ꢀꢀꢀ
(3)
[0077]
综合以上对attention操作的介绍,记attention操作为:
[0078]
attention(xq,xk,xv)
[0079]
而self-attention(sa)操作在attention操作的基础之上,将q模块、k模块、v模块的输入设为同一输入x,记self-attention操作为:
[0080]
sa()=attention(x,x,x)
[0081]
现有技术中,应用注意力机制的网络模型,例如transformer网络模型,参考图1a、图1b,该网络中所有self-attention层的质询特征转换模块,键特征转换模块和值特征转换模块的输入均为其前一层的输出。因此,transformer网络整体呈“直筒型”,这样的网络设计使得transformer网络的输入连接方式固定,无法保证transformer网络在所有任务上都能有良好的性能。
[0082]
针对上述技术问题,本技术实施例提供一种神经网络模型优化方法,可以对第一
神经网络模型进行优化处理,以得到第二神经网络模型,该第二神经网络模型不同于现有技术中的“直筒型”,其考虑了网络的层间特征信息,可以有效增强模型的表达能力,提升模型的任务处理性能。
[0083]
特别地,本技术实施例中的神经网络模型优化方法,可以应用于具有注意力机制的所有神经网络模型,例如目标检测、目标分类、图像分类、机器翻译、语音识别、文本识别等任务场景对应的神经网络模型,利用本技术实施例的神经网络模型优化方法对原有的神经网络模型进行优化处理,即可以得到优化处理之后的神经网络模型,改进模型的性能。
[0084]
实施例一
[0085]
下面介绍本技术实施例提供的系统架构。
[0086]
参见附图3,本发明实施例提供了一种系统架构300。如所述系统架构300所示,数据采集设备360用于采集训练数据,本技术实施例中训练数据根据模型任务的不同而有所不同。例如,当模型任务为语音识别时,训练数据为语音数据;而模型任务为文本识别时,训练数据为文本数据;再例如,模型任务为图像分类,以动物图像分类为例,则训练数据为动物图像,例如包含猫、狗、兔子等动物的图像。将训练数据存入数据库330,模型优化设备320可以对待优化的神经网络模型(即第一神经网络模型)进行优化处理得到优化之后的神经网络模型301(这里的301就是前面介绍的经优化处理得到的第二神经网络模型)。例如,模型优化设备320基于数据库330中维护的训练数据对待优化的神经网络模型(即第一神经网络模型)进行优化处理得到优化之后的神经网络模型301(这里的301就是前面介绍的经优化处理得到的第二神经网络模型)。模型优化设备320可以是终端,如手机终端,平板电脑,笔记本电脑,ar/vr,车载终端,监控设备,车载自动驾驶系统,无人售货机等,还可以是服务器或者云端等。下面将以实施例二更详细地描述模型优化设备320如何对待优化的神经网络模型进行优化处理以得到神经网络模型301,该神经网络模型301能够用于实现各种模型任务。需要说明的是,在实际的应用中,所述数据库330中维护的训练数据不一定都来自于数据采集设备360的采集,也有可能是从其他设备接收得到的,例如相机等。另外需要说明的是,在实际的应用中,所述数据库330中维护的训练数据不一定都来自于数据采集设备360的采集,也有可能是从其他设备接收得到的。另外需要说明的是,模型优化设备320也不一定完全基于数据库330维护的训练数据进行模型的优化处理,也有可能从云端或其他地方获取训练数据进行模型优化处理,上述描述不应该作为对本技术实施例的限定。
[0087]
模型优化设备320优化处理后得到的神经网络模型301可以应用于不同的系统或设备中,如应用于图3所示的终端设备310,所述终端设备310可以是终端,如手机终端,平板电脑,笔记本电脑,ar/vr,车载终端,监控设备,车载自动驾驶系统,无人售货机等,还可以是服务器或者云端等。在附图3中,终端设备310配置有i/o接口312,用于与外部设备进行数据交互,用户可以通过客户设备340向i/o接口312输入数据,所述输入数据在本技术实施例中根据模型任务不同而不同。例如,对于模型任务为图像分类的神经网络模型而言,输入数据为包括目标对象的待处理图片,其可以是用户输入的,还可以有数据库中来的;其中,客户设备340可以是图片获取设备,如相机。而对于模型任务为语音识别的神经网络模型而言,输入数据为待识别的语音数据;对于模型任务为文本识别的神经网络模型而言,输入数据为待识别的文本数据。
[0088]
预处理模块313用于根据i/o接口312接收到的输入数据(如待处理图片)进行预处
理,在本技术实施例中,预处理模块313用于根据i/o接口312接收到的输入数据(如待处理图片)进行预处理,预处理之后的数据进入计算模块311。在本技术实施例中,对于模型任务为图像分类的神经网络模型而言,预处理模块313可以用于对待处理图片进行滤波、增强、去噪等中的至少一种处理,以得到满足要求的待处理图片。
[0089]
在终端设备310对输入数据进行预处理,或者在终端设备310的计算模块311执行计算等相关的处理过程中,终端设备310可以调用数据存储系统350中的数据、代码等以用于相应的处理,也可以将相应处理得到的数据、指令等存入数据存储系统350中。
[0090]
最后,i/o接口312将输入数据的模型处理结果返回给客户设备340,从而提供给用户,此时,客户设备340可以为显示器。
[0091]
值得说明的是,模型优化设备320可以针对不同的任务,该相应的神经网络模型301即可以用于完成上述任务,从而为用户提供所需的结果。
[0092]
在附图3中所示情况下,用户可以手动给定输入数据,该手动给定可以通过i/o接口312提供的界面进行操作。另一种情况下,客户设备340可以自动地向i/o接口312发送输入数据,如果要求客户设备340自动发送输入数据需要获得用户的授权,则用户可以在客户设备340中设置相应权限。用户可以在客户设备340查看终端设备310输出的结果,具体的呈现形式可以是显示、声音、动作等具体方式。客户设备340也可以作为数据采集端,采集如图3所示输入i/o接口312的输入数据及输出i/o接口312的输出结果作为新的样本数据,并存入数据库330。当然,也可以不经过客户设备340进行采集,而是由i/o接口312直接将如图3所示输入i/o接口312的输入数据及输出i/o接口312的输出结果,作为新的样本数据存入数据库330。
[0093]
值得注意的是,附图3仅是本发明实施例提供的一种系统架构的示意图,图中所示设备、器件、模块等之间的位置关系不构成任何限制,例如,在附图3中,数据存储系统350相对终端设备310是外部存储器,在其它情况下,也可以将数据存储系统350置于终端设备310中。另外,模型优化设备320和终端设备310可以为同一个设备。
[0094]
如图3所示,根据模型优化设备320优化处理得到神经网络模型301,以模型任务为图像分类为例,该神经网络模型301在本技术实施例中可以包括:特征提取器和预测器,其中,特征提取器用于提取待处理图片的特征向量,而预测器用于根据待处理图片的特征向量进行处理以得到对应的处理结果。在本技术实施例中,特征提取器和预测器都可以是卷积神经网络。特别地,在特征提取器中可以应用注意力机制,以便提取模型任务更关注的特征。
[0095]
如前文的基础概念介绍所述,卷积神经网络是一种带有卷积结构的深度神经网络,是一种深度学习(deep learning)架构,深度学习架构是指通过机器学习的算法,在不同的抽象层级上进行多个层次的学习。作为一种深度学习架构,cnn是一种前馈(feed-forward)人工神经网络,该前馈人工神经网络中的各个神经元可以对输入其中的图像作出响应。如图4所示,卷积神经网络(cnn)400可以包括输入层410,卷积层/池化层420(其中池化层为可选的),以及神经网络层430。
[0096]
卷积层/池化层420:
[0097]
卷积层:
[0098]
如图4所示卷积层/池化层420可以包括如示例421-426层,举例来说:在一种实现
中,421层为卷积层,422层为池化层,423层为卷积层,424层为池化层,425为卷积层,426为池化层;在另一种实现方式中,421、422为卷积层,423为池化层,424、425为卷积层,426为池化层。即卷积层的输出可以作为随后的池化层的输入,也可以作为另一个卷积层的输入以继续进行卷积操作。
[0099]
下面将以卷积层421为例,介绍一层卷积层的内部工作原理。
[0100]
卷积层421可以包括很多个卷积算子,卷积算子也称为核,其在图像处理中的作用相当于一个从输入图像矩阵中提取特定信息的过滤器,卷积算子本质上可以是一个权重矩阵,这个权重矩阵通常被预先定义,在对图像进行卷积操作的过程中,权重矩阵通常在输入图像上沿着水平方向一个像素接着一个像素(或两个像素接着两个像素
……
这取决于步长stride的取值)的进行处理,从而完成从图像中提取特定特征的工作。该权重矩阵的大小应该与图像的大小相关,需要注意的是,权重矩阵的纵深维度(depth dimension)和输入图像的纵深维度是相同的,在进行卷积运算的过程中,权重矩阵会延伸到输入图像的整个深度。因此,和一个单一的权重矩阵进行卷积会产生一个单一纵深维度的卷积化输出,但是大多数情况下不使用单一权重矩阵,而是应用多个尺寸(行
×
列)相同的权重矩阵,即多个同型矩阵。每个权重矩阵的输出被堆叠起来形成卷积图像的纵深维度,这里的维度可以理解为由上面所述的“多个”来决定。不同的权重矩阵可以用来提取图像中不同的特征,例如一个权重矩阵用来提取图像边缘信息,另一个权重矩阵用来提取图像的特定颜色,又一个权重矩阵用来对图像中不需要的噪点进行模糊化等。该多个权重矩阵尺寸(行
×
列)相同,经过该多个尺寸相同的权重矩阵提取后的特征图的尺寸也相同,再将提取到的多个尺寸相同的特征图合并形成卷积运算的输出。
[0101]
这些权重矩阵中的权重值在实际应用中需要经过大量的训练得到,通过训练得到的权重值形成的各个权重矩阵可以用来从输入图像中提取信息,从而使得卷积神经网络400进行正确的预测。
[0102]
当卷积神经网络400有多个卷积层的时候,初始的卷积层(例如421)往往提取较多的一般特征,该一般特征也可以称之为低级别的特征;随着卷积神经网络400深度的加深,越往后的卷积层(例如426)提取到的特征越来越复杂,比如高级别的语义之类的特征,语义越高的特征越适用于待解决的问题。
[0103]
池化层:
[0104]
由于常常需要减少训练参数的数量,因此卷积层之后常常需要周期性的引入池化层,在如图4中420所示例的421-426各层,可以是一层卷积层后面跟一层池化层,也可以是多层卷积层后面接一层或多层池化层。在图像处理过程中,池化层的唯一目的就是减少图像的空间大小。池化层可以包括平均池化算子和/或最大池化算子,以用于对输入图像进行采样得到较小尺寸的图像。平均池化算子可以在特定范围内对图像中的像素值进行计算产生平均值作为平均池化的结果。最大池化算子可以在特定范围内取该范围内值最大的像素作为最大池化的结果。另外,就像卷积层中用权重矩阵的大小应该与图像尺寸相关一样,池化层中的运算符也应该与图像的大小相关。通过池化层处理后输出的图像尺寸可以小于输入池化层的图像的尺寸,池化层输出的图像中每个像素点表示输入池化层的图像的对应子区域的平均值或最大值。
[0105]
神经网络层430:
[0106]
在经过卷积层/池化层420的处理后,卷积神经网络400还不足以输出所需要的输出信息。因为如前所述,卷积层/池化层420只会提取特征,并减少输入图像带来的参数。然而为了生成最终的输出信息(所需要的类信息或其他相关信息),卷积神经网络400需要利用神经网络层430来生成一个或者一组所需要的类的数量的输出。因此,在神经网络层430中可以包括多层隐含层(如图4所示的431、432至43n)以及输出层440,该多层隐含层中所包含的参数可以根据具体的任务类型的相关训练数据进行预先训练得到,例如该任务类型可以包括姿态估计、图像识别,图像分类,图像超分辨率重建等等。
[0107]
在神经网络层430中的多层隐含层之后,也就是整个卷积神经网络400的最后层为输出层440,该输出层440具有类似分类交叉熵的损失函数,具体用于计算预测误差,一旦整个卷积神经网络400的前向传播(如图4由410至440方向的传播为前向传播)完成,反向传播(如图4由440至410方向的传播为反向传播)就会开始更新前面提到的各层的权重值以及偏差,以减少卷积神经网络400的损失,及卷积神经网络400通过输出层输出的结果和理想结果之间的误差。
[0108]
需要说明的是,如图4所示的卷积神经网络400仅作为一种卷积神经网络的示例,在具体的应用中,卷积神经网络还可以以其他网络模型的形式存在。另外,图4所示的卷积神经网络仅作为神经网络模型的一种示例,神经网络模型301还可以是其他结构的网络模型,只要模型中应用了注意力机制即可,即模型中包括注意力层、自注意力层等注意力机制网络层。
[0109]
下面介绍本技术实施例提供的一种芯片硬件结构。
[0110]
图5为本发明实施例提供的一种芯片硬件结构,该芯片包括神经网络处理器50。该芯片可以被设置在如图3所示的终端设备310中,用以完成计算模块311的计算工作。该芯片也可以被设置在如图3所示的模型优化设备320中,用以完成模型优化设备320的模型优化处理工作并输出神经网络模型301。如图4所示的卷积神经网络中各层的算法均可在如图5所示的芯片中得以实现。
[0111]
神经网络处理器npu 50作为协处理器挂载到主cpu(host cpu)上,由host cpu分配任务。npu的核心部分为运算电路503,通过控制器504控制运算电路503提取存储器(权重存储器502或输入存储器501)中的矩阵数据并进行乘法运算。
[0112]
在一些实现中,运算电路503内部包括多个处理单元(process engine,pe)。在一些实现中,运算电路503是二维脉动阵列。运算电路503还可以是一维脉动阵列或者能够执行例如乘法和加法这样的数学运算的其它电子线路。在一些实现中,运算电路503是通用的矩阵处理器。
[0113]
举例来说,假设有输入矩阵a,权重矩阵b,输出矩阵c。运算电路从权重存储器502中取矩阵b相应的数据,并缓存在运算电路503中每一个pe上。运算电路503从输入存储器501中取矩阵a数据与矩阵b进行矩阵运算,得到的矩阵的部分结果或最终结果,保存在累加器508accumulator中。
[0114]
向量计算单元507可以对运算电路的输出做进一步处理,如向量乘,向量加,指数运算,对数运算,大小比较等等。例如,向量计算单元507可以用于神经网络中非卷积/非fc层的网络计算,如池化(pooling),批归一化(batch normalization),局部响应归一化(local response normalization)等。
[0115]
在一些实现中,向量计算单元507将经处理的输出的向量存储到统一存储器506。例如,向量计算单元507可以将非线性函数应用到运算电路503的输出,例如累加值的向量,用以生成激活值。在一些实现中,向量计算单元507生成归一化的值、合并值,或二者均有。在一些实现中,处理过的输出的向量能够用作到运算电路503的激活输入,例如用于在神经网络中的后续层中的使用。
[0116]
统一存储器506用于存放输入数据以及输出数据。
[0117]
权重数据直接通过存储单元访问控制器505(direct memory access controller,dmac)将外部存储器中的输入数据搬运到输入存储器501和/或统一存储器506、将外部存储器中的权重数据存入被搬运到权重存储器502中以及将统一存储器506中的数据存入外部存储器。输入数据也通过dmac被搬运到统一存储器506中。
[0118]
总线接口单元(bus interface unit,biu)510,用于通过总线实现主cpu、dmac和取指存储器509之间进行交互。
[0119]
与控制器504连接的取指存储器(instruction fetch buffer)509,用于存储控制器504使用的指令。
[0120]
控制器504,用于调用取指存储器509中缓存的指令,实现控制该运算加速器的工作过程。
[0121]
一般地,统一存储器506,输入存储器501,权重存储器502以及取指存储器509均为片上(on-chip)存储器。外部存储器为私有于该npu外部的存储器硬件架构,该外部存储器可以为双倍数据率同步动态随机存储器(double data rate synchronous dynamic random access memory,简称ddr sdram)、高带宽存储器(high bandwidth memory,hbm)或其他可读可写的存储器。
[0122]
其中,图3和图4中的程序算法是由主cpu和npu共同配合完成的。图4所示的卷积神经网络中各层的运算可以由运算电路503或向量计算单元507执行。
[0123]
实施例二
[0124]
下面介绍本技术实施例提供的一种神经网络模型优化方法。
[0125]
参考图6,图6是本发明实施例提供的一种神经网络模型优化方法的流程示意图,神经网络模型优化方法600包括以下步骤:
[0126]
601、对第一神经网络模型进行优化处理得到第二神经网络模型;
[0127]
其中,第二神经网络模型包括优化注意力层和位于优化注意力层之前的至少两个在前网络层,至少两个在前网络层串联连接;其中,此处的在前网络层为位于第二神经网络模型的输入与优化注意力层的输入之间的网络层。参考图7,图7是本发明实施例提供的一种优化注意力层的结构示意图;其中,模型中串联的第1层至第5层均为优化注意力层的在前网络层。特别地,对于在前网络层的具体结构,可以是由单个网络层或者是由多个并列的网络层组成,以图7中的第5层为例,其可以为多个并列的网络层组成。
[0128]
该优化注意力层包括优化质询query特征变换模块、优化键key特征变换模块以及优化值value特征变换模块,优化质询query特征变换模块是优化注意力层中利用wq特征变换矩阵进行特征转换的模块,同样地,优化键key特征变换模块是优化注意力层中利用wk特征变换矩阵进行特征转换的模块;优化值value特征变换模块是优化注意力层中利用wv特征变换矩阵进行特征转换的模块。关于wq特征变换矩阵、wk特征变换矩阵、wv特征变换矩阵
的具体描述,可参考上述第(7)点中对attention操作的描述的相关描述,在此不做赘述。
[0129]
而优化质询query特征变换模块的输入是根据优化注意力层的至少一个在前网络层的输出特征得到的;
[0130]
优化键key特征变换模块的输入是根据优化注意力层的至少一个在前网络层的输出特征得到的;
[0131]
优化值value特征变换模块的输入是根据优化注意力层的至少一个在前网络层的输出特征得到的;
[0132]
其中,优化质询query特征变换模块、优化键key特征变换模块、优化值value特征变换模块中的至少一个特征变换模块的输入是根据优化注意力层的至少一个非相邻在前网络层的输出特征得到的,具体地,上述特征变换模块的输入的具体形式可以为特征图,例如,在语音识别,机器识别等场景中,特征图可以为三个维度的特征图,分别为批处理(batch)维度b,通道(channel)维度c和patch(分块)维度p。该非相邻在前网络层为优化注意力层的所有在前网络层中,除与该优化注意力层相邻的在前网络层之外的在前网络层。参考图7,其中,对于图7中的优化注意力层而言,其所有的在前网络层为第1层至第5层,而第5层为该优化注意力层的相邻在前网络层,因此,网络中的第1层至第4层为该优化注意力层的非相邻在前网络层。其中,图7中的q模块为优化质询query特征变换模块,k模块为优化键key特征变换模块,而v模块为优化值value特征变换模块。图7中的q模块、k模块、v模块即为图2中的q模块、k模块、v模块。
[0133]
本发明实施例中的优化方法,通过对第一神经网络模型进行优化处理,以得到第二神经网络模型,其中,第二神经网络模型中,优化质询query特征变换模块的输入是根据优化注意力层的至少一个在前网络层的输出特征得到的;优化键key特征变换模块的输入是根据优化注意力层的至少一个在前网络层的输出特征得到的;优化值value特征变换模块的输入是根据优化注意力层的至少一个在前网络层的输出特征得到的;且优化质询query特征变换模块、优化键key特征变换模块、优化值value特征变换模块中的至少一个特征变换模块的输入是根据优化注意力层的至少一个非相邻在前网络层的输出特征得到的。这样优化处理得到的第二神经网络模型,由于补充了网络的层间特征信息,增强了模型的表达能力,有利于提升模型的任务处理性能。
[0134]
特别地,优化注意力层在图7中仅示意了优化质询query特征转换模块,优化键key特征转换模块和优化值value特征转换模块,图7中的优化注意力层为简化示意图,实际上优化注意力层除了优化质询query特征转换模块,优化键key特征转换模块和优化值value特征转换模块之外,还可以包括如图2所示的其他网络层,如矩阵乘层、数值缩放层和归一化层,根据第二神经网络模型的处理任务的不同,优化注意力层中还可以包括掩码层等。
[0135]
在一些可能的实施例中,目标特征变换模块的输入为优化注意力层的至少一个在前网络层的输出特征;目标特征变换模块为优化质询query特征变换模块、优化键key特征变换模块、优化值value特征变换模块中的任一个。
[0136]
具体地,可选地,目标特征变换模块的输入可以为优化注意力层的一个在前网络层的输出特征,简单地说,对于每个目标特征变换模块,从优化注意力层的在前网络层中选择一个在前网络层的输出特征作为自身的输入特征,假设优化质询query特征变换模块连接的在前网络层为第一在前网络层,优化键key特征变换模块连接的在前网络层为第二在
前网络层,优化值value特征变换模块连接的在前网络层为第三在前网络层;第一在前网络层、第二在前网络层和第三在前网络层可以相同,也可以不同;对于同一个优化注意力层,只需要满足第一在前网络层、第二在前网络层和第三在前网络层中的至少一个是该优化注意力层的非相邻在前网络层即可。其中,图7为优化注意力层的一个示例,优化质询query特征变换模块连接的在前网络层为第2层在前网络层,优化键key特征变换模块连接的在前网络层为第5层在前网络层,优化值value特征变换模块连接的在前网络层为第3层在前网络层。
[0137]
假设第二神经网络模型共有l层(从第0层开始),则第i(1≤i≤l-1)层优化注意力层的输出表示为:
[0138]
yi=aai(y
0~(i-1)
,y
0~(i-1)
,y
0~(i-1)
)=attentioni(ya,yb,yc)
[0139]
其中,0≤a,b,c≤i-1,y
0~(i-1)
={y0,y1,y2,...,y
i-1
},即对于一个优化注意力层而言,从该优化注意力层的所有在前网络层的输出特征中选择某一在前网络层的输出特征作为该优化注意力层的优化质询query特征变换模块的输入,优化键key特征变换模块、优化值value特征变换模块的输入也采用上述方法来确定。
[0140]
可选地,目标特征变换模块的输入还可以为优化注意力层的至少两个在前网络层的输出特征,简单地说,对于每个目标特征变换模块,从优化注意力层的在前网络层中选择至少两个在前网络层的输出特征作为自身的输入特征;对于优化质询query特征变换模块、优化键key特征变换模块、优化值value特征变换模块所选择的在前网络层可以相同,也可以不同。进一步地,在一些可能的实施例中,在本实施例的优化注意力层中,优化质询query特征变换模块、优化键key特征变换模块、优化值value特征变换模块在进行特征变换之前,需要对输入的至少两个在前网络层的输出特征进行级联(concat)后进行平均处理。
[0141]
在一些可能的实施例中,第一神经网络模型包括串联连接的注意力层和位于注意力层之前的至少两个在前网络层,至少两个在前网络层串联连接;该注意力层是指应用注意力机制的网络层,可以为上述描述的第(7)点所指的注意力层,也可以是自注意力层等网络层。而此时的在前网络层是指第一神经网络模型的输入到注意力层的输入之间的网络层。参考图1b,图1b所示的网络结构为第一神经网络模型的一个示例,其中,注意力层为自注意力层,自注意力层具有第1层至第5层五个串联连接的在前网络层,五层在前网络层与自注意力层串联连接。特别地,自注意力层在图1b中仅示意了质询特征转换模块,键特征转换模块和值特征转换模块,图1b中的自注意力层为简化示意图,自注意力层除了质询特征转换模块,键特征转换模块和值特征转换模块之外,还包括如图2所示的其他网络层,如矩阵乘层、数值缩放层和归一化层,根据第一神经网络模型的处理任务的不同,注意力层还可以包括掩码层等。
[0142]
进一步地,步骤601具体包括以下步骤:
[0143]
6011、确定第一神经网络模型的搜索空间,搜索空间中的元素包括注意力层中的第一质询query特征变换模块、第一键key特征变换模块、第一值value特征变换模块可连接的在前网络层。
[0144]
其中,注意力层包括第一质询query特征变换模块、第一键key特征变换模块、第一值value特征变换模块,其中,搜索空间包括第一神经网络模型中每个注意力层的第一质询query特征变换模块、第一键key特征变换模块、第一值value特征变换模块可连接的在前网
络层。参考图1b,对于图1b中的自注意力层而言,其质询特征变换模块可连接的在前网络层为第1层在前网络层至第5层在前网络层,键特征变换模块可连接的在前网络层为第1层在前网络层至第5层在前网络层,值特征变换模块可连接的在前网络层为第1层在前网络层至第5层在前网络层,因此,第1层在前网络层至第5层在前网络层5个在前网络层将作为搜索空间的元素。
[0145]
6012、利用基于搜索空间的搜索算法确定优化注意力层,其中,搜索算法用于根据搜索条件确定优化质询query特征变换模块连接的第一在前网络层、优化键key特征变换模块连接的第二在前网络层、优化值value特征变换模块连接的第三在前网络层,第一在前网络层、第二在前网络层和第三在前网络层中的至少一个是优化注意力层的非相邻在前网络层。
[0146]
具体地,搜索算法包括进化算法、强化学习算法、网络结构搜索算法中的任一个。其中,进化算法的训练收敛速度快,有利于提升模型的优化速度。当然,搜索算法也可以是其他算法,只要能实现网络结构搜索功能即可。本发明实施例中,在确定第一神经网络模型对应的搜索空间之后,利用基于搜索空间的搜索算法进行搜索,可以确定优化注意力层,也即确定优化注意力层中的优化质询query特征变换模块连接的第一在前网络层、优化键key特征变换模块连接的第二在前网络层、优化值value特征变换模块连接的第三在前网络层,其中,第一在前网络层、第二在前网络层和第三在前网络层中的至少一个是优化注意力层的非相邻在前网络层。
[0147]
其中,搜索算法能够有效地调整第一神经网络模型内的注意力层的输入连接,以得到优化注意力层,使得通过优化注意力层本身即可以提取网络中不同层间的特征信息。可见,优化注意力层与在前网络层的连接结构不同于第一神经网络模型中的注意力层与在前网络层的连接结构,优化注意力层关注层间特征融合,因此,优化注意力层能增强第二神经网络模型的表达能力,有助于提升第二神经网络模型的性能。
[0148]
特别说明的是,利用上述步骤6011和步骤6012,可以得到前述目标特征变换模块的输入为优化注意力层的一个在前网络层的输出特征对应的第二神经网络模型。
[0149]
下面以第一神经网络模型为transformer网络模型,搜索算法以进化算法为例,对优化处理过程进行具体说明:
[0150]
transformer是机器翻译任务中的常用网络结构,包含有大量self-attention操作。利用本实施例的优化方法重新选择标准transformer网络中所有attention操作的输入连接方式,结合进化算法,在机器翻译任务上搜索更优的模型结构。
[0151]
本实施例的优化方法基于进化算法对网络结构进行搜索,参考图8,图8给出了本实施例中进化算法的示例框架,进化算法的框架主要由搜索空间,种群,训练模块三部分组成,其中:
[0152]
搜索空间:包括第一神经网络模型的结构组成部分的可用选项,可以由人为定义得到。本实施例中将其定义为transformer网络中每个自注意力层的质询特征转换模块(简称为q模块)、键特征转换模块(简称为k模块)、值特征转换模块(简称为v模块)的输入来源。进化算法通过对网络结构的搜索空间随机采样得到网络结构,每次采样随机得到一种网络结构。
[0153]
种群:包含有预先定义数量的样本,每个样本代表一种网络结构编码,从搜索空间
中采样得到。可以对种群进行的操作包括:从搜索空间中采样加入种群,从种群中删除某些样本,选取种群中的某个样本进行变异(变异指以预设概率将每一位编码更换为搜索空间中的另一选项)。
[0154]
训练模块:该模块为任务相关模块,通过输入网络结构和数据集,以完成对网络结构的训练,并在验证数据集上评估网络的性能,返回网络对应的网络性能指标。
[0155]
参考图8,本实施例方案的具体工作流程如下:
[0156]
1、定义由transformer网络连接方式组成的搜索空间集合l,种群最大样本数m,每次迭代从种群中采集子集包含的样本数n,每次迭代保留子集中性能最高的样本数k,进化算法的迭代次数t。如图8中的搜索空间,将每一个自注意力层的q模块、k模块、v模块的可选输入来源作为搜索空间的元素,例如,对于第一层自注意力层的qkv的输入来源为1a、1b、1c(1a等为第一层自注意力层的在前网络层对应的编码),而第二层自注意力层的qkv的输入来源为2a、2b、2c、2d(2a等为第二层自注意力层的在前网络层对应的编码),以此类推。
[0157]
2、从搜索空间l中随机进行m次采样,组成包含不同连接方式的网络结构初始种群lm={l1,l2,l3,...,lm}。每次采样确定各层自注意力层的qkv输入来源,即图8中每一行为一次采样过程,一行中的第一个框对应第一层自注意力层的qkv的输入来源采样(例如,图8中种群的第一行的第一个框为第一层的qkv的输入来源分别为1c、1b、1a),一行中的第二个框对应第二层自注意力层的输入来源采样,以此类推。
[0158]
3、从种群中随机采一个子集ln,其中|ln|=n,将ln中的每个样本输入训练模块,在翻译任务上评估子集中每个结构的性能p,得到pn={p1,p2,p3,...,pn}。
[0159]
4、保留子集中性能最高的k个结构,淘汰其他结构。即,保留样本lk=argtopk(pn),同时从种群中删去被淘汰的结构对应的样本。
[0160]
5、对保留的k个结构lk进行变异,得到n-k个新的结构l
mutate
,更新种群为l
′m=l
m-(l
n-lk)+l
mutate

[0161]
重复迭代上述步骤3-5,t次迭代后选取种群中性能最优的结构作为搜索结果。
[0162]
参考图9a、图9b、图9c,图9a、图9b、图9c是本发明实施例提供的一种网络结构搜索过程示意图;举例具体的搜索过程如下:
[0163]
参考图1b,定义搜索空间l为:含有2个self-attention层的transformer网络中所有self-attention操作的输入连接方式。种群最大数量m=4,子集包含样本数n=3,每次迭代保留性能最高的样本数k=1。
[0164]
s1、在搜索空间l中进行m=4次采样,得到lm={l
1001
,l
1002
,l
1003
,l
1004
}。
[0165]
s2、从种群中随机采样容量为n=3的子集ln={l
2001
,l
2002
,l
2003
},在训练模块中评估3种结构的性能pn={p
2001
,p
2002
,p
2003
},假设p
2002
》p
2003
》p
2001
。则保留子集中性能最高的k=1个结构l
2002
,同时从种群中删去样本l
2001
和l
2003

[0166]
s3、对保留的样本l
3002
进行变异,得到l
mutate
={l
3001
,
3003
},更新种群l
′m为
[0167]
l
′m={l
3001
,l
3002
,l
3003
}。
[0168]
重复迭代步骤s1-s3,t次迭代后取种群中性能最优的结构作为搜索结果。
[0169]
综上,上述实施例的优化方法将网络中注意力操作的输入连接编码,使用进化算法在指定任务上搜索性能更优的注意力结构。
[0170]
另外,为了说明本发明实施例的优化方法的优化效果,在机器翻译任务iwslt14数
据集上以标准transformer网络为基准搜索,得到优化了输入连接方式的新transformer结构(称为aggregate transformer),如图10所示,图10是本发明实施例提供的一种优化处理之后的transformer网络模型的结构示意图。aggregate transformer中,self-attention层的输入连接方式与标准transformer有很大区别,存在多个进行了跨层连接的key,query或value输入,这是实施进化算法进行输入连接方式优化的结果。如表1,搜索结果在iwslt14数据集上的精度(如bleu值,bleu的英文全称为bilingual evaluation understudy,中文为双语评估替补)对比原网络有了明显提升,对比现有技术中的方案evolved transformer在相同采样数量下提升更多。其中,微小量级网络为tiny setting,而小型量级网络为small setting。
[0171]
模型bleu(微小量级网络)bleu(小型量级网络)采样数量transformer34.7937.20
‑‑
evolved transformer34.99(+0.20)37.32(+0.12)2000aggregatetransformer35.30(+0.51)37.60(+0.40)2000
[0172]
表1
[0173]
在一些可能的实施例中,上述搜索空间中的元素还可以包括以下至少一项:第一神经网络模型可选的激活函数、第一神经网络模型可选的归一化操作、第一神经网络模型可选的特征图的操作类型、第一神经网络模型可选的并行支路个数、可选的搜索单元中的模块个数、除注意力层之外的在前网络层之间可选的连接方式。
[0174]
具体地,可选的激活函数包括sigmoid函数、tanh函数、relu函数等。可选的归一化操作包括layer normalization(层标准化)、batch normalization(批标准化)、instance normalization(实例标准化)、switchable normalization(自适应归一化)等。特征图的操作类型是指对特征图的处理操作的具体类型,例如对特征图的处理操作为卷积处理,可选的卷积层的类型包括conv1*1:2048、sep conv 9*1:256(separableconvolutional)等。又例如,可选的对特征图的操作包括自注意力操作、选通线性(gated linear)处理操作等。而可选的并行支路个数为网络搜索时网络可允许的并行支路的个数,例如,假设并行支路个数为2,则一个卷积层在搜索时,可以被搜索替换成两个并行的卷积层。而搜索单元是指搜索算法在搜索时,每次搜索替换的单元中的模块个数(也可以理解为网络层的个数),具体地,可以以第一神经网络模型中的一个网络层作为搜索单元,对一个网络层进行搜索替换;也可以以第一神经网络模型中的两个网络层作为搜索替换的单元,对两个网络层进行搜索替换。
[0175]
综上,上述搜索空间除了将注意力层与在前网络层之间可能的连接关系作为搜索空间的元素之外,还可以将现有技术中搜索空间的元素添加到搜索空间中,能够更进一步提升搜索确定的第二神经网络模型在相应的任务上的性能。以进化算法为例,参考图11,图11是本发明实施例提供的另一种进化算法的框架示意图;其中,搜索空间中的元素除了第一神经网络模型的自注意力层的q模块、k模块、v模块的输入来源之外,还包括特征图的操作类型、激活函数、模块(第一神经网络模型中除自注意力层之外的模块)间连接方式等。相应地,进化算法在进行网络搜索时,采样得到的种群如图11所示,进化算法的处理过程与图8的处理过程相似,不再赘述。
[0176]
以第一神经网络模型为transformer网络模型为例,参考表2,其为合并搜索空间
前后的模型效果对比表,其中,aggregate transformer为利用搜索空间仅为第一神经网络模型的自注意力层的q模块、k模块、v模块的输入来源得到的第二神经网络模型。可见,合并搜索空间之后能够更进一步提升搜索到的网络在机器翻译任务上的性能。
[0177][0178]
表2
[0179]
在一些可能的实施例中,对于前述目标特征变换模块的输入为优化注意力层的至少两个在前网络层的输出特征的第二神经网络模型,同样地,可以利用步骤6011和步骤6012类似的方法,先确定第一神经网络模型对应的搜索空间,再利用搜索算法确定优化注意力层,即确定每个优化注意力层中的优化query特征变换模块所连接的至少两个在前网络层、优化键key特征变换模块所连接的至少两个在前网络层、优化值value特征变换模块所连接的至少两个在前网络层。与上述图8所对应的优化过程不同的是,以目标特征变换模块的输入为优化注意力层的两个在前网络层的输出特征为例,本发明实施例中,搜索算法每次在搜索空间进行采样时,对于每个目标特征变换模块,需要采样其所连接的两个在前网络层。相似地,为了进一步提升第二神经网络模型的性能,可以将搜索空间中的元素组成进行扩展,例如将激活函数、归一化操作方法等作为元素添加到搜索空间中,参考前述内容,不再赘述。
[0180]
在一些可能的实施例中,目标特征变换模块的输入为优化注意力层的至少两个在前网络层的输出特征和在前网络层的权重加权求和得到的输入特征;目标特征变换模块为优化质询query特征变换模块、优化键key特征变换模块、优化值value特征变换模块中的任一个。
[0181]
具体地,利用在前网络层的输出特征进行加权求和以作为目标特征变换模块的输入,实现层间特征融合,以使优化注意力层的表达能力更强,有利于提升第二神经网络模型的模型性能。
[0182]
在一些可能的实施例中,第二神经网络模型还包括第一融合模块、第二融合模块和第三融合模块,优化注意力层全部的在前网络层的输出端与第一融合模块的输入端连接,第一融合模块的输出端与优化质询query特征变换模块的输入端连接;第一融合模块用于根据与自身连接的在前网络层进行加权求和处理得到优化质询query特征变换模块的第一输入特征,第一融合模块的参数包括与自身连接的在前网络层对应的第一权重;
[0183]
优化注意力层全部的在前网络层的输出端与第二融合模块的输入端连接,第二融合模块的输出端与优化键key特征变换模块的输入端连接;第二融合模块用于根据与自身连接的在前网络层进行加权求和处理得到优化键key特征变换模块的第二输入特征,第二
融合模块的参数包括与自身连接的在前网络层对应的第二权重;
[0184]
优化注意力层全部的在前网络层的输出端与第三融合模块的输入端连接,第三融合模块的输出端与优化值value特征变换模块的输入端连接;第三融合模块用于根据与自身连接的在前网络层进行加权求和处理得到优化值value特征变换模块的第三输入特征,第二融合模块的参数包括与自身连接的在前网络层对应的第三权重。
[0185]
具体地,对于每一个优化注意力层,参考图12,图12是本发明实施例提供的另一种优化注意力层的结构示意图;以优化质询query特征变换模块(如图12中的q模块)为例,在其之前增加第一融合模块,该第一融合模块用于根据优化注意力层全部的在前网络层进行加权求和以得到优化质询query特征变换模块的第一输入特征,其中,第一融合模块的参数包括与自身连接的在前网络层对应的第一权重。这样,利用第一融合模块,可以融合优化注意力层的在前网络层的特征,以增强优化注意力层的表达能力,提升第二神经网络模型的性能。同样地,对于优化键key特征变换模块(如图12中的k模块),在其之前也设置有第二融合模块,而在优化值value特征变换模块(如图12中的v模块)之前,设置有第三融合模块。特别说明的是,此时的优化注意力层相比于现有技术中的注意力层,区别在于优化注意力层之前具有第一融合模块、第二融合模块和第三融合模块三个融合模块。
[0186]
以第一神经网络模型为标准transformer网络为例,设有一共l层(从0层开始)的标准transformer网络,每层的输出特征为则第i层优化注意力层(1≤i≤l-1)的输入为其所有在前网络层的输出特征,记为:
[0187]y0~(i-1)
={y0,y1,y2,...,y
i-1
}
[0188]
将该优化注意力层所有的在前网络层的输出特征输入融合模块,以优化质询query特征变换模块为例,即所有在前网络层的输出特征输入第一融合模块,第一融合模块生成每层在前网络层的输出特征的加权权重,所有在前网络层的输出特征的加权权重矩阵记为w
agg
,则第一融合模块的输出特征为:
[0189]
agg(y
0~(i-1)
)=w
agg
yc,w
agg
∈r
(i-1)
×
(i-1)
[0190]
yc=concat(y
0~(i-1)
)∈r
(i-1)
×z[0191]
其中,yc为级联特征,concat(
·
)为级联操作。
[0192]
最后,使用第一融合模块生成的i-1
×
i-1维度权重矩阵对i-1个在前网络层的输出特征进行加权求和,得到结合了所有在前网络层的输出特征的输入特征,该输入特征作为优化质询query特征变换模块的输入。
[0193]
实际上,参考图12,在确定第一权重、第二权重、第三权重时,先将第一神经网络模型优化处理成图12所示的第二神经网络模型(图12仅为示例),再利用训练数据对第二神经网络模型进行训练,特别地,利用本实施例的优化方法,可以在单次训练中得到模型性能的提升。例如,以第二神经网络模型的模型任务为图像分类,则将有真实标签的一张训练图像输入第二神经网络模型中进行训练,在第二神经网络模型输出预测标签后,即可以从第一融合模块、第二融合模块和第三融合模块中提取出第一权重、第二权重和第三权重。
[0194]
在一些可能的实施例中,第一融合模块、第二融合模块、第三融合模块中的任一个包括以下任一个结构:静态加权模块、多层感知机模块、注意力模块。
[0195]
本发明实施例中,以第一融合模块为例,第一融合模块可以采用静态加权模块、多层感知机模块、注意力模块中任一个结构来实现。其中:
[0196]

静态加权模块即是通过静态加权参数实现加权,以第一融合模块为例,假设第一融合模块具有i-1个在前网络层,则第一融合模块中包括i-1个静态参数,分别对应i-1个在前网络层,记为w
agg
=diag(α1,2,...,
i-1
)。图13a、图13b、图13c是本发明实施例提供的一种第一融合模块的结构示意图;参考图13a,以第一融合模块具有五个在前网络层为例,则第一融合模块中包括a1、a2、a3、a4、a5五个静态加权参数,分别对应五个在前网络层。在利用训练数据完成对第二神经网络模型的训练之后,即可以从静态加权模块中得到相应的静态加权参数,多个静态加权参数可以组成加权权重矩阵。
[0197]

多层感知机模块主要是通过多层感知机实现加权,以第一融合模块为例,多层感知机以两层感知机为例,参考图13b,假设第一融合模块具有i-1个在前网络层,假设每层在前网络层的输出特征的尺寸为(p,c),多层感知机模块先将i-1个在前网络层的输出特征进行级联处理得到级联特征(p,c,i-1),再将级联特征通过一个池化层平均(图13b中的avg)掉p这一维度,得到(c,i-1),然后将平均后的特征(c,i-1)输入一个含有激活函数的两层感知机mlp。在利用训练数据完成对第二神经网络模型的训练之后,即可以从多层感知机模块中得到相应的加权权重矩阵w
agg
=mlp(avgpool(yc))。
[0198]

注意力模块主要是通过注意力操作动态生成实现加权,参考图13c,以第一融合模块为例,假设第一融合模块具有i-1个在前网络层,注意力模块先对i-1在前网络层的输出特征进行级联处理得到级联特征yc,再对级联特征yc做一次attention操作(参考图2的相关描述),之后再进行平均后得到i-1维权重,记为:w
agg
=avgpool(attention(yc,yc,yc))。
[0199]
另外,deit是用于图像分类任务的一种深度学习模型,其中大量使用了self-attention操作,以第一融合模块、第二融合模块、第三融合模块为注意力模块为例,利用如图12所对应的优化方法处理deit模型得到第二神经网络模型,第二神经网络模型中的优化注意力层为aggregate-attention,deit模型和第二神经网络模型的性能对比表如表3,可见,与deit模型相比,第二神经网络模型中的优化注意力层在微小的计算量参数量开销下对模型性能有显著提升。
[0200][0201][0202]
表3
[0203]
特别指出的是,利用本技术的模型优化方法,在微小计算量开销下,即可补充网络层间特征信息,进一步增强了优化后的网络模型的表达能力。对于图7所对应的优化方法实施例,由于该实施例没有增加额外的卷积层,因此,没有增加第二神经网络模型的计算量开销。而对于图12所对应的优化方法实施例,由于该实施例只需计算每个在前网络层的加权权重,该计算过程所需的计算量极小。
[0204]
实施例三
[0205]
基于实施例二所述的神经网络模型优化方法,本技术还提供一种模型优化装置,
参考图14,图14是本发明实施例提供的一种模型优化装置的结构示意图;模型优化装置1400包括:
[0206]
处理模块1401,用于对第一神经网络模型进行优化处理得到第二神经网络模型;
[0207]
其中,第二神经网络模型包括优化注意力层和位于优化注意力层之前的至少两个在前网络层,至少两个在前网络层串联连接,优化注意力层包括优化质询query特征变换模块、优化键key特征变换模块以及优化值value特征变换模块;优化质询query特征变换模块的输入是根据优化注意力层的至少一个在前网络层的输出特征得到的;优化键key特征变换模块的输入是根据优化注意力层的至少一个在前网络层的输出特征得到的;优化值value特征变换模块的输入是根据优化注意力层的至少一个在前网络层的输出特征得到的;其中,优化质询query特征变换模块、优化键key特征变换模块、优化值value特征变换模块中的至少一个特征变换模块的输入是根据优化注意力层的至少一个非相邻在前网络层的输出特征得到的。
[0208]
模型优化装置1400的具体执行过程可以参考实施例二的描述,不再赘述。
[0209]
另外,本技术还提供一种模型优化设备,图15是本技术实施例提供的一种模型优化设备的结构示意图;图15所示的模型优化设备1500(该设备1500具体可以是一种计算机设备)包括存储器1501、处理器1502、通信接口1504以及总线1503。其中,存储器1501、处理器1502、通信接口1504通过总线1503实现彼此之间的通信连接。
[0210]
存储器1501可以是只读存储器(read only memory,rom),静态存储设备,动态存储设备或者随机存取存储器(random access memory,ram)。存储器1501可以存储程序,当存储器1501中存储的程序被处理器1502执行时,处理器1502和通信接口1504用于执行本技术实施例二的神经网络模型优化方法的各个步骤。
[0211]
处理器1502可以采用通用的中央处理器(central processing unit,cpu),微处理器,应用专用集成电路(application specific integrated circuit,asic),图形处理器(graphics processing unit,gpu)或者一个或多个集成电路,用于执行相关程序,以实现上述实施例所述的模型优化装置中的单元所需执行的功能,或者执行实施例二所述的神经网络模型优化方法。
[0212]
处理器1502还可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,本技术实施例二的神经网络模型优化方法的各个步骤可以通过处理器1502中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器1502还可以是通用处理器、数字信号处理器(digital signal processing,dsp)、专用集成电路(asic)、现成可编程门阵列(field programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本技术实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本技术实施例二所公开的神经网络模型优化方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器1501,处理器1502读取存储器1501中的信息,结合其硬件完成上述实施例所述的模型优化装置中包括的单元所需执行的功能,或者执行本技术方法实施例二的神经网络模型优化方法。
[0213]
通信接口1504使用例如但不限于收发器一类的收发装置,来实现模型优化设备1500与其他设备或通信网络之间的通信。例如,可以通过通信接口1504获取训练数据。
[0214]
总线1503可包括在模型优化设备1500各个部件(例如,存储器1501、处理器1502、通信接口1504)之间传送信息的通路。
[0215]
应理解,模型优化装置1400中的处理模块1401相当于模型优化设备1500中的处理器1502。图15所示的模型优化设备1500相当于图3中的模型优化设备320。
[0216]
应注意,尽管图15所示的模型优化设备1500仅仅示出了存储器、处理器、通信接口,但是在具体实现过程中,本领域的技术人员应当理解,模型优化设备1500还包括实现正常运行所必须的其他器件。同时,根据具体需要,本领域的技术人员应当理解,模型优化设备1500还可包括实现其他附加功能的硬件器件。此外,本领域的技术人员应当理解,模型优化设备1500也可仅仅包括实现本技术实施例所必须的器件,而不必包括图15中所示的全部器件。
[0217]
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0218]
在本技术所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0219]
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0220]
另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
[0221]
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以计算机程序产品的形式体现出来,该计算机程序产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
[0222]
本发明实施例还提供一种芯片,所述芯片包括处理器与数据接口,所述处理器通过所述数据接口读取存储器上存储的指令,执行实施例二所述的神经网络模型优化方法。
[0223]
可选地,作为一种实现方式,所述芯片还可以包括存储器,所述存储器中存储有指令,所述处理器用于执行所述存储器上存储的指令,当所述指令被执行时,所述处理器用于执行实施例二所述的神经网络模型优化方法。
[0224]
实施例四
[0225]
基于实施例二所述的神经网络模型优化方法,本技术还提供一种神经网络模型,该神经网络模型包括优化注意力层和位于优化注意力层之前的至少两个在前网络层,至少两个在前网络层串联连接,优化注意力层包括优化质询query特征变换模块、优化键key特征变换模块以及优化值value特征变换模块;优化质询query特征变换模块的输入是根据优化注意力层的至少一个在前网络层的输出特征得到的;优化键key特征变换模块的输入是根据优化注意力层的至少一个在前网络层的输出特征得到的;优化值value特征变换模块的输入是根据优化注意力层的至少一个在前网络层的输出特征得到的;其中,优化质询query特征变换模块、优化键key特征变换模块、优化值value特征变换模块中的至少一个特征变换模块的输入是根据优化注意力层的至少一个非相邻在前网络层的输出特征得到的。
[0226]
本发明实施例中提供的上述神经网络模型,由于其补充了网络的层间特征信息,增强了模型的表达能力,有利于提升模型的任务处理性能。
[0227]
在一些可能的实施例中,目标特征变换模块的输入为优化注意力层的至少一个在前网络层的输出特征;目标特征变换模块为优化质询query特征变换模块、优化键key特征变换模块、优化值value特征变换模块中的任一个。
[0228]
在一些可能的实施例中,目标特征变换模块的输入为优化注意力层的至少一两在前网络层的输出特征和在前网络层的权重加权求和得到的输入特征;目标特征变换模块为优化质询query特征变换模块、优化键key特征变换模块、优化值value特征变换模块中的任一个。
[0229]
在一些可能的实施例中,神经网络模型还包括第一融合模块、第二融合模块和第三融合模块,优化注意力层全部的在前网络层的输出端与第一融合模块的输入端连接,第一融合模块的输出端与优化质询query特征变换模块的输入端连接;第一融合模块用于根据与自身连接的在前网络层进行加权求和处理得到输入优化质询query特征变换模块的第一输入特征,第一融合模块的参数包括与自身连接的在前网络层对应的第一权重;优化注意力层全部的在前网络层的输出端与第二融合模块的输入端连接,第二融合模块的输出端与优化键key特征变换模块的输入端连接;第二融合模块用于根据与自身连接的在前网络层进行加权求和处理得到输入优化键key特征变换模块的第二输入特征,第二融合模块的参数包括与自身连接的在前网络层对应的第二权重;优化注意力层全部的在前网络层的输出端与第三融合模块的输入端连接,第三融合模块的输出端与优化值value特征变换模块的输入端连接;第三融合模块用于根据与自身连接的在前网络层进行加权求和处理得到输入优化值value特征变换模块的第三输入特征,第二融合模块的参数包括与自身连接的在前网络层对应的第三权重。
[0230]
在一些可能的实施例中,第一融合模块、第二融合模块、第三融合模块中的任一个包括以下任一个结构:静态加权模块、多层感知机模块、注意力模块。
[0231]
本发明实施例的神经网络模型即为实施例二中的第二神经网络模型,因此,关于本发明实施例的神经网络模型的具体描述可以参考实施例二的描述,不再赘述。
[0232]
本技术实施例还提供一种终端设备,所述终端设备上运行有本实施例所述的神经网络模型。图16是本发明实施例提供的一种终端设备的结构示意图,图16所示的终端设备1600(该终端设备1600具体可以是一种计算机设备)包括存储器1601、处理器1602、通信接
口1604以及总线1603。其中,存储器1601、处理器1602、通信接口1604通过总线1603实现彼此之间的通信连接。
[0233]
存储器1601可以是只读存储器(read only memory,rom),静态存储设备,动态存储设备或者随机存取存储器(random access memory,ram)。存储器1601可以存储程序,当存储器1601中存储的程序被处理器1602执行时,处理器1602和通信接口1604用于运行本发明实施例所述的神经网络模型。
[0234]
处理器1602可以采用通用的中央处理器(central processing unit,cpu),微处理器,应用专用集成电路(application specific integrated circuit,asic),图形处理器(graphics processing unit,gpu)或者一个或多个集成电路,用于执行相关程序,以实现本技术实施例所述的神经网络模型的功能。
[0235]
处理器1602还可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,本技术实施例所述的神经网络模型的功能可以通过处理器1602中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器1602还可以是通用处理器、数字信号处理器(digital signal processing,dsp)、专用集成电路(asic)、现成可编程门阵列(field programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器1601,处理器1602读取存储器1601中的信息,结合其硬件完成本技术实施例的神经网络模型的功能。
[0236]
通信接口1604使用例如但不限于收发器一类的收发装置,来实现终端设备1600与其他设备或通信网络之间的通信。例如,可以通过通信接口1604获取待处理图片。
[0237]
总线1603可包括在终端设备1600各个部件(例如,存储器1601、处理器1602、通信接口1604)之间传送信息的通路。
[0238]
应注意,尽管图16所示的终端设备1600仅仅示出了存储器、处理器、通信接口,但是在具体实现过程中,本领域的技术人员应当理解,终端设备1600还包括实现正常运行所必须的其他器件。同时,根据具体需要,本领域的技术人员应当理解,终端设备1600还可包括实现其他附加功能的硬件器件。此外,本领域的技术人员应当理解,终端设备1600也可仅仅包括实现本技术实施例所必须的器件,而不必包括图16中所示的全部器件。
[0239]
可以理解,图16所示的终端设备1600相当于图3中的终端设备310。
[0240]
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
[0241]
以上所述,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应以所述权利要求的保护范围为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1