一种神经网络模型的使用方法及装置、训练方法及装置与流程

文档序号:17893802发布日期:2019-06-13 15:51阅读:132来源:国知局
一种神经网络模型的使用方法及装置、训练方法及装置与流程

本申请涉及人工智能技术领域,特别涉及一种神经网络模型的使用方法及装置、训练方法及装置、计算设备、存储介质和芯片。



背景技术:

对于神经网络模型,很多模型架构都会涉及编码层—解码层的架构,例如谷歌transformer模型、循环神经网络(recurrentneuralnetwork,rnn)模型、长短期记忆(longshort-termmemory,lstm)模型等。此类模型的应用场景十分广泛,例如语音识别、文本摘要、阅读理解、视图问答等等都会用到此类网络模型。

以翻译模型为例。翻译模型是一种端到端的网络结构,其中编码层对输入的待处理对象进行编码处理生成编码向量,然后解码层接收解码端输入的编码向量进行解码得到解码向量,并将解码向量依次输入线性层和归一化层,最终获取相应的翻译语句。

目前在实际训练的过程中,可以得到的翻译模型并不只有一个,但是这些翻译模型在进行翻译的过程中,只受限于翻译模型自身的训练结果,不能有效地利用其他翻译模型的训练结果。



技术实现要素:

有鉴于此,本申请实施例提供了一种神经网络模型的使用方法及装置、训练方法及装置、计算设备、存储介质和芯片,以解决现有技术中存在的技术缺陷。

本申请实施例提供了一种神经网络模型的使用方法,所述神经网络模型包括第一模型和第二模型,所述第一模型包括第一编码层和第一解码层,所述第二模型包括第二编码层和第二解码层;

所述使用方法包括:

将待处理对象分别输入至第一模型的第一编码层和第二模型的第二编码层,得到第一编码向量和第二编码向量;

将第一编码向量输入至第一模型的第一解码层得到第一解码向量,并根据第一解码向量得到对应的第一解码单元;

将第二编码向量和第一解码单元输入至第二模型的第二解码层,得到第二解码向量,并根据第二解码向量得到处理结果。

可选地,第一模型的第一编码层包括第一编码嵌入层和第一编码堆栈层组;

将待处理对象输入至第一模型的第一编码层,得到第一编码向量,包括:

将待处理对象输入至第一模型的第一编码嵌入层,生成第一预编码向量;

将所述第一预编码向量输入至所述第一编码堆栈层组,得到所述第一编码向量。

可选地,所述第一编码堆栈层组包括n个第一编码堆栈层,其中,n为大于等于1的正整数;

将所述第一预编码向量输入至所述第一编码堆栈层组,得到所述第一编码向量,包括:

s102、将所述第一预编码向量输入至至第1个第一编码堆栈层,得到第1个所述第一编码堆栈层输出的编码向量;

s104、将第i-1个第一编码堆栈层输出的编码向量输入至第i个第一编码堆栈层,得到第i个所述第一编码堆栈层输出的编码向量,其中2≤i≤n;

s106、将i自增1,判断自增1后的i是否大于n,若是,则执行步骤s108,若否,继续执行步骤s104;

s108、根据n个第一编码堆栈层输出的编码向量,得到所述第一编码向量。

可选地,第二模型的第二编码层包括第二编码嵌入层和第二编码堆栈层组;

将待处理对象输入至第二模型的第二编码层,得到第二编码向量,包括:

将待处理对象输入至第二模型的第二嵌入层,生成第二预编码向量;

将所述第二预编码向量输入至所述第二编码堆栈层组,得到所述第二编码向量。

可选地,所述第二编码堆栈层组包括m个第二编码堆栈层,其中,m为大于等于1的正整数;

将所述第二预编码向量输入至所述第二编码堆栈层组,得到所述第二编码向量,包括:

s202、将所述第二预编码向量输入至第1个第二编码堆栈层,得到第1个所述第二编码堆栈层输出的编码向量;

s204、将第j-1个第二编码堆栈层输出的编码向量输入至第j个第二编码堆栈层,得到第j个所述第二编码堆栈层输出的编码向量,其中2≤j≤m;

s206、将j自增1,判断自增1后的j是否大于m,若是,则执行步骤s208,若否,继续执行步骤s204;

s208、根据m个第二编码堆栈层输出的编码向量,得到所述第二编码向量。

可选地,所述第一模型的第一解码层包括第一解码嵌入层和第一解码堆栈层组,所述第二模型的第二解码层包括第二解码嵌入层和第二解码堆栈层组;所述待处理对象包括至少两个待处理单元;

将第一编码向量输入至第一模型的第一解码层得到第一解码向量,并根据第一解码向量得到对应的第一解码单元,包括:

s302、将初始参考翻译单元输入至第一模型的第一解码嵌入层,生成初始参考翻译单元对应的第一预解码向量;

s304、将第一编码向量和初始参考翻译单元对应的第一预解码向量输入至所述第一解码堆栈层组,得到第1个待处理单元对应的第一解码向量,根据第1个待处理单元对应的第一解码向量得到第1个第一解码单元;

将第二编码向量和第一解码单元输入至第二模型的第二解码层,得到第二解码向量,包括:

s306、将第1个第一解码单元输入至第二模型的第二解码嵌入层,生成第1个第一解码单元对应的第二预解码向量;

s308、将第二编码向量和第1个第一解码单元对应的第二预解码向量输入至所述第二解码堆栈层组,得到第1个待处理单元对应的第二解码向量。

可选地,所述第一解码堆栈层组包括p个第一解码堆栈层;

所述步骤s304中,将第一编码向量和初始参考翻译单元对应的第一预解码向量输入至所述第一解码堆栈层组,得到第1个待处理单元对应的第一解码向量,包括:

s3042、将第一编码向量和初始参考翻译单元对应的第一预解码向量输入至第1个第一解码堆栈层,得到第1个第一解码堆栈层输出的解码向量;

