本发明涉及人工智能领域,具体涉及一种前馈序列记忆神经网络及其构建方法和系统。
背景技术:
人工神经网络是从微观结构与功能上对人脑神经系统的模拟而建立起来的一类模型,具有模拟人的部分形象思维的能力,其特点主要是具有非线性特征、学习能力和自适应性,是实现人工智能的重要途径,它是由简单信息处理单元互联组成的网络,能接受并处理信息,网络的信息处理由单元之间的相互作用来实现,具体处理信息时,通过将问题表达为处理单元之间的连接权重来处理。近年来,神经网络在人机交互的应用系统中起到了至关重要的作用,如基于深度神经网络的语音识别系统,基于深度神经网络的语音合成系统等,现有的神经网络如前馈神经网络在进行信息处理时,实现的是固定的输入到固定输出的映射关系,每个时刻的样本是独立计算的,不能有效利用训练数据的长时信息;现有的神经网络在处理具有时序依赖性的数据时,经常得不到很好的效果,所述具有时序依赖性的数据指数据与之数据之间存在前后依赖的关系,如语音识别时,为了提升识别的准确率,经常需要考虑语音数据的上下文信息。因此,为了使神经网络有效利用训练数据的长时信息,研究人员提出了具有记忆功能的递归神经网络,这种神经网络采用双向循环反馈的结构来实现记忆功能,使得该递归神经网络可以利用训练数据的长时信息。但是,该递归神经网络结构较复杂,训练网络参数时,经常存在不稳定性;并且,具有双向循环反馈的网络结构在对训练数据实现记忆功能时,需要等数据输入结束后,根据反馈信息来实现记忆,在信息处理效率较高的应用系统中无法使用,尤其是实时信息处理系统,经常需要用户等待较长的时间,降低了用户体验效果。
技术实现要素:
本发明实施例提供一种前馈序列记忆神经网络及其构建方法和系统,解决在有效利用训练数据的长时信息的前提下,现有神经网络无法保证信息处理效率的问题,以提高用户体验效果。
为此,本发明实施例提供如下技术方案:
一种前馈序列记忆神经网络包括至少三层的多个节点,第一层为输入层,最后一层为输出层,其它位于输入层和输出层之间的多个节点组成至少一个隐层,层与层之间的节点是全连接的,每一个隐层都包含一个记忆块,隐层与记忆块共同构成双向前馈序列记忆神经网络fsmn层,其中,当前隐层的记忆块的输入为当前隐层的输出,当前隐层的记忆块的输出为下一层的一个输入,所述记忆块用于存储当前帧输入数据的历史信息和未来信息,所述历史信息为当前帧输入数据之前帧的特征序列,所述未来信息为当前帧输入数据之后帧的特征序列。
优选地,所述前馈序列记忆神经网络还包括:
各双向fsmn层都相应存在一个长短时记忆lstm层,同一层的双向fsmn层和lstm层共同构成双向长短时前馈序列记忆神经网络lsfsmn层,其中,当前lstm层的输入为输入层的输出或上一lstm层、上一隐层以及上一隐层的记忆块的输出,当前lstm层的输出为下一隐层和下一lstm层的一个输入,其中,所述lstm层用于记忆历史信息,所述双向fsmn层用于记忆未来信息。
优选地,所述前馈序列记忆神经网络还包括:位于双向fsmn叠层和所述输出层之间的全连接叠层,其中,所述全连接叠层的输入端和所述双向fsmn叠层的输出端相连接,所述全连接叠层的输出端和所述输出层的输入端相连接,所述全连接叠层包括至少一个全连接层,所述双向fsmn叠层包括至少一个双向fsmn层;或者
位于双向lsfsmn叠层和所述输出层之间的全连接叠层,其中,所述全连接叠层的输入端和所述双向lsfsmn叠层的输出端相连接,所述全连接叠层的输出端和所述输出层的输入端相连接,所述全连接叠层包括至少一个全连接层,所述双向lsfsmn叠层包括至少一个双向lsfsmn层。
一种前馈序列记忆神经网络的构建方法,包括:
收集大量训练数据,并提取所述训练数据的特征序列;
构建前馈序列记忆神经网络;
利用所述训练数据的特征序列对构建的前馈序列记忆神经网络进行训练,得到前馈序列记忆神经网络的参数取值。
优选地,所述构建前馈序列记忆神经网络包括:
确定前馈序列记忆神经网络的结构;
根据确定的前馈序列记忆神经网络结构确定所述特征序列的变换方法及相应前馈序列记忆神经网络的参数。
优选地,所述前馈序列记忆神经网络的参数包括以下一种或多种:历史信息权重、未来信息权重、当前隐层与下个隐层的连接权重矩阵及权重偏置、当前隐层的记忆块与下个隐层的连接权重矩阵及权重偏置、当前lstm层与下个隐层的连接权重矩阵与权重偏置、当前lstm层与下个lstm层的转换矩阵及权重偏置、当前隐层与下个lstm层的连接权重矩阵与权重偏置、当前隐层的记忆块与下个lstm层的连接权重矩阵与权重偏置、当前lstm层与当前lstm层的转换矩阵及权重偏置、当前全连接层与下个全连接层的连接权重矩阵及权重偏置、当前双向fsmn层与下个全连接层的连接权重矩阵及权重偏置、当前lstm层与下个全连接层的连接权重矩阵与权重偏置、当前全连接层与输出层的连接权重矩阵及权重偏置。
优选地,对于包括双向fsmn叠层的前馈序列记忆神经网络,所述根据确定的前馈序列记忆神经网络结构确定所述特征序列的变换方法及相应前馈序列记忆神经网络的参数包括:
由输入层输入所述训练数据的特征序列,进入所述双向fsmn叠层;
各双向fsmn层的隐层对输入特征序列进行特征变换,并由记忆块保存当前帧训练数据的历史信息和未来信息;
利用所述历史信息权重和所述未来信息权重对训练数据的历史信息和未来信息进行融合,获取每帧训练数据的融合特征序列,作为当前隐层的记忆块的输出特征序列;
利用所述当前隐层与下个隐层的连接权重矩阵及权重偏置、所述当前隐层的记忆块与下个隐层的连接权重矩阵及权重偏置对所述当前隐层的输出特征序列和该隐层记忆块的输出特征序列进行变换,获取下一隐层的输出特征序列;
以最后一个隐层的输出和\或该隐层记忆块的输出作为输出层的输入,进行变换获取输出层的输出结果。
优选地,对于包括双向lsfsmn叠层的前馈序列记忆神经网络,所述根据确定的前馈序列记忆神经网络结构确定所述特征序列的变换方法及相应前馈序列记忆神经网络的参数包括:
由输入层输入所述训练数据的特征序列,进入双向lsfsmn叠层;
由lsfsmn层的双向fsmn层的隐层和lstm层对输入特征序列进行特征变换,并由lstm层保存当前帧训练数据的历史信息,记忆块保存当前帧训练数据的未来信息;
利用所述当前隐层与下个隐层的连接权重矩阵及权重偏置、所述当前隐层的记忆块与下个隐层的连接权重矩阵及权重偏置、当前lstm层与下个lstm层的转换矩阵及权重偏置、当前隐层与下个lstm层的连接权重矩阵与权重偏置、当前lstm层与当前lstm层的转换矩阵及权重偏置、当前隐层的记忆块与下个lstm层的连接权重矩阵与权重偏置对所述当前隐层的输出特征序列、当前隐层的记忆块的输出特征序列及当前lstm层的输出特征序列进行变换,获取下一隐层和下一lstm层的输出特征序列;
以最后一个隐层的输出和\或该隐层记忆块的输出及最后一个lstm层的输出作为输出层的输入,进行变换获取输出层的输出结果。
优选地,对于包括全连接叠层的前馈序列记忆神经网络,所述方法还包括:
当训练数据的特征序列从双向fsmn层或双向lsfsmn层进入全连接层时,利用当前双向fsmn层与下个全连接层的连接权重矩阵及权重偏置或当前双向fsmn层与下个全连接层的连接权重矩阵及权重偏置、当前lstm层与下个隐层的连接权重矩阵与权重偏置,对当前双向fsmn层或双向lsfsmn层的输出特征进行变换,获取全连接层的输出特征序列;
当训练数据的特征序列进入所述全连接层之后,利用所述当前全连接层与下个全连接层的连接权重矩阵及权重偏置对当前全连接层的输出特征序列进行变换,获取下一全连接层的输出特征序列;
当训练数据的特征序列由全连接层进入输出层时,利用当前全连接层与输出层的连接权重矩阵及权重偏置对当前全连接层的输出特征进行变换,获取输出层的输出特征序列。
一种前馈序列记忆神经网络的构建系统,包括:
提取模块,用于收集大量训练数据,并提取所述训练数据的特征序列;
构建模块,用于构建前馈序列记忆神经网络;
训练模块,用于利用所述训练数据的特征序列对构建的前馈序列记忆神经网络进行训练,得到前馈序列记忆神经网络的参数取值。
优选地,所述构建模块包括:
结构确定单元,用于确定前馈序列记忆神经网络的结构;
参数确定单元,用于根据确定的前馈序列记忆神经网络结构确定所述特征序列的变换方法及相应前馈序列记忆神经网络的参数。
优选地,所述前馈序列记忆神经网络的参数包括以下一种或多种:历史信息权重、未来信息权重、当前隐层与下个隐层的连接权重矩阵及权重偏置、当前隐层的记忆块与下个隐层的连接权重矩阵及权重偏置、当前lstm层与下个隐层的连接权重矩阵与权重偏置、当前lstm层与下个lstm层的转换矩阵及权重偏置、当前隐层与下个lstm层的连接权重矩阵与权重偏置、当前隐层的记忆块与下个lstm层的连接权重矩阵与权重偏置、当前lstm层与当前lstm层的转换矩阵及权重偏置、当前全连接层与下个全连接层的连接权重矩阵及权重偏置、当前双向fsmn层与下个全连接层的连接权重矩阵及权重偏置、当前lstm层与下个全连接层的连接权重矩阵与权重偏置、当前全连接层与输出层的连接权重矩阵及权重偏置。
优选地,对于包括双向fsmn叠层的前馈序列记忆神经网络,所述参数确定单元包括:
第一输入子单元,用于由输入层输入所述训练数据的特征序列,进入所述 双向fsmn叠层;
第一变换子单元,用于各双向fsmn层的隐层对输入特征序列进行特征变换,并由记忆块保存当前帧训练数据的历史信息和未来信息;
特征融合子单元,用于利用所述历史信息权重和所述未来信息权重对训练数据的历史信息和未来信息进行融合,获取每帧训练数据的融合特征序列,作为当前隐层的记忆块的输出特征序列;
第二变换子单元,用于利用所述当前隐层与下个隐层的连接权重矩阵及权重偏置、所述当前隐层的记忆块与下个隐层的连接权重矩阵及权重偏置对所述当前隐层的输出特征序列和该隐层记忆块的输出特征序列进行变换,获取下一隐层的输出特征序列;
第三变换子单元,用于以最后一个隐层的输出和\或该隐层记忆块的输出作为输出层的输入,进行变换获取输出层的输出结果。
优选地,对于包括双向lsfsmn叠层的前馈序列记忆神经网络,所述参数确定单元包括:
第二输入子单元,用于由输入层输入所述训练数据的特征序列,进入双向lsfsmn叠层;
第四变换子单元,用于由lsfsmn层的双向fsmn层的隐层和lstm层对输入特征序列进行特征变换,并由lstm层保存当前帧训练数据的历史信息,记忆块保存当前帧训练数据的未来信息;
第五变换子单元,用于利用所述当前隐层与下个隐层的连接权重矩阵及权重偏置、所述当前隐层的记忆块与下个隐层的连接权重矩阵及权重偏置、当前lstm层与下个lstm层的转换矩阵及权重偏置、当前lstm层与当前lstm层的转换矩阵及权重偏置、当前隐层与下个lstm层的连接权重矩阵与权重偏置、当前隐层的记忆块与下个lstm层的连接权重矩阵与权重偏置对所述当前隐层的输出特征序列、当前隐层的记忆块的输出特征序列及当前lstm层的输出特征序列进行变换,获取下一隐层和下一lstm层的输出特征序列。
第六变换子单元,用于以最后一个隐层的输出和\或该隐层记忆块的输出及最后一个lstm层的输出作为输出层的输入,进行变换获取输出层的输出 结果。
优选地,对于包括全连接叠层的前馈序列记忆神经网络,所述参数确定单元还包括:
第七变换子单元,用于当训练数据的特征序列从双向fsmn层或双向lsfsmn层进入全连接层时,利用当前双向fsmn层与下个全连接层的连接权重矩阵及权重偏置或当前双向fsmn层与下个全连接层的连接权重矩阵及权重偏置、当前lstm层与下个隐层的连接权重矩阵与权重偏置,对当前双向fsmn层或双向lsfsmn层的输出特征进行变换,获取全连接层的输出特征序列;
第八变换子单元,用于当训练数据的特征序列进入所述全连接层之后,利用所述当前全连接层与下个全连接层的连接权重矩阵及权重偏置对当前全连接层的输出特征序列进行变换,获取下一全连接层的输出特征序列;
第九变换子单元,用于当训练数据的特征序列由全连接层进入输出层时,利用当前全连接层与输出层的连接权重矩阵及权重偏置对当前全连接层的输出特征进行变换,获取输出层的输出特征序列。
本发明实施例提供的前馈序列记忆神经网络及其构建方法和系统,该神经网络包括记忆块,通过该记忆块可以存储每帧输入信息的历史信息和未来信息,以利用训练数据的长时信息,进而提升该神经网络处理信息数据的能力,并且该过程无需通过双向循环反馈,使得本发明提供的前馈序列记忆神经网络在有效利用训练数据的长时信息的前提下保证信息处理效率,提高了用户体验效果。
进一步地,为了提升神经网络的记忆能力,本发明还提供了另一种网络结构,该结构中各双向fsmn层都相应存在一个长短时记忆lstm层,同一层的双向fsmn层和lstm层共同构成双向长短时前馈序列记忆神经网络lsfsmn层,利用lstm层来记忆每帧训练数据的历史信息,利用fsmn层来记忆每帧训练数据的未来信息,有效提升了前馈序列记忆神经网络的记忆能力,进而提升该神经网络处理信息数据的能力。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1是现有技术中前馈神经网络的结构示意图;
图2是根据本发明实施例提供的前馈序列记忆神经网络的第一种结构示意图;
图3是根据本发明实施例提供的双向fsmn层的一种时序展开结构示意图;
图4是根据本发明实施例提供的前馈序列记忆神经网络的第二种结构示意图;
图5是根据本发明实施例提供的前馈序列记忆神经网络的第三种结构示意图;
图6是根据本发明实施例提供的前馈序列记忆神经网络的第四种结构示意图;
图7是根据本发明实施例提供的一种前馈序列记忆神经网络的构建方法的流程图;
图8是根据本发明实施例提供的前馈序列记忆神经网络的构建系统的一种结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明实施例的方案,下面结合附图和实施例方式对本发明作进一步的详细说明。以下实施例是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。
为了更好地理解本发明,下面首先对现有技术中主要的神经网络进行简介,现有神经网络结构的一种为前馈神经网络结构,如图1所示,该结构具体包括输入层、隐层及输出层,每层由很多节点构成,层与层之间的节点是全连接的,同一层节点之间没有连接;另一种常用的神经网络结构为递归神经网络 结构,具体包括输入层、隐层及输出层,每层由很多节点构成,隐层采用双向循环反馈结构。但是前馈神经网络的结构由于同一层节点之间没有连接,在进行信息处理时,实现的是固定的输入到固定输出的映射关系,每个时刻的样本是独立计算的。不能有效利用训练数据的长时信息,大大降低了信息处理的能力;递归神经网络结构,由于采用双向循环反馈的结构来实现记忆功能,网络结构较复杂,对训练数据实现记忆功能时,需要等数据输入结束后,根据反馈信息来实现记忆,在信息处理效率较高的应用系统中无法使用,尤其是实时信息处理系统,经常需要用户等待较长的时间,降低了用户体验效果。
本发明提供的前馈序列记忆神经网络由于每一个双向fsmn层都包含一个记忆块,该记忆块用于存储每帧输入数据的历史信息和未来信息,该历史信息和未来信息能体现数据的长时信息,有效提升神经网络处理信息数据的能力,并且该网络结构不需要采用双向循环反馈的结构,而是采用记忆块来实现记忆功能,从而提高信息处理的效率。为了更好的理解本发明的技术方案和技术效果,以下将结合流程图和具体的实施例进行详细的描述。
如图2至图6所示,是本发明实施例提供的前馈序列记忆神经网络的结构示意图:
实施例一
一种前馈序列记忆神经网络包括至少三层的多个节点,第一层为输入层,最后一层为输出层,其它位于输入层和输出层之间的多个节点组成至少一个隐层,层与层之间的节点是全连接的,还包括:每一个隐层都包含一个记忆块,隐层与记忆块共同构成双向前馈序列记忆神经网络fsmn层,其中,当前隐层的记忆块的输入为当前隐层的输出,当前隐层记忆块的输出为下一隐层的一个输入,所述记忆块用于存储每帧输入数据的历史信息和未来信息,所述历史信息为当前帧输入数据之前帧的特征序列,所述未来信息为当前帧输入数据之后帧的特征序列,如图2所示。需要说明的是,现有技术中前馈神经网络的同一层节点之间没有连接,而本发明提供的神经网络结构中,各fsmn层的隐层都与本层的记忆块相连接,使得该记忆块可以存储每帧输入数据的历史信息和未来信息。
在实际应用中,双向fsmn叠层可以由至少一个双向fsmn层,如包含2个或3个,具体可以根据实际应用需求设定,所述记忆块由多个节点构成,该记忆块中存储的每帧输入数据的历史信息和未来信息等,具体存储多少帧历史信息和未来信息可以根据实际应用或经验值等设定,一种双向fsmn层的时序展开结构如图3所示,该双向fsmn层存储当前帧输入数据之前2帧的历史信息,未存储未来信息。该示意图仅为说明本实施例,不能被解释为对本发明的限定,例如,该双向fsmn层的记忆块可以存储当前帧输入数据之前5帧的历史信息,并存储当前帧输入数据之后5帧的未来信息,在此不再列举。
实施例二
一种前馈序列记忆神经网络,如实施例一所述,所不同的是,在本实施例中,为了提升神经网络处理信息数据的能力,所述双向fsmn叠层替换为双向lsfsmn叠层,各双向lsfsmn层由同一层的双向fsmn层和lstm层共同构成,其中,所述lstm层用于记忆历史信息,所述双向fsmn层用于记忆未来信息。该神经网络结构对输入数据的记忆能力优于实施例一提供的神经网络结构。
一种前馈序列记忆神经网络包括至少三层的多个节点,第一层为输入层,最后一层为输出层,其它位于输入层和输出层之间的多个节点组成至少一个隐层,层与层之间的节点是全连接的,每一个隐层都包含一个记忆块,隐层与记忆块共同构成双向前馈序列记忆神经网络fsmn层,其中,当前隐层的记忆块的输入为当前隐层的输出,当前隐层记忆块的输出为下一层的一个输入,所述记忆块用于存储当前帧输入数据的历史信息和未来信息,所述历史信息为当前帧输入数据之前帧的特征序列,所述未来信息为当前帧输入数据之后帧的特征序列;所述前馈序列记忆神经网络还包括:各双向fsmn层都相应存在一个长短时记忆lstm层,同一层的双向fsmn层和lstm层共同构成双向长短时前馈序列记忆神经网络lsfsmn层,其中,当前lstm层的输入为输入层的输出或上一lstm层、上一隐层以及上一隐层的记忆块的输出,当前lstm层的输出为下一隐层和下一lstm层的一个输入,其中,所述lstm 层用于记忆历史信息,所述双向fsmn层用于记忆未来信息,所述双向lsfsmn叠层包括至少一个双向lsfsmn层,如图4所示。
实施例三
一种前馈序列记忆神经网络,如实施例一所述,所不同的是,在本实施例中,为了提升神经网络处理信息数据的能力,该神经网络结构还包括全连接叠层。该神经网络结构的信息处理能力优于实施例一提供的神经网络结构,且信息处理效率不会明显下降。
一种前馈序列记忆神经网络包括至少三层的多个节点,第一层为输入层,最后一层为输出层,其它位于输入层和输出层之间的多个节点组成至少一个隐层,层与层之间的节点是全连接的,每一个隐层都包含一个记忆块,隐层与记忆块共同构成双向前馈序列记忆神经网络fsmn层,其中,当前隐层的记忆块的输入为当前隐层的输出,当前隐层记忆块的输出为下一层的一个输入,所述记忆块用于存储当前帧输入数据的历史信息和未来信息,所述历史信息为当前帧输入数据之前帧的特征序列,所述未来信息为当前帧输入数据之后帧的特征序列;此外,所述前馈序列记忆神经网络还包括:位于双向fsmn叠层和所述输出层之间的全连接叠层,其中,所述全连接叠层的输入端和所述双向fsmn叠层的输出端相连接,所述全连接叠层的输出端和所述输出层的输入端相连接,所述全连接叠层包括至少一个全连接层,所述双向fsmn叠层包括至少一个双向fsmn层,如图5所示。
优选地,全连接叠层为2至3层,该全连接叠层可以进一步提升神经网络的信息处理能力并且不会造成效率降低的问题。
实施例四
一种前馈序列记忆神经网络,如实施例一所述,所不同的是,在本实施例中,为了提升神经网络处理信息数据的能力,所述双向fsmn叠层替换为双向lsfsmn叠层,各双向lsfsmn层由同一层的双向fsmn层和lstm层共同构成,其中,所述lstm层用于记忆历史信息,所述双向fsmn 层用于记忆未来信息;此外,该神经网络结构还包括全连接叠层。该神经网络结构的信息处理能力最优,但是信息处理效率略低于实施例一至三。
一种前馈序列记忆神经网络包括至少三层的多个节点,第一层为输入层,最后一层为输出层,其它位于输入层和输出层之间的多个节点组成至少一个隐层,层与层之间的节点是全连接的,每一个隐层都包含一个记忆块,隐层与记忆块共同构成双向前馈序列记忆神经网络fsmn层,其中,当前隐层的记忆块的输入为当前隐层的输出,当前隐层记忆块的输出为下一层的一个输入,所述记忆块用于存储当前帧输入数据的历史信息和未来信息,所述历史信息为当前帧输入数据之前帧的特征序列,所述未来信息为当前帧输入数据之后帧的特征序列,各双向fsmn层都相应存在一个长短时记忆lstm层,同一层的双向fsmn层和lstm层共同构成双向长短时前馈序列记忆神经网络lsfsmn层,其中,当前lstm层的输入为输入层的输出或上一lstm层、上一隐层以及上一隐层的记忆块的输出,当前lstm层的输出为下一隐层和下一lstm层的一个输入,其中,所述lstm层用于记忆历史信息,所述双向fsmn层用于记忆未来信息;该神经网络结构还包括位于双向lsfsmn叠层和所述输出层之间的全连接叠层,其中,所述全连接层的输入端和所述双向lsfsmn叠层的输出端相连接,所述全连接叠层的输出端和所述输出层的输入端相连接,所述全连接叠层包括至少一个全连接层,所述双向lsfsmn叠层包括至少一个双向lsfsmn层,如图6所示。
本发明实施例提供的前馈序列记忆神经网络,该神经网络与传统的神经网络相比,在神经网络的隐层额外增加了一个记忆块,该记忆块用于保存每帧训练数据的历史信息和未来信息,有效提升了神经网络处理信息数据的能力。进一步地,所述前馈序列记忆神经网络还包括lstm叠层,利用记忆块保存每帧训练数据的未来信息,利用lstm保存每帧训练数据的历史信息,进一步提升了神经网络处理信息数据的能力。
相应地,本发明还提供了一种前馈序列记忆神经网络的构建方法,该构建方法的流程图如图7所示,包括:
步骤s01,收集大量训练数据,并提取所述训练数据的特征序列。
在本实施例中,所述训练数据可以为语音数据、文本数据、或图像数据等,具体可以根据应用需求确定。
以语音数据为例,提取训练数据的特征时,首先需要对每句语音数据进行分帧处理,得到语音帧序列;然后提取各语音帧的语音特征,所述语音特征,可以是感知线性预测系数(perceptuallinearpredictive,plp),它是受人的听觉系统研究成果推动而导出的声学特征,当然也可以是filterbank特征、梅尔频率倒谱系数(melfrequencycepstrumcoefficient,mfcc)、线性预测系数(linearpredictioncoefficient,lpc)等语音特征等。具体提取方法与现有技术相同。
步骤s02,构建前馈序列记忆神经网络。
在本实施例中,所述构建前馈序列记忆神经网络可以包括:确定前馈序列记忆神经网络的结构;根据确定的前馈序列记忆神经网络结构确定所述特征序列的变换方法及相应前馈序列记忆神经网络的参数。其中,所述前馈序列记忆神经网络的参数可以包括以下一种或多种:历史信息权重、未来信息权重、当前隐层与下个隐层的连接权重矩阵及权重偏置、当前隐层的记忆块与下个隐层的连接权重矩阵及权重偏置、当前lstm层与下个隐层的连接权重矩阵与权重偏置、当前lstm层与下个lstm层的转换矩阵及权重偏置、当前隐层与下个lstm层的连接权重矩阵与权重偏置、当前隐层的记忆块与下个lstm层的连接权重矩阵与权重偏置、当前lstm层与当前lstm层的转换矩阵及权重偏置、当前全连接层与下个全连接层的连接权重矩阵及权重偏置、当前双向fsmn层与下个全连接层的连接权重矩阵及权重偏置、当前lstm层与下个全连接层的连接权重矩阵与权重偏置、当前全连接层与输出层的连接权重矩阵及权重偏置。
在一个具体实施例中,前馈序列记忆神经网络由三部分构成,即输入层、双向fsmn叠层及输出层,双向fsmn叠层至少包括一个双向fsmn层;每层包含多个节点,如2048个,双向fsmn层包含记忆块,所述记忆块用来保存每帧训练数据的历史信息和未来信息,记忆的历史信息和未来信息的帧数可以根据实际应用确定,如一条训练数据共t帧,第t帧训练数据的历史信息可 以指第t帧之前一帧或多帧训练数据,即第1帧到第t-1帧的一帧或多帧训练数据,未来信息可以指第t帧之生一帧或多帧训练数据,即第t+1到帧到第t帧的一帧或多帧训练数据,记忆块存储的历史信息和未来信息的帧数可以根据实际应用确定。输入层为训练数据提取的特征序列,输出层为每帧训练数据所属的数据单元,以语音数据为例,所述数据单元可以为隐马尔可夫模型的状态、音素单元或音节单元等。
对于包括双向fsmn叠层的前馈序列记忆神经网络,所述根据确定的前馈序列记忆神经网络结构确定所述特征序列的变换方法及相应前馈序列记忆神经网络的参数包括:
首先,由输入层输入所述训练数据的特征序列,进入所述双向fsmn叠层,其中,所述声学特征序列使用x表示,其中x={x1,x2,...,xt,...,xt},xt表示输入层输入的第t帧训练数据的特征;
然后,各双向fsmn层的隐层对输入特征序列进行特征变换,并由记忆块保存每帧训练数据的历史信息和未来信息,其中输入层的输出特征序列作为双向fsmn层的输入特征序列,双向fsmn层对输入特征序列进行特征变换,在特征变换的过程中使用记忆块保存每帧训练数据的历史信息和未来信息。例如训练数据的特征序列经过第l个双向fsmn层,第l个双向fsmn层的隐层的输出特征序列使用
接着,利用所述历史信息权重和所述未来信息权重对训练数据的历史信息和未来信息进行融合,获取每帧训练数据的融合特征序列,作为当前隐层的记忆块的输出特征序列;其中,记忆块的输出特征序列使用
其中,
然后,利用所述当前隐层与下个隐层的连接权重矩阵及权重偏置、所述当前隐层的记忆块与下个隐层的连接权重矩阵及权重偏置对所述当前隐层的输 出特征序列和该隐层记忆块的输出特征序列进行变换,获取下一隐层的输出特征序列;其中,将记忆块的输出特征序列与记忆块所在双向fsmn层的隐层的输出特征序列一起作为下一双向fsmn层的隐层的输入特征序列,则下一双向fsmn层的隐层的输出特征序列为对输入特征序列进行变换后的特征序列,具体可以通过激活函数对输入特征序列进行变换,如将第l个双向fsmn层的隐层的输出特征序列及第l个双向fsmn层的记忆块的输出特征序列作为第l+1个双向fsmn层的隐层的输入,得到的第l+1个隐层输出特征序列的变换方法如式(2)所示:
其中,
最终,以最后一个隐层的输出和该隐层记忆块的输出作为输出层的输入,进行变换获取输出层的输出结果;其中,输出层的预测目标为每帧训练数据所属的数据单元,具体变换方法同现有技术,激活函数为softmax函数。
在另一个实施例中,不同于上一个实施例,前馈序列记忆神经网络由四部分构成,即输入层、双向fsmn叠层、全连接叠层及输出层,其中双向fsmn叠层包括至少一个双向fsmn层,全连接叠层包括至少一个全连接层,具体结构参考实施例三,当训练数据的特征序列从双向fsmn层进入全连接层时,利用当前双向fsmn层与下个全连接层的连接权重矩阵及权重偏置对当前双向fsmn层的输出特征进行变换,获取全连接层的输出特征序列;当训练数据的特征序列进入所述全连接层之后,利用所述当前全连接层与下个全连接层的连接权重矩阵及权重偏置对当前全连接层的输出特征序列进行变换,获取下一全连接层的输出特征序列;当训练数据的特征序列由全连接层进入输出层时,利用当前全连接层与输出层的连接权重矩阵及权重偏置对当前全连接层的 输出特征进行变换,获取输出层的输出特征序列。具体的,特征序列经过双向fsmn叠层进入全连接叠层,所述全连接层与双向fsmn层的区别在于,全连接层没有记忆块,当特征序列从双向fsmn叠层进入全连接叠层时(即最后一个双向fsmn层进入第一个全连接层时),特征序列的变换方法如式(2)所示,当特征序列在全连接叠层内传递时,特征序列的变换不需要考虑记忆块。以第m个全连接层(可以为现有技术中的隐层)和第m+1个全连接层为例,特征序列在全连接层之间的变换方法如式(3)所示:
其中,
在其它实施例中,前馈序列记忆神经网络由四部分构成,即输入层、双向lsfsmn叠层、全连接叠层及输出层,其中双向lsfsmn叠层包括至少一个双向lsfsmn层,所述双向lsfsmn层由双向fsmn层及lstm层构成,具体结构参考实施例四,其中,所述lstm(longshorttermmemory)层用来记忆每帧训练数据的历史信息,所述fsmn层用来记忆每帧训练数据的未来信息,各lsfsmn层之间进行特征序列的变换时,不仅将当前双向fsmn层的隐层的输出特征序列、该隐层记忆块的输出特征序列及lstm层的输出特征序列作为下一个双向lsfsmn层的隐层的输入特征序列,同时还将当前双向fsmn层的隐层的输出特征序列、该隐层记忆块的输出特征序列及lstm层的输出特征序列作为下一个双向lsfsmn层的lstm层的输入特征序列,需要说明的是,lstm层的输出特征序列同时可以作为自己的输入特征序列,当特征序列从双向lsfsmn叠层进入到全连接叠层时,只需要将双向lsfsmn层的lstm层的输出特征序列、双向fsmn层的隐层的输出特征序列及该隐层记忆块的输出特征序列作为第一个全连接层的输入特征序列。
在实际应用中,所述根据确定的前馈序列记忆神经网络结构确定所述特征序列的变换方法及相应前馈序列记忆神经网络的参数包括:
首先,由输入层输入所述训练数据的特征序列,进入双向lsfsmn叠层;
然后,由lsfsmn层的双向fsmn层的隐层和lstm层对输入特征序列进行特征变换,并由lstm层保存每帧训练数据的历史信息,记忆块保存每帧训练数据的未来信息;
接着,利用所述当前隐层与下个隐层的连接权重矩阵及权重偏置、所述当前隐层的记忆块与下个隐层的连接权重矩阵及权重偏置、当前lstm层与下个隐层的转换矩阵及权重偏置、当前lstm层与下个lstm层的转换矩阵及权重偏置、当前lstm层与当前lstm层的转换矩阵及权重偏置、当前隐层与下个lstm层的连接权重矩阵与权重偏置、当前隐层的记忆块与下个lstm层的连接权重矩阵与权重偏置对所述当前隐层的输出特征序列、当前隐层的记忆块的输出特征序列及当前lstm层的输出特征序列进行变换,获取下一双向lsfsmn层的隐层和lstm层的输出特征序列;
然后,当训练数据的特征序列从双向lsfsmn层进入全连接层时,利用当前双向fsmn层与下个全连接层的连接权重矩阵及权重偏置、当前lstm层与下个隐层的连接权重矩阵与权重偏置,对当前双向lsfsmn层的输出特征进行变换,获取全连接层的输出特征序列;
接着,当训练数据的特征序列进入所述全连接层之后,利用所述当前全连接层与下个全连接层的连接权重矩阵及权重偏置对当前全连接层的输出特征序列进行变换,获取下一全连接层的输出特征序列;
最终,当训练数据的特征序列由全连接层进入输出层时,利用当前全连接层与输出层的连接权重矩阵及权重偏置对当前全连接层的输出特征进行变换,获取输出层的输出特征序列。其中,输出层的预测目标为每帧训练数据所属的数据单元,具体变换方法如式(3)所示,激活函数为softmax函数。
步骤s03,利用所述训练数据的特征序列对构建的前馈序列记忆神经网络进行训练,得到前馈序列记忆神经网络的参数取值。
在本实施例中,具体训练方法与现有技术相同,如利用误差反向传播算法 (bp)对网络参数进行调整,具体可以采用交叉熵准则对网络参数进行调整,提高每帧训练数据的分类正确率,当训练数据较多时,一般采用固定迭代次数对网络参数进行调整,如固定10次迭代,具体迭代时,前四次迭代学习速率可以不变,从第五次迭代开始,每次学习速率减半;当训练数据较少时,可以通过计算分类错误率来调整学习速率,当分类错误率的变化较小时,则认为网络参数已经收敛,停止迭代。
需要说明的是,当训练结束后,得到该神经网络的各参数。利用该神经网络进行语音识别等实际应用中,特征序列的转换过程同建模过程,在此不再详述,并且在使用中可以继续优化该神经网络的各参数。
在本发明实施例中,利用所述训练数据的特征序列对构建的前馈序列记忆神经网络进行训练,得到前馈序列记忆神经网络的参数取值,可以根据实际应用中对神经网络信息处理能力的要求的高低,构建不同的前馈序列记忆神经网络,并针对不同的神经网络结构确定前馈序列神经网络的参数。例如对信息处理能力要求高,但是对速度要求不高的场景中,可以采用实施例二或四提供的网络结构并进行训练;而对信息处理能力要求较高,但是对速度要求高的场景中,可以采用实施例一或实施例三提供的网络结构并进行训练。
此外,本发明还提供了一种前馈序列记忆神经网络的其构建系统,如图8所示:
一种前馈序列记忆神经网络的构建系统,包括:
提取模块901,用于收集大量训练数据,并提取所述训练数据的特征序列;
构建模块902,用于构建前馈序列记忆神经网络;
训练模块903,用于利用所述训练数据的特征序列对构建的前馈序列记忆神经网络进行训练,得到前馈序列记忆神经网络的参数取值。
在本实施例中,所述构建模块902包括:
结构确定单元,用于确定前馈序列记忆神经网络的结构;
参数确定单元,用于根据确定的前馈序列记忆神经网络结构确定所述特征序列的变换方法及相应前馈序列记忆神经网络的参数。
其中,所述前馈序列记忆神经网络的参数包括以下一种或多种:历史信息权重、未来信息权重、当前隐层与下个隐层的连接权重矩阵及权重偏置、当前 隐层的记忆块与下个隐层的连接权重矩阵及权重偏置、当前lstm层与下个隐层的连接权重矩阵与权重偏置、当前lstm层与下个lstm层的转换矩阵及权重偏置、当前隐层与下个lstm层的连接权重矩阵与权重偏置、当前隐层的记忆块与下个lstm层的连接权重矩阵与权重偏置、当前lstm层与当前lstm层的转换矩阵及权重偏置、当前全连接层与下个全连接层的连接权重矩阵及权重偏置、当前双向fsmn层与下个全连接层的连接权重矩阵及权重偏置、当前lstm层与下个全连接层的连接权重矩阵与权重偏置、当前全连接层与输出层的连接权重矩阵及权重偏置。
在实际应用中,对于包括双向fsmn叠层的前馈序列记忆神经网络,所述参数确定单元包括:
第一输入子单元,用于由输入层输入所述训练数据的特征序列,进入所述双向fsmn叠层;
第一变换子单元,用于各双向fsmn层的隐层对输入特征序列进行特征变换,并由记忆块保存每帧训练数据的历史信息和未来信息;
特征融合子单元,用于利用所述历史信息权重和所述未来信息权重对训练数据的历史信息和未来信息进行融合,获取每帧训练数据的融合特征序列,作为当前隐层的记忆块的输出特征序列;
第二变换子单元,用于利用所述当前隐层与下个隐层的连接权重矩阵及权重偏置、所述当前隐层的记忆块与下个隐层的连接权重矩阵及权重偏置对所述当前隐层的输出特征序列和该隐层记忆块的输出特征序列进行变换,获取下一隐层的输出特征序列;
第三变换子单元,用于以最后一个隐层的输出和\或该隐层记忆块的输出作为输出层的输入,进行变换获取输出层的输出结果。
此外,对于包括双向lsfsmn叠层的前馈序列记忆神经网络,所述参数确定单元包括:
第二输入子单元,用于由输入层输入所述训练数据的特征序列,进入双向lsfsmn叠层;
第四变换子单元,用于由lsfsmn层的双向fsmn层的隐层和lstm层 对输入特征序列进行特征变换,并由lstm层保存每帧训练数据的历史信息,记忆块保存每帧训练数据的未来信息;
第五变换子单元,用于利用所述当前隐层与下个隐层的连接权重矩阵及权重偏置、所述当前隐层的记忆块与下个隐层的连接权重矩阵及权重偏置、当前lstm层与下个隐层的转换矩阵及权重偏置、当前lstm层与下个lstm层的转换矩阵及权重偏置、当前lstm层与当前lstm层的转换矩阵及权重偏置、当前隐层与下个lstm层的连接权重矩阵与权重偏置、当前隐层的记忆块与下个lstm层的连接权重矩阵与权重偏置对所述当前隐层的输出特征序列、当前隐层的记忆块的输出特征序列及当前lstm层的输出特征序列进行变换,获取下一隐层和下一lstm层的输出特征序列。
第六变换子单元,用于以最后一个隐层的输出和\或该隐层记忆块的输出及最后一个lstm层的输出作为输出层的输入,进行变换获取输出层的输出结果。
进一步地,对于包括全连接叠层的前馈序列记忆神经网络,所述参数确定单元还包括:
第七变换子单元,用于当训练数据的特征序列从双向fsmn层或双向lsfsmn层进入全连接层时,利用当前双向fsmn层与下个全连接层的连接权重矩阵及权重偏置或当前双向fsmn层与下个全连接层的连接权重矩阵及权重偏置、当前lstm层与下个隐层的连接权重矩阵与权重偏置,对当前双向fsmn层或双向lsfsmn层的输出特征进行变换,获取全连接层的输出特征序列;
第八变换子单元,用于当训练数据的特征序列进入所述全连接层之后,利用所述当前全连接层与下个全连接层的连接权重矩阵及权重偏置对当前全连接层的输出特征序列进行变换,获取下一全连接层的输出特征序列;
第九变换子单元,用于当训练数据的特征序列由全连接层进入输出层时,利用当前全连接层与输出层的连接权重矩阵及权重偏置对当前全连接层的输出特征进行变换,获取输出层的输出特征序列。
当然,该系统还可以进一步包括存储模块(未图示),用于保存特征序列、及相应神经网络的参数等信息。这样,以方便对待处理信息进行计算机自动处 理,并存储处理结果相关信息等。
本发明实施例提供的前馈序列记忆神经网络的构建系统,通过提取模块901收集大量训练数据,并提取所述训练数据的特征序列,然后利用构建模块902构建前馈序列记忆神经网络,其中,前馈序列记忆神经网络针对不同的应用场景可以采用不同的前馈序列记忆神经网络结构,最终,通过训练模块903利用所述训练数据的特征序列对构建的前馈序列记忆神经网络进行训练,得到前馈序列记忆神经网络的参数取值。使得本发明提供的构建系统可以根据实际应用中对神经网络信息处理能力的要求等,构建不同的前馈序列记忆神经网络,并针对不同的神经网络结构确定前馈序列神经网络的参数,以满足用户的需求。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的系统实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上对本发明实施例进行了详细介绍,本文中应用了具体实施方式对本发明进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及设备;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。