s3044、将第一编码向量和第q-1个第一解码堆栈层输出的解码向量输入至第q个第一解码堆栈层,得到第q个第一解码堆栈层输出的解码向量,其中,2≤q≤p;

s3046、将q自增1,判断自增1后的q是否大于p,若是,则执行步骤s3048,若否,继续执行步骤s3044;

s3048、将最后一个第一解码堆栈层输出的解码向量作为第1个待处理单元对应的第一解码向量。

可选地,第二解码堆栈层组包括a个第二解码堆栈层,所述步骤s308包括:

s3082、将第二编码向量以及第二预解码向量输入至第1个第二解码堆栈层,得到第1个第二解码堆栈层输出的解码向量;

s3084、将第二编码向量和第b-1个第二解码堆栈层输出的解码向量输入至第b个第二解码堆栈层,得到第b个第二解码堆栈层输出的解码向量,其中,2≤b≤a;

s3086、将b自增1,判断自增1后的b是否大于a,若是,则执行步骤s3088,若否,继续执行步骤s3084;

s3088、将最后一个第二解码堆栈层输出的解码向量作为第1个待处理单元对应的第二解码向量。

可选地,所述第一模型的第一解码层包括第一解码嵌入层和第一解码堆栈层组,所述第二模型的第二解码层包括第二解码嵌入层和第二解码堆栈层组;

所述待处理对象包括y个待处理单元,每个待处理单元具有对应的第一解码单元,其中,y≥2且y为正整数;

将第一编码向量输入至第一模型的第一解码层得到第一解码向量,并根据第一解码向量得到对应的第一解码单元,包括:

s402、将第x个第一解码单元输入至第一模型的第一解码嵌入层,生成第x个第一解码单元对应的第一预解码向量,其中,1≤x≤y-1;

s404、将第一编码向量和第x个第一解码单元对应的第一预解码向量输入至所述第一解码堆栈层组,得到第x+1个待处理单元对应的第一解码向量,根据第x+1个待处理单元对应的第一解码向量得到第x+1个第一解码单元;

将第二编码向量和第一解码单元输入至第二模型的第二解码层,得到第二解码向量,包括:

s406、将第x+1个第一解码单元输入至第二模型的第二解码嵌入层,生成第x+1个第一解码单元对应的第二预解码向量;

s408、将第二编码向量和第x+1个第一解码单元对应的第二预解码向量输入至所述第二解码堆栈层组,得到第x+1个待处理单元对应的第二解码向量。

可选地,所述第一解码堆栈层组包括p个第一解码堆栈层;

所述步骤s404中,将第一编码向量和第x个第一解码单元对应的第一预解码向量输入至所述第一解码堆栈层组,得到第x+1个待处理单元对应的第一解码向量,包括:

s4042、将第一编码向量和第x个第一解码单元对应的第一预解码向量输入至第1个第一解码堆栈层,得到第1个第一解码堆栈层输出的解码向量;

s4044、将第一编码向量和第q-1个第一解码堆栈层输出的解码向量输入至第q个第一解码堆栈层,得到第q个第一解码堆栈层输出的解码向量,其中,2≤q≤p;

s4046、将q自增1,判断自增1后的q是否大于p,若是,则执行步骤s4048,若否,继续执行步骤s4044;

s4048、将最后一个第一解码堆栈层输出的解码向量作为第x+1个待处理单元对应的第一解码向量。

可选地,第二解码堆栈层组包括a个第二解码堆栈层,所述步骤s408包括:

s4082、将第二编码向量以及第x+1个第一解码单元对应的第二预解码向量输入至第1个第二解码堆栈层,得到第1个第二解码堆栈层输出的解码向量;

s4084、将第二编码向量和第b-1个第二解码堆栈层输出的解码向量输入至第b个第二解码堆栈层,得到第b个第二解码堆栈层输出的解码向量,其中,2≤b≤a;

s4086、将b自增1,判断自增1后的b是否大于a,若是,则执行步骤s4088,若否,继续执行步骤s4084;

s4088、将最后一个第二解码堆栈层输出的解码向量作为第x+1个待处理单元对应的第二解码向量。

可选地,根据第二解码向量得到处理结果,包括:

根据每个待处理单元对应的第二解码向量得到对应的第二解码单元,并根据y个第二解码单元生成处理结果。

本申请实施例公开了一种神经网络模型的训练方法,所述神经网络模型包括编码层和解码层;所述训练方法包括:

将训练集中的第一对象输入至神经网络模型的编码层,得到编码向量;

将编码向量和训练集中与第一对象对应的第二对象输入至神经网络模型的解码层,得到解码向量;

根据解码向量得到解码向量的误差,根据误差判断是否达到训练停止条件;

若是,停止训练;

若否,继续将训练集中的第一对象输入至神经网络模型的编码层。

可选地,所述神经网络模型包括第一模型,所述第一模型的编码层包括第一编码层,所述第一模型的解码层包括第一解码层;

所述神经网络模型包括第二模型,所述第二模型的编码层包括第二编码层,所述第二模型的解码层包括第二解码层。

可选地,所述解码向量的误差通过以下方法得到:将所述解码向量与预设的向量验证集进行对比,得到所述解码向量的误差。

可选地,所述训练停止条件包括:所述误差的变化率小于稳定阈值。

本申请实施例公开了一种神经网络模型的使用装置,所述神经网络模型包括第一模型和第二模型,所述第一模型包括第一编码层和第一解码层,所述第二模型包括第二编码层和第二解码层,所述装置包括:

编码模块,被配置为将待处理对象分别输入至第一模型的第一编码层和第二模型的第二编码层,得到第一编码向量和第二编码向量;

第一解码模块,被配置为将第一编码向量输入至第一模型的第一解码层得到第一解码向量,并根据第一解码向量得到对应的第一解码单元;

第二解码模块,被配置为将第二编码向量和第一解码单元输入至第二模型的第二解码层,得到第二解码向量,并根据第二解码向量得到处理结果。

本申请实施例公开了一种神经网络模型的训练装置,所述神经网络模型包括编码层和解码层,所述训练装置包括:

编码训练模块,被配置为将训练集中的第一对象输入至神经网络模型的编码层,得到编码向量;

解码训练模块,被配置为将编码向量和训练集中与第一对象对应的第二对象输入至神经网络模型的解码层,得到解码向量;

误差调整模块,被配置为根据解码向量得到解码向量的误差,根据误差判断是否达到训练停止条件,若是,停止训练,若否,继续执行编码训练模块。

本申请实施例公开了一种计算设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机指令,其特征在于,所述处理器执行所述指令时实现如上所述的神经网络模型的使用方法或训练方法的步骤。

本申请实施例公开了一种计算机可读存储介质,其存储有计算机指令,该指令被处理器执行时实现如上所述的神经网络模型的使用方法或训练方法的步骤。

本申请实施例公开了一种芯片,其存储有计算机指令,该指令被芯片执行时实现如上所述的神经网络模型的使用方法或训练方法的步骤。

本申请提供的神经网络模型的使用方法及装置,通过将待处理对象分别输入至第一模型和第二模型,得到第一编码向量和第二编码向量;将第一编码向量输入至第一模型得到第一解码向量,并根据第一解码向量得到对应的第一解码单元;将第二编码向量和第一解码单元输入至第二模型得到第二解码向量,并根据第二解码向量得到待处理对象对应的处理结果,从而在第二模型的使用过程中利用了第一模型对待处理对象的处理结果,有效地结合不同神经网络模型的优点,最终提升模型处理的质量。

本申请提供的神经网络模型的训练方法及装置,将训练集中的第一对象输入至神经网络模型的编码层,得到编码向量;将编码向量和训练集中与第一对象对应的第二对象输入至神经网络模型的解码层,得到解码向量;根据解码向量得到解码向量的误差,并根据解码向量的误差继续训练神经网络模型,直至达到训练停止条件,从而可以得到具有良好性能的神经网络模型。

附图说明

图1是本申请一实施例的神经网络模型的架构示意图;

图2a是本申请一实施例的第一模型的架构示意图;

图2b是本申请一实施例的第二模型的架构示意图;

图3是本申请一实施例的神经网络模型在使用过程中的示意图;

图4是本申请一实施例的神经网络模型的使用方法的流程示意图;

图5是本申请一实施例的神经网络模型的使用方法的流程示意图;

图6是本申请一实施例的神经网络模型的使用方法的流程示意图;

图7是本申请另一实施例的神经网络模型的使用系统的架构示意图;

图8是本申请又一实施例的神经网络模型的训练方法示意图;

图9是本申请一实施例的神经网络模型的使用装置的架构示意图;

图10是本申请一实施例的神经网络模型的训练装置的架构示意图;

图11是本申请一实施例的计算设备的架构示意图。

具体实施方式

在下面的描述中阐述了很多具体细节以便于充分理解本申请。但是本申请能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本申请内涵的情况下做类似推广,因此本申请不受下面公开的具体实施的限制。

在本说明书一个或多个实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本说明书一个或多个实施例中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。

应当理解,尽管在本说明书一个或多个实施例中可能采用术语第一、第二等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一也可以被称为第二,类似地,第二也可以被称为第一。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。

首先,对本发明一个或多个实施例涉及的名词术语进行解释。

翻译模型:其主要思想是将待处理对象经过编码层(encoder)编码成为一个编码向量,然后利用解码层(decoder)对编码向量进行解码,得到解码向量,然后将解码向量翻译成为对应的处理结果。

编码(encoder):将待处理对象由文字转化为编码向量;

解码(decoder):将编码向量转化为翻译语句的语言文字。

待处理单元:待处理对象的组成单元,包括字、词组、短语中的至少一种。

翻译单元:翻译语句的组成单元,包括字、词组、短语中的至少一种。

在本申请中,提供了一种神经网络模型的使用方法及装置、训练方法及装置、计算设备、存储介质和芯片,在下面的实施例中逐一进行详细说明。

首先,对本申请实施例的方法所应用的神经网络模型进行说明。

参见图1,本申请实施例的神经网络模型包括第一模型和第二模型。

其中,第一模型包括第一编码层和第一解码层,第二模型包括第二编码层和第二解码层。

第一编码层接收输入的待处理对象进行编码,生成第一编码向量,然后将第一编码向量输入至第一解码层,得到第一解码向量。

第二编码层接收输入的待处理对象进行编码,生成第二编码向量,然后将第二编码向量输入至第二解码层,得到第二解码向量,然后根据第二解码向量得到处理结果。

第一模型和第二模型可以为多种,例如transformer模型、rnn模型、lstm模型等。为了便于理解,本实施例的下述内容以第一模型和第二模型为transformer模型为例进行示意性的说明。

第一模型的架构图如图2a所示。第一模型的第一编码层包括第一编码嵌入层和第一编码堆栈层组,第一编码堆栈层组包括至少一个第一编码堆栈层。图2a中,第一编码堆栈层组包括6个第一编码堆栈层。

第一模型的第一解码层包括第一解码嵌入层和第一解码堆栈层组,第一解码堆栈层组包括至少一个第一解码堆栈层。图2a中,第一解码堆栈层组包括6个第一解码堆栈层。

第二模型的架构图如图2b所示。第二模型的第二编码层包括第二编码嵌入层和第二编码堆栈层组,第二编码堆栈层组包括至少一个第二编码堆栈层。图2b中,第二编码堆栈层组包括6个第二编码堆栈层。

第二模型的第二解码层包括第二解码嵌入层和第二解码堆栈层组,第二解码堆栈层组包括至少一个第二解码堆栈层。图2b中,第二解码堆栈层组包括6个第二解码堆栈层。

本申请一实施例公开了一种神经网络模型的使用方法,参见图3和图4,包括步骤402~406:

402、将待处理对象分别输入至第一模型的第一编码层和第二模型的第二编码层,得到第一编码向量和第二编码向量。

具体地,参见图5,将待处理对象输入至第一模型的第一编码层,得到第一编码向量,包括:

502、将待处理对象输入至第一模型的第一编码嵌入层,生成第一预编码向量。

以待处理对象为英文语句为例,英文语句包括单词a和b,每个单词可以用对应的第一预编码向量表示,例如单词a对应的第二预编码向量为[0.10.6-0.5],单词b对应的第二预编码向量为[-0.20.90.7](此处的数值只用于示意)。

504、将第一预编码向量输入至第一编码堆栈层组,得到第一编码向量。

具体地,以第一编码堆栈层组包括n个第一编码堆栈层为例,其中,n为大于等于1的正整数,步骤504包括下述步骤s5042~s5048:

s5042、将所述第一预编码向量输入至第1个第一编码堆栈层,得到第1个所述第一编码堆栈层输出的编码向量。

s5044、将第i-1个第一编码堆栈层输出的编码向量输入至第i个第一编码堆栈层,得到第i个所述第一编码堆栈层输出的编码向量,其中2≤i≤n。

s5046、将i自增1,判断自增1后的i是否大于n,若是,则执行步骤s5048,若否,继续执行步骤s5044。

s5048、根据n个第一编码堆栈层输出的编码向量,得到第一编码向量。

可选地,根据n个第一编码堆栈层输出的编码向量得到第一编码向量的方式有很多,例如将第n个第一编码堆栈层输出的编码向量作为第一编码向量;还可以将n个第一编码堆栈层输出的编码向量分别乘以权重系数再相加,得到第一编码向量。

需要解释的是,对于顺次连接的多个第一编码堆栈层,位置越靠前,即越接近起始的第一编码堆栈层,其第一层编码向量则包含更多的语义信息;位置越靠后,即越接近最后的第一编码堆栈层,其第一层编码向量则包含更多的语法信息。通过将多个第一编码堆栈层对应输出的编码向量生成第一编码向量,一方面可以在后续的解码过程中更加合理地利用语义和语法的信息,另一方面可以通过第一层编码向量的信息融合,增强解码层的解码能力。

具体地,参见图6,将待处理对象输入至第二模型的第二编码层,得到第二编码向量,包括:

602、将待处理对象输入至第二模型的第二嵌入层,生成第二预编码向量。

以待处理对象包括英文单词c、d的英文单词序列为例,通过将待处理对象输入第二嵌入层,最后得到:单词c对应的第二预编码向量为[0.10.8-0.2],单词d对应的第二预编码向量为[-0.20.20.1](此处的数值只用于示意)。

604、将所述第二预编码向量输入所述第二编码堆栈层组,得到所述第二编码向量。

具体地,以第二编码堆栈层组包括m个第二编码堆栈层为例,其中,m为大于等于1的正整数,步骤604包括下述步骤s6042~s6048:

s6042、将所述第二预编码向量输入至第1个第二编码堆栈层,得到第1个所述第二编码堆栈层输出的编码向量。

s6044、将第j-1个第二编码堆栈层输出的编码向量输入至第j个第二编码堆栈层,得到第j个所述第二编码堆栈层输出的编码向量,其中2≤j≤m。

s6046、将j自增1,判断自增1后的j是否大于m,若是,则执行步骤s6048,若否,继续执行步骤s6044。

s6048、根据m个第二编码堆栈层输出的编码向量,得到第二编码向量。

可选地,根据m个第二编码堆栈层输出的编码向量得到第二编码向量的方式有很多,例如将第m个第二编码堆栈层输出的编码向量作为第二编码向量;还可以将m个第二编码堆栈层输出的编码向量分别乘以权重系数再相加,得到第二编码向量。

404、将第一编码向量输入至第一模型的第一解码层得到第一解码向量,并根据第一解码向量得到对应的第一解码单元。

对于第1个第一解码向量,步骤404包括:

s4042、将初始参考翻译单元输入至第一模型的第一解码嵌入层,生成初始参考翻译单元对应的第一预解码向量;

s4044、将第一编码向量和初始参考翻译单元对应的第一预解码向量输入至所述第一解码堆栈层组,得到第1个待处理单元对应的第一解码向量,根据第1个待处理单元对应的第一解码向量得到第1个第一解码单元。

对于除去第1个的其他第一解码向量,以待处理对象包括y个待处理单元为例,每个待处理单元具有对应的第一解码单元,步骤404包括:

s4046、将第x个第一解码单元输入至第一模型的第一解码嵌入层,生成第x个第一解码单元对应的第一预解码向量,其中,1≤x≤y-1;

s4048、将第一编码向量和第x个第一解码单元对应的第一预解码向量输入所述第一解码堆栈层组,得到第x+1个待处理单元对应的第一解码向量,根据第x+1个待处理单元对应的第一解码向量得到第x+1个第一解码单元。

由上可见,对于第1个第一解码向量和除去第1个的其他第一解码向量,生成方法并不完全相同:

对于第1个第一解码向量的生成过程,需要将初始参考翻译单元连同第一编码向量输入至第一模型的第一解码层进行解码,得到第1个第一解码单元对应的第一解码向量;

对于除去第1个的其他第一解码向量的生成过程,无需再输入初始参考翻译单元,需要将第x个第一解码单元作为参考翻译单元连同第一编码向量输入至第一模型的第一解码层进行解码,得到第x+1个第一解码单元对应的第一解码向量。

其中,初始参考翻译单元为设定的初始值。

以待处理对象“我爱吃米”为例,需要将初始参考翻译单元连同第一编码向量输入至第1个第一解码单元,得到“我”对应的“i”,然后将第1个第一解码单元“i”连同第一编码向量输入至第一模型,得到第2个第一解码单元“love”;然后将第2个第一解码单元“love”连同第一编码向量输入至第一模型,得到第3个第一解码单元“eat”;然后将第3个第一解码单元“eat”连同第一编码向量输入至第一模型,得到第3个第一解码单元“rice”。

进一步地,以第一解码堆栈层组包括p个第一解码堆栈层为例,步骤s4044包括下述步骤s442~s448:

s442、将第一编码向量和初始参考翻译单元对应的第一预解码向量输入第1个第一解码堆栈层,得到第1个第一解码堆栈层输出的解码向量;

s444、将第一编码向量和第q-1个第一解码堆栈层输出的解码向量输入第q个第一解码堆栈层,得到第q个第一解码堆栈层输出的解码向量,其中,2≤q≤p;

s446、将q自增1,判断自增1后的q是否大于p,若是,则执行步骤s448,若否,继续执行步骤s444;

s448、将最后一个第一解码堆栈层输出的解码向量作为第1个待处理单元对应的第一解码向量。

另外,第一解码层还包括:线性层(linear)和归一化层(softmax),在得到第1个待处理单元对应的第一解码向量后,将第1个待处理单元对应的第一解码向量经由线性层聚合,然后经过归一化层进行归一化处理,得到第1个第一解码单元。

进一步地,以第一解码堆栈层组包括p个第一解码堆栈层为例,步骤s4048包括下述步骤s482~s488:

s482、将第一编码向量和第x个第一解码单元对应的第一预解码向量输入第1个第一解码堆栈层,得到第1个第一解码堆栈层输出的解码向量;

s484、将第一编码向量和第q-1个第一解码堆栈层输出的解码向量输入第q个第一解码堆栈层,得到第q个第一解码堆栈层输出的解码向量,其中,2≤q≤p;

s486、将q自增1,判断自增1后的q是否大于p,若是,则执行步骤s488,若否,继续执行步骤s484;

s488、将最后一个第一解码堆栈层输出的解码向量作为第x+1个待处理单元对应的第一解码向量。

另外,第一解码层还包括:线性层(linear)和归一化层(softmax),在得到第x+1个待处理单元对应的第一解码向量后,将第x+1个待处理单元对应的第一解码向量经由线性层聚合,然后经过归一化层进行归一化处理,得到第x+1个第一解码单元。

406、将第二编码向量和第一解码单元输入至第二模型的第二解码层,得到第二解码向量,并根据第二解码向量得到处理结果。

对于第1个第二解码向量,步骤406包括下述步骤s4062~s4064:

s4062、将第1个第一解码单元输入至第二模型的第二解码嵌入层,生成第1个第一解码单元对应的第二预解码向量;

s4064、将第二编码向量和第1个第一解码单元对应的第二预解码向量输入至所述第二解码堆栈层组,得到第1个待处理单元对应的第二解码向量。

对于除去第1个的其他第二解码向量,以待处理对象包括y个待处理单元为例,每个待处理单元具有对应的第一解码单元,步骤406包括下述步骤s4066~s4068:

s4066、将第x+1个第一解码单元输入至第二模型的第二解码嵌入层,生成第x+1个第一解码单元对应的第二预解码向量,其中,1≤x≤y-1。

s4068、将第二编码向量和第x+1个第一解码单元对应的第二预解码向量输入所述第二解码堆栈层组,得到第x+1个待处理单元对应的第二解码向量。

由上述步骤s4062~s4068可见,对于第1个第二解码向量和除去第1个的其他第二解码向量,生成方法基本相同:均是将第二编码向量和第x个第一解码单元输入至第二模型,生成第x个第二解码向量。

由上可见,第二模型的第二解码向量和第一模型的第一解码向量的生成过程不同:第一模型在翻译的过程中,使用自身的第一解码单元作为参考翻译单元输入至第一解码层进行解码;第二模型在翻译的过程中,使用第一模型的第一解码单元作为参考翻译单元输入第二解码层进行解码,从而在第二模型的翻译过程中利用了第一模型对待处理对象的翻译结果,有效地结合不同模型的优点。

进一步地,以第二解码堆栈层组包括a个第二解码堆栈层为例,步骤s4064包括下述步骤s642~s648:

s642、将第二编码向量以及第二预解码向量输入第1个第二解码堆栈层,得到第1个第二解码堆栈层输出的解码向量;

s644、将第二编码向量和第b-1个第二解码堆栈层输出的解码向量输入第b个第二解码堆栈层,得到第b个第二解码堆栈层输出的解码向量,其中,2≤b≤a;

s646、将b自增1,判断自增1后的b是否大于a,若是,则执行步骤s648,若否,继续执行步骤s644;

s648、将最后一个第二解码堆栈层输出的解码向量作为第1个待处理单元对应的第二解码向量。

进一步地,以第二解码堆栈层组包括a个第二解码堆栈层为例,步骤s4068包括下述步骤s682~s688:

s682、将第二编码向量以及第x+1个第一解码单元对应的第二预解码向量输入第1个第二解码堆栈层,得到第1个第二解码堆栈层输出的解码向量;

s684、将第二编码向量和第b-1个第二解码堆栈层输出的解码向量输入第b个第二解码堆栈层,得到第b个第二解码堆栈层输出的解码向量,其中,2≤b≤a;

s686、将b自增1,判断自增1后的b是否大于a,若是,则执行步骤s688,若否,继续执行步骤s684;

s688、将最后一个第二解码堆栈层输出的解码向量作为第x+1个待处理单元对应的第二解码向量。

在得到每个待处理单元对应的第二解码向量后,还要进一步根据第二解码向量得到处理结果,包括:根据每个待处理单元对应的第二解码向量得到对应的第二解码单元,并根据y个第二解码单元生成处理结果。

以待处理对象“我爱中国”为例,得到的第二解码单元包括“i”“love”“china”,然后根据“i”“love”“china”生成处理结果“ilovechina”。

本申请提供的神经网络模型的使用方法,通过将待处理对象分别输入至第一模型和第二模型,得到第一编码向量和第二编码向量;将第一编码向量输入至第一模型得到第一解码向量,并根据第一解码向量得到对应的第一解码单元;将第二编码向量和第一解码单元输入至第二模型得到第二解码向量,并根据第二解码向量得到处理结果,从而在第二模型的使用过程中利用了第一模型对待处理对象的处理结果,有效地结合不同神经网络模型的优点,最终提升模型处理的质量。

为了便于理解本实施例的技术方案,下面结合图7,以一具体翻译系统为例对本实施例的方法进行示意性的说明。

参见图7所示的翻译系统,包括第一模型和第二模型。其中,第一模型包括第一编码层和第一解码层,第二模型包括第二编码层和第二解码层。以待处理语句“我要吃饭”为例,本实施例的翻译方法包括:

1)将待处理对象分别输入至第一模型的第一编码层和第二模型的第二编码层,得到第一编码向量和第二编码向量。

2)将第一编码向量和初始参考翻译单元输入至第一模型的第一解码层得到第1个第一解码向量,并根据第一解码向量得到第1个第一解码单元。然后将第1个第一解码单元和第二编码向量输入至第二模型的第二解码层得到第1个第二解码向量,根据第1个第二解码向量得到第1个第二解码单元。

3)将第一编码向量和第1个第一解码单元输入至第一模型的第一解码层得到第2个第一解码向量,并根据第2个第一解码向量得到第2个第一解码单元。然后将第2个第一解码单元和第二编码向量输入至第二模型的第二解码层得到第2个第二解码向量,根据第2个第二解码向量得到第2个第二解码单元。

4)将第一编码向量和第2个第一解码单元输入至第一模型的第一解码层得到第3个第一解码向量,并根据第3个第一解码向量得到第3个第一解码单元。然后将第3个第一解码单元和第二编码向量输入至第二模型的第二解码层得到第3个第二解码向量,根据第3个第二解码向量得到第3个第二解码单元。

5)将第一编码向量和第3个第一解码单元输入至第一模型的第一解码层得到第4个第一解码向量,并根据第4个第一解码向量得到第4个第一解码单元。然后将第4个第一解码单元和第二编码向量输入至第二模型的第二解码层得到第4个第二解码向量,根据第4个第二解码向量得到第4个第二解码单元。

6)根据第1~4个第二解码单元,得到翻译语句。

本实施例中,得到的第二解码单元依次为“i”“want”“eat”“rice”。根据4个第二解码单元,得到的翻译语句为“iwanteatrice”。

可以看出,每个第二解码单元的生成过程,均需要将对应的第一解码单元输入至第二解码层,从而在第二模型的翻译过程中利用了第一模型对待处理对象的翻译结果,有效地结合不同模型的优点。有助于提高第二模型的翻译精度。

上述实施例为对本申请的神经网络模型的使用方法的示意性说明。本申请另一实施例公开了一种神经网络模型的训练方法,所述神经网络模型包括编码层和解码层。

参见图8,所述训练方法包括:

802、将训练集中的第一对象输入至神经网络模型的编码层,得到编码向量。

本实施例中,训练集中包括一一对应的第一对象和第二对象。

以翻译语料为例,目标语料中包括多个第一语句和多个第二语句,第一语句和第二语句一一对应。例如,第一语句为“我爱中国”,第二语句为“ilovechina”;第一语句为“我吃苹果”,第二语句为“ieatapple”。

具体地,神经网络模型的编码层包括编码嵌入层和编码堆栈层组,步骤802包括:

s8022、将第一对象输入至神经网络模型的编码嵌入层,生成预编码向量。

s8024、将所述预编码向量输入编码堆栈层组,得到编码向量。

其中,对于步骤s8024中的编码向量的生成过程,前述实施例已经进行详细的介绍,在此便不再详述。

804、将编码向量和训练集中与第一对象对应的第二对象输入至神经网络模型的解码层,得到解码向量。

具体地,神经网络模型的解码层包括解码嵌入层和解码堆栈层组,步骤804包括:

s8042、将第二对象输入至神经网络模型的解码嵌入层,生成对应的预解码向量;

s8044、将编码向量和第二对象对应的预解码向量输入解码堆栈层组,得到第一对象对应的解码向量。

其中,对于步骤s8044中的解码向量的生成过程,前述实施例已经进行详细的介绍,在此便不再详述。

806、根据解码向量得到解码向量的误差,并根据误差判断是否达到训练停止条件;若是,停止训练,若否,继续执行步骤802。

所述解码向量的误差通过以下方法得到:将所述解码向量与预设的向量验证集进行对比,得到所述解码向量的误差。

所述训练停止条件包括:误差的变化率小于稳定阈值。

需要说明的是,本实施例中,得到的解码向量并不直接与原始的第二语句对应的向量进行对比计算误差,而是引入了一个向量验证集。如果将解码向量直接与原始的第二语句对应的向量进行对比计算误差,会导致过拟合,导致翻译模型在其他的语句翻译中的表现变差,翻译效果反而适得其反。

稳定阈值可以根据实际需求而设定,例如设置为1%。这样,误差趋于稳定,就可以认为模型训练完毕了。

本实施例中,神经网络模型可以为第一模型,第一模型包括第一编码层和第一解码层;神经网络模型也可以为第二模型,第二模型包括第二编码层和第二解码层。

本申请提供的神经网络模型的训练方法,将训练集中的第一对象输入至神经网络模型的编码层,得到编码向量;将编码向量和训练集中与第一对象对应的第二对象输入至神经网络模型的解码层,得到解码向量;根据解码向量得到解码向量的误差,并根据解码向量的误差继续训练神经网络模型,直至达到训练停止条件,从而可以得到具有良好性能的神经网络模型。

本申请一实施例还公开了一种神经网络模型的使用装置,参见图9,神经网络模型包括第一模型和第二模型,所述第一模型包括第一编码层和第一解码层,所述第二模型包括第二编码层和第二解码层;

所述装置包括:

编码模块902,被配置为将待处理对象分别输入至第一模型的第一编码层和第二模型的第二编码层,得到第一编码向量和第二编码向量;

第一解码模块904,被配置为将第一编码向量输入至第一模型的第一解码层得到第一解码向量,并根据第一解码向量得到对应的第一解码单元;

第二解码模块906,被配置为将第二编码向量和第一解码单元输入至第二模型的第二解码层,得到第二解码向量,并根据第二解码向量得到处理结果。

可选地,第一模型的第一编码层包括第一编码嵌入层和第一编码堆栈层组;所述编码模块902还包括:

第一编码单元9022,被配置为将待处理对象输入至第一模型的第一编码嵌入层,生成第一预编码向量;将第一预编码向量输入至第一编码堆栈层组,得到第一编码向量。

可选地,所述第一编码堆栈层组包括n个第一编码堆栈层,其中,n为大于等于1的正整数;第一编码单元9022具体被配置为:

s102、将所述第一预编码向量输入至至第1个第一编码堆栈层,得到第1个所述第一编码堆栈层输出的编码向量;

s104、将第i-1个第一编码堆栈层输出的编码向量输入至第i个第一编码堆栈层,得到第i个所述第一编码堆栈层输出的编码向量,其中2≤i≤n;

s106、将i自增1,判断自增1后的i是否大于n,若是,则执行步骤s108,若否,继续执行步骤s104;

s108、根据n个第一编码堆栈层输出的编码向量,得到所述第一编码向量。

可选地,所述第二模型的第二编码层包括第二编码嵌入层和第二编码堆栈层组;所述编码模块902还包括:

第二编码单元9024,被配置为将待处理对象输入至第二模型的第二嵌入层,生成第二预编码向量;将所述第二预编码向量输入至所述第二编码堆栈层组,得到所述第二编码向量。

可选地,所述第二编码堆栈层组包括m个第二编码堆栈层,其中,m为大于等于1的正整数;所述第二编码单元9024具体被配置为:

s202、将所述第二预编码向量输入至第1个第二编码堆栈层,得到第1个所述第二编码堆栈层输出的编码向量;

s204、将第j-1个第二编码堆栈层输出的编码向量输入至第j个第二编码堆栈层,得到第j个所述第二编码堆栈层输出的编码向量,其中2≤j≤m;

s206、将j自增1,判断自增1后的j是否大于m,若是,则执行步骤s208,若否,继续执行步骤s204;

s208、根据m个第二编码堆栈层输出的编码向量,得到所述第二编码向量。

可选地,第一模型的第一解码层包括第一解码嵌入层和第一解码堆栈层组,所述第二模型的第二解码层包括第二解码嵌入层和第二解码堆栈层组;

第一解码模块904具体被配置为:

s302、将初始参考翻译单元输入至第一模型的第一解码嵌入层,生成初始参考翻译单元对应的第一预解码向量;

s304、将第一编码向量和初始参考翻译单元对应的第一预解码向量输入至所述第一解码堆栈层组,得到第1个待处理单元对应的第一解码向量,根据第1个待处理单元对应的第一解码向量得到第1个第一解码单元;

第二解码模块906具体被配置为:

s306、将第1个第一解码单元输入至第二模型的第二解码嵌入层,生成第1个第一解码单元对应的第二预解码向量;

s308、将第二编码向量和第1个第一解码单元对应的第二预解码向量输入至所述第二解码堆栈层组,得到第1个待处理单元对应的第二解码向量。

可选地,第一解码堆栈层组包括p个第一解码堆栈层;第一解码模块904具体被配置为:

s3042、将第一编码向量和初始参考翻译单元对应的第一预解码向量输入至第1个第一解码堆栈层,得到第1个第一解码堆栈层输出的解码向量;

s3044、将第一编码向量和第q-1个第一解码堆栈层输出的解码向量输入至第q个第一解码堆栈层,得到第q个第一解码堆栈层输出的解码向量,其中,2≤q≤p;

s3046、将q自增1,判断自增1后的q是否大于p,若是,则执行步骤s3048,若否,继续执行步骤s3044;

s3048、将最后一个第一解码堆栈层输出的解码向量作为第1个待处理单元对应的第一解码向量。

可选地,第二解码堆栈层组包括a个第二解码堆栈层;第二解码模块906具体被配置为:

s3082、将第二编码向量以及第二预解码向量输入至第1个第二解码堆栈层,得到第1个第二解码堆栈层输出的解码向量;

s3084、将第二编码向量和第b-1个第二解码堆栈层输出的解码向量输入至第b个第二解码堆栈层,得到第b个第二解码堆栈层输出的解码向量,其中,2≤b≤a;

s3086、将b自增1,判断自增1后的b是否大于a,若是,则执行步骤s3088,若否,继续执行步骤s3084;

s3088、将最后一个第二解码堆栈层输出的解码向量作为第1个待处理单元对应的第二解码向量。

可选地,第一模型的第一解码层包括第一解码嵌入层和第一解码堆栈层组,所述第二模型的第二解码层包括第二解码嵌入层和第二解码堆栈层组;待处理对象包括y个待处理单元,每个待处理单元具有对应的第一解码单元;

第一解码模块904具体被配置为:

s402、将第x个第一解码单元输入至第一模型的第一解码嵌入层,生成第x个第一解码单元对应的第一预解码向量,其中,1≤x≤y-1;

s404、将第一编码向量和第x个第一解码单元对应的第一预解码向量输入至所述第一解码堆栈层组,得到第x+1个待处理单元对应的第一解码向量,根据第x+1个待处理单元对应的第一解码向量得到第x+1个第一解码单元;

第二解码模块906具体被配置为:

s406、将第x+1个第一解码单元输入至第二模型的第二解码嵌入层,生成第x+1个第一解码单元对应的第二预解码向量;

s408、将第二编码向量和第x+1个第一解码单元对应的第二预解码向量输入至所述第二解码堆栈层组,得到第x+1个待处理单元对应的第二解码向量。

可选地,第一解码堆栈层组包括p个第一解码堆栈层;第一解码模块904具体被配置为:

s4042、将第一编码向量和第x个第一解码单元对应的第一预解码向量输入至第1个第一解码堆栈层,得到第1个第一解码堆栈层输出的解码向量;

s4044、将第一编码向量和第q-1个第一解码堆栈层输出的解码向量输入至第q个第一解码堆栈层,得到第q个第一解码堆栈层输出的解码向量,其中,2≤q≤p;

s4046、将q自增1,判断自增1后的q是否大于p,若是,则执行步骤s4048,若否,继续执行步骤s4044;

s4048、将最后一个第一解码堆栈层输出的解码向量作为第x+1个待处理单元对应的第一解码向量。

可选地,第二解码堆栈层组包括a个第二解码堆栈层;第二解码模块906具体被配置为:

s4082、将第二编码向量以及第x+1个第一解码单元对应的第二预解码向量输入至第1个第二解码堆栈层,得到第1个第二解码堆栈层输出的解码向量;

s4084、将第二编码向量和第b-1个第二解码堆栈层输出的解码向量输入至第b个第二解码堆栈层,得到第b个第二解码堆栈层输出的解码向量,其中,2≤b≤a;

s4086、将b自增1,判断自增1后的b是否大于a,若是,则执行步骤s4088,若否,继续执行步骤s4084;

s4088、将最后一个第二解码堆栈层输出的解码向量作为第x+1个待处理单元对应的第二解码向量。

可选地,第二解码模块906具体被配置为:根据每个待处理单元对应的第二解码向量得到对应的第二解码单元,并根据y个第二解码单元生成处理结果。

本申请提供的神经网络模型的使用装置,通过将待处理对象分别输入至第一模型和第二模型,得到第一编码向量和第二编码向量;将第一编码向量输入至第一模型得到第一解码向量,并根据第一解码向量得到对应的第一解码单元;将第二编码向量和第一解码单元输入至第二模型得到第二解码向量,并根据第二解码向量得到待处理对象对应的处理结果,从而在第二模型的使用过程中利用了第一模型对待处理对象的处理结果,有效地结合不同神经网络模型的优点,最终提升模型处理的质量。

上述为本实施例的一种神经网络模型的使用装置的示意性方案。需要说明的是,该使用装置的技术方案与上述的使用方法的技术方案属于同一构思,使用装置的技术方案未详细描述的细节内容,均可以参见上述使用方法的技术方案的描述。

本申请一实施例还公开了一种神经网络模型的训练装置,参见图10,神经网络模型包括编码层和解码层;训练装置包括:

编码训练模块1002,被配置为将训练集中的第一对象输入至神经网络模型的编码层,得到编码向量;

解码训练模块1004,被配置为将编码向量和训练集中与第一对象对应的第二对象输入至神经网络模型的解码层,得到解码向量;

误差调整模块1006,被配置为根据解码向量得到解码向量的误差,根据误差判断是否达到训练停止条件,若是,停止训练,若否,继续执行编码训练模块1002。

其中,神经网络模型包括第一模型,第一模型的编码层包括第一编码层,第一模型的解码层包括第一解码层;神经网络模型包括第二模型,第二模型的编码层包括第二编码层,第二模型的解码层包括第二解码层。

其中,解码向量的误差通过以下方法得到:将所述解码向量与预设的向量验证集进行对比,得到所述解码向量的误差。

上述为本实施例的一种神经网络模型的训练装置的示意性方案。需要说明的是,该训练装置的技术方案与上述的训练方法的技术方案属于同一构思,训练装置的技术方案未详细描述的细节内容,均可以参见上述训练方法的技术方案的描述。

本申请一实施例还提供一种计算设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机指令,所述处理器执行所述指令时实现如上所述的神经网络模型的训练方法或使用方法的步骤。

图11是示出了根据本说明书一实施例的计算设备100的结构框图。该计算设备100的部件包括但不限于存储器110和处理器120。处理器120与存储器110通过总线130相连接,数据库150用于保存数据。

计算设备100还包括接入设备140,接入设备140使得计算设备100能够经由一个或多个网络160通信。这些网络的示例包括公用交换电话网(pstn)、局域网(lan)、广域网(wan)、个域网(pan)或诸如因特网的通信网络的组合。接入设备140可以包括有线或无线的任何类型的网络接口(例如,网络接口卡(nic))中的一个或多个,诸如ieee802.11无线局域网(wlan)无线接口、全球微波互联接入(wi-max)接口、以太网接口、通用串行总线(usb)接口、蜂窝网络接口、蓝牙接口、近场通信(nfc)接口,等等。

在本说明书的一个实施例中,计算设备100的上述部件以及图11中未示出的其他部件也可以彼此相连接,例如通过总线。应当理解,图11所示的计算设备结构框图仅仅是出于示例的目的,而不是对本说明书范围的限制。本领域技术人员可以根据需要,增添或替换其他部件。

计算设备100可以是任何类型的静止或移动计算设备,包括移动计算机或移动计算设备(例如,平板计算机、个人数字助理、膝上型计算机、笔记本计算机、上网本等)、移动电话(例如,智能手机)、可佩戴的计算设备(例如,智能手表、智能眼镜等)或其他类型的移动设备,或者诸如台式计算机或pc的静止计算设备。计算设备100还可以是移动式或静止式的服务器。

本申请一实施例还提供一种计算机可读存储介质,其存储有计算机指令,该指令被处理器执行时实现如前所述神经网络模型的使用方法或训练方法的步骤。

上述为本实施例的一种计算机可读存储介质的示意性方案。需要说明的是,该存储介质的技术方案与上述的神经网络模型的训练方法或使用方法的技术方案属于同一构思,存储介质的技术方案未详细描述的细节内容,均可以参见上述神经网络模型的训练方法或使用方法的技术方案的描述。

所述计算机指令包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。

本申请一实施例还提供一种芯片,其存储有计算机指令,该指令被芯片执行时实现如前所述神经网络模型的使用方法或训练方法的步骤。

需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本申请所必须的。

在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。

以上公开的本申请优选实施例只是用于帮助阐述本申请。可选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本说明书的内容,可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本申请的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本申请。本申请仅受权利要求书及其全部范围和等效物的限制。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1