模式识别装置以及模式识别方法与流程

文档序号:14504665阅读:454来源:国知局

本申请以日本专利申请2016-223333(申请日:2016/11/16)为基础,从该申请享受优先的利益。本申请通过参照该申请而包括该申请的全部内容。

本发明的实施方式涉及模式识别装置以及模式识别方法。



背景技术:

递归型神经网络(rnn:recurrentneuralnetwork)一般包括输入层、输出层以及一个或者多个中间层(rnn层)。在存在多个rnn层的情况下,以使下位层的输出为该层的输入、使该层的输出为上位层的输入的方式,按照从最下位层到最上位层的顺序排列多个rnn层。在此,最下位的rnn层的输入是输入层的输出,最上位的rnn层的输出是输出层的输入。另外,各rnn层包括一个或者多个部件。

递归型神经网络在被输入特征矢量序列时,在各rnn层中,针对输入的每个阶段,除了使用来自该阶段的下位层的输入以外,还使用包括之前阶段的该rnn层的输出的递归输入来计算该阶段的输出。因此,能够实现考虑了序列的模式的模式识别,例如,在声音辨别或图像辨别、字符辨别、自然语言处理等各种领域中被用作模式识别装置。

但是,在递归型神经网络中,在作为中间层的rnn层中,除了输入以外递归输入也被用于输出的计算,所以与在中间层中仅根据输入计算输出的并非递归型的神经网络相比,计算量增加。因此,研究削减递归型神经网络中的计算量,但在以往的方法中难以高效地削减递归型神经网络中的计算量,要求改善。



技术实现要素:

本发明想要解决的课题在于提供一种能够高效地削减计算量的模式识别装置、模式识别方法以及程序。

实施方式提供一种模式识别装置,在输入层与输出层之间,具有一层以上的作为构成递归型神经网络的中间层的rnn层,从所述输出层输出与输入到所述输入层的特征矢量序列对应的模式序列,其中,所述rnn层包括输入变换部和rnn处理部。所述输入层针对每个阶段逐个地依次输出构成所述特征矢量序列的特征矢量。所述rnn层的所述输入变换部针对每个阶段进行针对输入矢量和递归输入矢量的变换,计算比所述输入矢量的维数与所述递归输入矢量的维数之和小的维数的变换矢量并输出的步骤,其中,该输入矢量由从所述输入层输出的特征矢量或者下位的所述rnn层所包括的所述rnn处理部的输出构成,该递归输入矢量由该rnn层所包括的所述rnn处理部的之前阶段的输出构成。所述rnn层的所述rnn处理部针对每个阶段,根据由该rnn层所包括的所述输入变换部计算出的所述变换矢量计算rnn输出矢量并输出。所述输出层根据由最上位的所述rnn层所包括的所述rnn处理部计算出的所述rnn输出矢量,计算所述模式序列并输出。

根据上述结构的模式识别装置,能够高效地削减计算量。

附图说明

图1是示出第1实施方式的模式识别装置的功能性的结构例的框图。

图2是示出有多个rnn层的情况的结构例的框图。

图3是示出第2实施方式的模式识别装置的功能性的结构例的框图。

图4是示出有多个lstm层的情况的结构例的框图。

图5是示出实施方式的模式识别装置的硬件结构例的框图。

(符号说明)

10:输入层;20:rnn层;21:输入变换部;22:rnn处理部;30:输出层;40:lstm层;41:输入变换部;42:lstm处理部。

具体实施方式

以下,参照附图,详细说明实施方式的模式识别装置以及模式识别方法。实施方式的模式识别装置是使用递归型神经网络的模式识别装置。也就是说,实施方式的模式识别装置在输入层与输出层之间具有一层以上的作为构成递归型神经网络的中间层的rnn层,从输出层输出与输入到输入层的特征矢量序列对应的模式序列。

rnn层针对输入的每个阶段,除了使用来自该阶段的下位层的输入以外,还使用包括之前阶段的该rnn层的输出的递归输入来计算该阶段的输出。因此,使用将rnn层作为中间层的递归型神经网络的模式识别装置能够进行考虑了序列的模式的模式识别。

另外,在作为递归型神经网络的一种的lstm(longshort-termmemory,长短期记忆网络)中,不使用通常的rnn层的部件,例如,使用具备控制输入的输入门、控制存储的遗忘门以及控制输出的输出门的被称为lstm块的记忆单元。在rnn层使用lstm的模式识别装置使用输入门、遗忘门以及输出门来控制输入、存储、以及输出,从而能够保持长期的存储,能够实现对使用通常的rnn层的模式识别装置来说困难的考虑了长期的序列的模式的模式识别。

但是,在递归型神经网络中,如上所述,除了输入以外递归输入也被用于计算输出,所以存在与仅根据输入计算输出的并非递归型的神经网络相比计算量增加的问题。特别是,在lstm中,在各门中使用输入和递归输入来计算门输出,所以存在计算量大幅增加的问题。

针对该问题,有如下手法:根据使用lstm的rnn层(以下将其特别称为“lstm层”)的输出,使用递归射影层(recurrentprojectionlayer)生成维数比该层的输出少的递归射影输出(recurrentprojectedoutput),将递归射影输出用作下一阶段的该lstm层的递归输入以及该阶段的上位层的输入,从而削减计算量。

但是,在该手法中,需要预先确定各lstm层的递归射影输出的维度,所以无法使各lstm层中的输入和递归输入的维数的分配自动地最佳化,难以实现高效的计算量削减。另外,在该手法中,还存在无法削减最下位的lstm层的输入的维数的问题。作为削减输入到rnn层的特征矢量的维度的方法,还有使用深度自动编码器(deepautoencoder)的方法,但即使在假设使用该方法来削减lstm的输入的维数和由递归射影输出构成的递归输入的维数的情况下,也需要预先确定这些维度削减后的输入的维数和递归输入的维数,所以仍无法使输入和递归输入的维数的分配自动地最佳化,难以实现高效的计算量削减。

因此,在实施方式的模式识别装置中,设为构成递归型神经网络的中间层的rnn层包括输入变换部和rnn处理部的结构,输入变换部进行针对rnn层的输入和递归输入的变换而生成变换矢量,rnn处理部使用该变换矢量来计算rnn输出矢量。也就是说,在实施方式的模式识别装置中,rnn层的输入变换部针对每个阶段进行针对输入矢量和递归输入矢量的变换,计算比输入矢量的维数与递归输入矢量的维数之和小的维数的变换矢量并输出,其中,该输入矢量由从输入层输出的特征矢量或者包含于下位的rnn层的rnn处理部的输出构成,该递归输入矢量由包含于该rnn层的rnn处理部的之前阶段的输出构成。然后,rnn层的rnn处理部针对每个阶段,根据由包含于该rnn层的输入变换部计算出的变换矢量来计算rnn输出矢量并输出。

这样,在实施方式的模式识别装置中做成计算利用针对rnn层的输入和递归输入的变换削减了维数的变换矢量,并根据该变换矢量计算rnn输出矢量并输出的结构,所以能够使rnn层的输入和递归输入的维度削减后的维数的分配自动地最佳化,能够高效地削减计算量。以下,分成在中间层中使用通常的rnn层的情况和使用lstm层的情况,进一步详细说明实施方式的模式识别装置的具体例。

(第1实施方式)

首先,作为第1实施方式说明在中间层中使用通常的rnn层的情况的例子。图1是示出第1实施方式的模式识别装置的功能性的结构例的框图。如图1所示,本实施方式的模式识别装置是如下结构:具备输入层10、rnn层20以及输出层30,rnn层20包括输入变换部21和rnn处理部22。

输入层10受理特征矢量序列,针对序列的每个阶段逐个地依次输出构成特征矢量序列的特征矢量。

rnn层20的输入变换部21针对每个阶段进行针对由从输入层10输出的特征矢量构成的输入矢量和由作为rnn处理部22的之前阶段的输出的rnn输出矢量构成的递归输入矢量的变换,计算比输入矢量的维数与递归输入矢量的维数之和小的维数的变换矢量并输出。

例如,输入变换部21根据阶段t的输入矢量xt和递归输入矢量mt-1,通过下述式(1)计算阶段t的变换矢量vt。

【式1】

vt=wvx·xt+wvm·mt-1…(1)

其中,wvx是针对输入矢量xt的权重矩阵,wvm是针对递归输入矢量mt-1的权重矩阵。

在此,将输入矢量xt的维数设为n、将递归输入矢量mt-1的维数设为m、将变换矢量vt的维数设为i,考虑针对用于实现计算量的削减的变换矢量vt的维数i的制约条件。

在以往的一般的递归型神经网络的rnn层中使用n维的输入矢量xt和m维的递归输入矢量mt-1来计算m维的rnn输出矢量,所以其计算量能够表示为(n+m)×m。另一方面,在本实施方式的rnn层20中,首先,在输入变换部21中使用n维的输入矢量xt和m维的递归输入矢量mt-1来计算i维的变换矢量vt,之后,根据i维的变换矢量vt计算m维的rnn输出矢量,所以其计算量能够表示为(n+m)×i+i×m。因此,如果(n+m)×i+i×m<(n+m)×m,则可以说能够通过本实施方式削减计算量。

根据以上情况,变换矢量vt的维数i最好满足下述式(2)所示的条件。也就是说,输入变换部21最好计算满足下述式(2)所示的条件的变换矢量vt并输出。

【式2】

另外,在将阶段t的变换矢量vt中的仅根据输入矢量xt计算的分量设为vxt、将根据输入矢量xt和递归输入矢量mt-1计算的分量设为vct、将仅根据递归输入矢量mt-1计算的分量设为vmt时,输入变换21也可以如以下所述地计算变换矢量vt。

vt=[vxtt,vctt,vmtt]t

vxt=wvxi×xt

vct=wvxc×xt+wvmc×mt-1

vmt=wvmi×mt

其中,·t是矩阵的转置,wvxi、wvxc是针对输入矢量xt的权重矩阵,wvmc、wvmi是针对递归输入矢量mt-1的权重矩阵。

为方便起见,将这样的线性变换称为非完全连接(non-fullyconnectedlinartransformation)的线性变换。在使用非完全连接的线性变换的情况下,在将分量vxt的维数设为ix、将分量vct的维数设为ic、将分量vmt的维数设为im时,如果(ix+ic)×n+(im+ic)×m+i×m<(n+m)×m、(i-im)×n+(ic+im)×m+i×m<(n+m)×m、(i-im)×n+(i-ix)×m+i×m<(n+m)×m,则可以说能够削减计算量。

因此,在使用非完全连接的线性变换的情况下,输入变换部21最好计算满足下述式(3)所示的条件的变换矢量vt并输出。

【式3】

此外,在使用非完全连接的线性变换的情况下,有即使变换矢量vt的维数i为递归输入矢量mt-1的维数m以上(i≥m)也能够削减计算量的情况,但至少需要变换矢量vt的维数i小于输入矢量xt的维数n与递归输入矢量mt-1的维数m之和(i<n+m)。另外,在ic=i、ix=im=0的情况下,与上述式(1)等价。

以上说明的变换是线性变换,但由输入变换部21实施的变换未必一定是线性变换,也可以使用仿射变换或可最佳化的非线性变换等。例如,输入变换部21也可以根据阶段t的输入矢量xt和递归输入矢量mt-1,通过下述式(4)计算阶段t的变换矢量vt。

【式4】

vt=k(wvx·xt+wvm·mt-1+bv)…(4)

其中,k(·)是对每个矢量应用的sigmoid函数、tanh函数等非线性函数,wvx是针对输入矢量xt的权重矩阵,wvm是针对递归输入矢量mt-1的权重矩阵,bv是使变换矢量vt的维数为i时的i维的偏置矢量。

在通过上述式(4)的非线性变换计算变换矢量vt的情况下,针对变换矢量vt的维数i的制约条件也与通过上述式(1)的线性变换计算变换矢量vt的情况相同。也就是说,输入变换部21最好计算满足上述式(2)所示的条件的变换矢量vt并输出。

另外,在将阶段t的变换矢量vt中的仅根据输入矢量xt计算的分量设为vxt、将根据输入矢量xt和递归输入矢量mt-1计算的分量设为vct、将仅根据递归输入矢量mt-1计算的分量设为vmt时,输入变换21也可以如以下所述地计算变换矢量vt。

vt=[vxtt,vctt,vmtt]t

vxt=k(wvxi×xt+bvx)

vct=k(wvxc×xt+wvmc×mt-1+bvc)

vmt=k(wvmi×mt+bvm)

其中,·t是矩阵的转置,k(·)是对每个矢量应用的非线性函数,wvxi、wvxc是针对所述输入矢量xt的权重矩阵,wvmi、wvmc是针对所述递归输入矢量mt-1的权重矩阵,bvx是使所述变换矢量的分量vxt的维数为ix时的ix维的偏置矢量,bvc是使所述变换矢量的分量vct的维数为ic时的ic维的偏置矢量,bvm是使所述变换矢量的分量vmt的维数为im时的im维的偏置矢量。

为方便起见,将这样的非线性变换称为非完全连接的非线性变换。在使用非完全连接的非线性变换的情况下,输入变换部21最好与使用上述非完全连接的线性变换的情况同样地计算满足上述式(3)所示的条件的变换矢量vt并输出。

rnn层20的rnn处理部22针对每个阶段,根据由输入变换部21计算出的变换矢量,使用下述式(5)来计算rnn输出矢量。

【式5】

mt=σ(wmv.vt+bm)…(5)

其中,mt是阶段t的rnn输出矢量,vt是阶段t的变换矢量,wmv是针对变换矢量vt的权重矩阵,bm是偏置矢量,σ(·)是对矢量的每个要素应用的非线性函数。σ(·)一般使用sigmoid函数、tanh函数等,但也可以使用其它非线性的函数。

输出层30根据由rnn处理部22计算出的rnn输出矢量来计算模式序列。在模式序列是n等级识别问题中的n维得分矢量的序列的情况下,使用例如式(6)来计算阶段t的得分矢量yt。

【式6】

yt=wym.mt+by…(6)

其中,wym是用于计算得分矢量的权重矩阵,by是偏置矢量。

在此,模式序列未必一定是得分矢量的序列,也可以是后验概率矢量的序列或得分为最大的等级的索引的序列等。在模式序列是后验概率矢量的序列的情况下,根据例如得分矢量yt,使用下述式(7)来计算阶段t的后验概率矢量zt。

【式7】

zt=softmax(yt)…(7)

其中,softmax(·)是softmax函数,根据得分矢量yt的各要素yt(n),使用式(8)来计算后验概率矢量zt的各要素zt(n)。

【式8】

其中,j是得分矢量yt的维数。

另外,在模式序列是得分为最大的等级的索引的序列的情况下,例如,根据得分矢量yt的各要素yt(n),使用下述式(9)来计算阶段t的索引

【式9】

其中,argmaxn(yt(n))是求取得分矢量yt的各要素yt(n)中的具有最大值的要素的索引的函数。

在本实施方式的模式识别装置中,能够使用学习数据,通过例如下述的参考文献所示的手法等使为了rnn层20的输入变换部21计算变换矢量vt而使用的权重矩阵、即上述式(1)或者上述式(5)中的权重矩阵wvx、wvm最佳化。

<参考文献>p.j.werbos,“backpropagationthroughtime:whatitdoesandhowtodoit,”,proceedingsoftheieee,vol.78,no.10,pp.1550-1560,oct.1990.

在本实施方式的模式识别装置中,成为rnn层20的输入变换部21使用上述线性变换、非完全连接的线性变换、非线性变换、非完全连接的非线性变换中的任意变换来计算变换矢量vt的结构,所以能够使用学习数据自动地确定利用输入矢量xt和递归输入矢量mt-1中的哪个来提供大的权重,能够使针对变换矢量vt的输入矢量xt和递归输入矢量mt-1的维数的分配自动地最佳化。

在本实施方式中,在此之前叙述了rnn层20为一个的情况,但如图2所示,也可以在输入层10与输出层30之间有多个rnn层20(第1位rnn层20-1…第r位rnn层20-r)。如图2所示,在rnn层20的数量为r、按照从作为最下位层的第1位rnn层20-1到作为最上位层的第r位rnn层20-r的顺序排列成下位的rnn层20的输出成为上位的rnn层20的输入时,从输入层10输出的特征矢量成为第1位rnn层20-1的输入变换部21-1的输入矢量,从第1位rnn层20-1的rnn处理部22-1输出的rnn输出矢量成为作为其上位的第2位rnn层20-2的输入变换部21-2的输入矢量。

同样地,从第r位rnn层20-r(1≤r<r)的rnn处理部22-r输出的rnn输出矢量成为第(r+1)位rnn层20-(r+1)的输入变换部21-(r+1)的输入矢量,从最上位的第r位rnn层20-r的rnn处理部22-r输出的rnn输出矢量被输入到输出层30。在使用学习数据进行各rnn层20的输入变换部21中的变换的最佳化时,在各rnn层20中自动地确定输入矢量和递归输入矢量的维数的最佳的分配。

在这样具有多个rnn层20的结构的模式识别装置中,在rnn层20的输入变换部21使用上述式(1)所示的线性变换或者上述式(4)所示的非线性变换计算变换矢量的情况下,在将在第r位rnn层(1≤r≤r)20-r中计算的变换矢量vrt的维数的维数设为ir、将第r位rnn层20-r的输入矢量的维数设为nr、将第r位rnn层20-r的递归输入矢量的维数设为mr时,在满足下述式(10)的情况下,可以说能够削减计算量。

【式10】

因此,第r位rnn层20-r的变换矢量vrt的维数ir最好满足下述式(11)所示的条件。也就是说,输入变换部21最好是计算满足下述式(11)所示的条件的变换矢量vrt并输出。

【式11】

另外,在这样具有多个rnn层20的结构的模式识别装置中,在rnn层20的输入变换部21使用上述非完全连接的线性变换或者非完全连接的非线性变换计算变换矢量的情况下,在将在第r位rnn层(1≤r≤r)20-r中计算的变换矢量vrt的维数设为ir、将第r位rnn层20-r的输入矢量的维数设为nr、将递归输入矢量的维数设为mr、将在第r位rnn层20-r中计算的变换矢量vrt中的仅根据输入矢量计算的分量的维数设为irx、将根据输入矢量和递归输入矢量计算的分量的维数设为irc、将仅根据递归输入矢量计算的分量的维数设为irm时,在满足下述式(12)或者与其等价的下述式(13)的情况下,可以说能够削减计算量。

【式12】

【式13】

因此,第r位rnn层20-r的变换矢量vrt的维数ir最好是满足下述式(14)所示的条件。也就是说,输入变换部21最好计算满足下述式(14)所示的条件的变换矢量vrt并输出。

【式14】

此外,上述的模式识别装置的结构能够在不脱离本发明的要旨的范围内进行各种变形。例如,也可以在输入层10与rnn层20的输入变换部21之间追加任意的处理,将追加的处理的输出矢量作为输入变换部21的输入矢量的一部分或者全部。另外,也可以在rnn层20的rnn处理部22与输出层30之间追加任意的处理,将追加的处理的输出矢量作为输出层30的输入的一部分或者全部。进而,输出层30也可以将由rnn层20的rnn处理部22计算出的rnn输出矢量直接作为模式序列输出。

如以上说明,在本实施方式的模式识别装置中,rnn层20的输入变换部21计算通过针对输入矢量和递归输入矢量的变换而削减了维数的变换矢量。然后,rnn层20的rnn处理部22根据由输入变换部21计算出的变换矢量来计算rnn输出矢量并输出。因此,根据本实施方式的模式识别装置,能够在使输入到rnn层20的输入矢量和递归输入矢量的维数的分配自动地最佳化的同时,比以往的递归型神经网络削减rnn层20中的计算量,能够实现高效的计算量的削减。

(第2实施方式)

接下来,将在中间层中使用通常的lstm层时的例子作为第2实施方式进行说明。图3是示出第2实施方式的模式识别装置的功能性的结构例的框图。如图3所示,本实施方式的模式识别装置为具备lstm层40而不具备第1实施方式的rnn层20的结构。此外,除了rnn代替20代替lstm层40以外,与第1实施方式相同,因此,以下仅说明与第1实施方式的不同点。

如图3所示,本实施方式的模式识别装置中的lstm层40包括输入变换部41和lstm处理部42。

lstm层40的输入变换部41与在第1实施方式中说明的rnn层20的输入变换部21同样地,针对序列的每个阶段,使用上述式(1)所示的线性变换、或者非完全连接的线性变换、或者上述式(4)所示的非线性变换、或者非完全连接的非线性变换进行针对输入矢量和递归输入矢量(在本实施方式中是作为lstm处理部42的之前阶段的输出的lstm输出矢量)的变换,计算比输入矢量的维数与递归输入矢量的维数之和小的维数的变换矢量并输出。其中,在本实施方式中,如后所述,在lstm处理部42中,除了针对输入值的计算中使用变换矢量以外,在输入门、遗忘门以及输出门这三个门的计算中也使用变换矢量,所以针对用于实现计算量的削减的变换矢量的维数的制约条件不同。

在此,在将阶段t的输入矢量设为xt、将递归输入矢量设为mt-1、将变换矢量设为vt、将输入矢量xt的维数设为n、将递归输入矢量mt-1的维数设为m、将变换矢量vt的维数设为i时,以往的一般的结构的lstm层中的输入值和三个门的矩阵计算的计算量能够表示为4×(n+m)×m。另一方面,本实施方式的lstm层40中的输入值和三个门的矩阵计算的计算量能够表示为(n+m)×i+4×i×m。因此,如果(n+m)×i+4×i×m<4×(n+m)×m,则可以说能够通过本实施方式削减计算量。

根据以上,在使用上述式(1)所示的线性变换、或者上述式(4)所示的非线性变换来计算变换矢量vt的情况下,变换矢量vt的维数i最好满足下述式(13)所示的条件。也就是说,lstm层40的输入变换部41最好计算满足下述式(15)所示的条件的变换矢量vt并输出。

【式15】

此外,在该情况下,存在即使变换矢量vt的维数i是递归输入矢量mt-1的维数m以上(i≥m)也能够削减计算量的情况,但至少需要变换矢量vt的维数i小于输入矢量xt的维数n与递归输入矢量mt-1的维数m之和(i<n+m)。

另外,在使用上述非完全连接的线性变换或者非完全连接的非线性变换来计算变换矢量vt的情况下,在将分量vxt的维数设为ix、将分量vct的维数设为ic、将分量vmt的维数设为im时,根据(ix+ic)×n+(ic+im)×m+4×i×m或者i=ix+ic+im的关系,本实施方式的lstm层40中的输入值和三个门的矩阵计算的计算量能够表示为(i-im)×n+(i-ic)×m+4×i×m。

因此,在使用上述的非完全连接的线性变换或者非完全连接的非线性变换来计算变换矢量vt的情况下,变换矢量vt的维数i最好满足下述式(16)所示的条件。也就是说,lstm层40的输入变换部41最好计算满足下述式(16)所示的条件的变换矢量vt并输出。

【式16】

lstm层40的lstm处理部42针对每个阶段,根据由输入变换部41计算出的变换矢量,使用下述式(17)至式(21)计算lstm输出矢量。

【式17】

(其中,it是阶段t的输入门激活矢量,ft是阶段t的遗忘门激活矢量,ct是阶段t的记忆单元激活矢量,ct-1是阶段t-1的记忆单元激活矢量,wiv、wfv、wcv、wov是针对所述变换矢量vt的权重矩阵,wic、wfc、woc是权重矢量,bi、bf、bc、bo是偏置矢量,是每个要素的乘法运算,σ(·)、g(·)、h(·)是对矢量的每个要素应用的非线性函数)

一般,σ(·)使用sigmoid函数,g(·)和h(·)使用tanh函数,但也可以使用其它非线性的函数。

输出层30根据由lstm层40的lstm处理部42计算出的lstm输出矢量,通过与第1实施方式同样的方法,例如,计算n等级识别问题中的n维度得分矢量的序列、后验概率矢量的序列、得分为最大的等级的索引的序列等模式序列。

在本实施方式的模式识别装置中也为lstm层40的输入变换部41使用上述线性变换、非完全连接的线性变换、非线性变换、非完全连接的非线性变换的任意变换来计算变换矢量vt的结构,所以与第1实施方式同样地,能够使用学习数据自动地确定由输入矢量xt和递归输入矢量mt-1中的哪个提供大的权重,能够使对变换矢量vt的输入矢量xt和递归输入矢量mt-1的维数的分配自动地最佳化。

在本实施方式中,在此之前叙述了lstm层40为一个的情况,但如图4所示,也可以在输入层10与输出层30之间有多个lstm层40(第1位lstm层40-1…第r位lstm层40-r)。如图4所示,在lstm层40的数量是r、按照从作为最下位层的第1位lstm层40-1到作为最上位层的第r位lstm层40-r的顺序排列成使下位的lstm层40的输出成为上位的lstm层40的输入时,从输入层10输出的特征矢量成为第1位lstm层40-1的输入变换部41-1的输入矢量,从第1位lstm层40-1的lstm处理部42-1输出的lstm输出矢量成为作为其上位的第2位lstm层40-2的输入变换部41-2的输入矢量。

同样地,从第r位lstm层40-r(1≤r<r)的lstm处理部42-r输出的lstm输出矢量成为第(r+1)位lstm层40-(r+1)的输入变换部41(r+1)的输入矢量,从最上位的第r位lstm层40-r的lstm处理部42-r输出的lstm输出矢量被输入到输出层30。在使用学习数据来进行各lstm层40的输入变换部41的变换的最佳化时,在各lstm层40中自动地确定输入矢量和递归输入矢量的维数的最佳的分配。

在这样具有多个lstm层40的结构的模式识别装置中,在lstm层40的输入变换部41使用上述式(1)所示的线性变换或者上述式(4)所示的非线性变换来计算变换矢量的情况下,在将在第r位lstm层(1≤r≤r)40-r中计算的变换矢量vrt的维数的维数设为ir、将第r位lstm层40-r的输入矢量的维数设为nr、将第r位lstm层40-r的递归输入矢量的维数设为mr时,输入变换部41最好计算满足下述式(22)所示的条件的变换矢量vrt并输出。

【式18】

另外,在这样具有多个rnn层20的结构的模式识别装置中,在rnn层20的输入变换部21使用上述非完全连接的线性变换或者非完全连接的非线性变换来计算变换矢量的情况下,在将在第r位lstm层(1≤r≤r)40-r中计算的变换矢量vrt的维数的维数设为ir、将第r位lstm层40-r的输入矢量的维数设为nr、将第r位lstm层40-r的递归输入矢量的维数设为mr、将在第r位lstm层40-r中计算的变换矢量vrt中的仅根据输入矢量计算的分量的维数设为irx、将根据输入矢量和递归输入矢量计算的分量的维数设为irc、将仅根据递归输入矢量计算的分量的维数设为irm时,输入变换部41最好计算满足下述式(23)所示的条件的变换矢量vrt并输出。

【式19】

此外,上述模式识别装置的结构能够在不脱离本发明的要旨的范围内进行各种变形。例如,也可以在输入层10与lstm层40的输入变换部41之间追加任意的处理,将追加的处理的输出矢量作为输入变换部41的输入矢量的一部分或者全部。另外,也可以在lstm层40的lstm处理部42与输出层30之间追加任意的处理,将追加的处理的输出矢量作为输出层30的输入的一部分或者全部。进而,也可以输出层30将由lstm层40的lstm处理部42计算的lstm输出矢量直接作为模式序列输出。

如以上说明,在本实施方式的模式识别装置中,lstm层40的输入变换部41计算通过针对输入矢量和递归输入矢量的变换而削减了维数的变换矢量。然后,lstm层40的lstm处理部42根据由输入变换部41计算出的变换矢量计算lstm输出矢量并输出。因此,根据本实施方式的模式识别装置,能够在使输入到lstm层40的输入矢量和递归输入矢量的维数的分配自动地最佳化的同时,比以往的递归型神经网络削减lstm层40中的计算量,能够实现高效的计算量的削减。

(补充说明)

上述的实施方式的模式识别装置例如能够由构成一般的计算机的硬件和由计算机执行的程序(软件)的协作实现。例如,通过计算机执行预定的程序,能够实现上述输入层10、输出层30以及包括输入变换部21和rnn处理部22的rnn层20或者包括输入变换部41和lstm处理部42的lstm层40。

图5是示出实施方式的模式识别装置的硬件结构例的框图。例如如图5所示,实施方式的模式识别装置具有具备cpu101等硬件处理器、ram102和rom103等内部存储装置、hdd104等外部存储装置、经由网络与外部进行通信的通信i/f105以及用于连接周边设备的设备i/f106的、作为通常的计算机的硬件结构。

此时,上述程序例如被记录到磁盘、光盘、半导体存储器或者与其类似的记录介质来提供。记录程序的记录介质只要是计算机系统可读取的记录介质,则其存储形式可以是任意的方式。另外,既可以构成为将上述程序预先安装到计算机,也可以构成为将经由网络分发的上述程序适当地安装到计算机。

由上述计算机执行的程序为包括上述模式识别装置的功能性的构成要素的模块结构,处理器适当地读出并执行该程序,从而在ram102等主存储上生成上述各部。

此外,实施方式的模式识别装置也可以是由asic(applicationspecificintegratedcircuit,集成电路)、fpga(field-programmablegatearray,现场可编程门阵列)等专用的硬件实现上述功能性的各部的一部分或者全部的结构。另外,实施方式的模式识别装置也可以是在云系统上动作的虚拟机。

以上,虽然说明了本发明的实施方式,但此处说明的实施方式仅为例示,并不意图限定发明的范围。此处说明的新的实施方式能够以其它各种方式实施,能够在不脱离发明的要旨的范围内进行各种省略、置换、变更。在此说明的实施方式及其变形包含于发明的范围、要旨内,并且包含于权利要求书记载的发明及其均等的范围。

此外,能够将上述实施方式总结为以下的技术方案。

技术方案1

一种模式识别装置,在输入层与输出层之间具有一层以上的作为构成递归型神经网络的中间层的rnn层,从所述输出层输出与输入到所述输入层的特征矢量序列对应的模式序列,其中,

所述rnn层包括输入变换部和rnn处理部,

所述输入层针对每个阶段逐个地依次输出构成所述特征矢量序列的特征矢量,

所述rnn层的所述输入变换部针对每个阶段进行针对输入矢量和递归输入矢量的变换,计算比所述输入矢量的维数与所述递归输入矢量的维数之和小的维数的变换矢量并输出,其中该输入矢量由从所述输入层输出的特征矢量或者下位的所述rnn层所包括的所述rnn处理部的输出构成,该递归输入矢量由该rnn层所包括的所述rnn处理部的之前阶段的输出构成。

所述rnn层的所述rnn处理部针对每个阶段根据由该rnn层所包括的所述输入变换部计算出的所述变换矢量计算rnn输出矢量并输出,

所述输出层根据由最上位的所述rnn层所包括的所述rnn处理部计算出的所述rnn输出矢量计算所述模式序列并输出。

技术方案2

在上述技术方案1的模式识别装置中,

所述输入变换部根据阶段t的所述输入矢量xt和所述递归输入矢量mt-1,通过

【式1】

vt=wvx·xt+wvm·mt-1

(其中,wvx是针对所述输入矢量xt的权重矩阵,wvm是针对所述递归输入矢量mt-1的权重矩阵)

或者

【式2】

vt=k(wvx·xt+wvm·mt-1+bv)

(其中,k(·)是对每个矢量应用的非线性函数,wvx是针对所述输入矢量xt的权重矩阵,wvm是针对所述递归输入矢量mt-1的权重矩阵,bv是使所述变换矢量vt的维数为i时的i维的偏置矢量)

来计算阶段t的所述变换矢量vt。

技术方案3

在上述技术方案2的模式识别装置中,

所述rnn处理部根据阶段t的所述变换矢量vt,通过

【式3】

mt=σ(wmv·vt+bm)

(其中,wmv是针对所述变换矢量vt的权重矩阵,bm是偏置矢量,σ(·)是对矢量的每个要素应用的非线性函数)

计算阶段t的所述rnn输出矢量mt。

技术方案4

在上述技术方案3的模式识别装置中,

在所述rnn层的层数为1的情况下,在将所述输入矢量的维数设为n、将所述递归输入矢量的维数设为m、将所述变换矢量的维数设为i时,所述输入变换部计算满足

【式4】

的条件的所述变换矢量并输出。

技术方案5

在上述技术方案3的模式识别装置中,

在所述rnn层的层数为r(r是2以上的整数)的情况下,在将第r层(1≤r≤r)的阶段t的所述输入矢量的维数设为nr、将所述递归输入矢量的维数设为mr、将所述变换矢量的维数设为ir时,所述输入变换部计算满足

【式5】

的条件的所述变换矢量并输出。

技术方案6

在上述技术方案2的模式识别装置中,

所述rnn处理部是lstm(longshort-termmemory,长短期记忆网络),根据所述变换矢量vt,通过

【式6】

(其中,it是阶段t的输入门激活矢量,ft是阶段t的遗忘门激活矢量,ct是阶段t的记忆单元激活矢量,ct-1是阶段t-1的记忆单元激活矢量,wiv、wfv、wcv、wov是针对所述变换矢量vt的权重矩阵,wic、wfc、woc是权重矢量,bi、bf、bc、bo是偏置矢量,是每个要素的乘法运算,σ(·)、g(·)、h(·)是对矢量的每个要素应用的非线性函数)

计算阶段t的所述rnn输出矢量mt。

技术方案7

在上述技术方案6的模式识别装置中,

在所述rnn层的层数为1的情况下,在将所述输入矢量的维数设为n、将所述递归输入矢量的维数设为m、将所述变换矢量的维数设为i时,所述输入变换部计算满足

【式7】

的条件的所述变换矢量并输出。

技术方案8

在上述技术方案6的模式识别装置中,

在所述rnn层的层数为r(r是2以上的整数)的情况下,在将第r层(1≤r≤r)的阶段t的所述输入矢量的维数设为nr、将所述递归输入矢量的维数设为mr、将所述变换矢量的维数设为ir时,所述输入变换部计算满足

【式8】

的条件的所述变换矢量并输出。

技术方案9

在上述技术方案1的模式识别装置中,

所述输入变换部在将在阶段t的所述变换矢量vt中的仅根据阶段t的所述输入矢量xt计算的分量设为vxt、将根据所述输入矢量xt和所述递归输入矢量mt-1计算的分量设为vct、将仅根据所述递归输入矢量mt-1计算的分量设为vmt时,通过

【式9】

vt=[vxtt,vctt,vmtt]t

vxt=wvxi·xt

vct=wvxc·xt+wvmc·mt-1

vmt=wvmi·mt

(其中,·t是矩阵的转置,wvxi、wvxc是针对所述输入矢量xt的权重矩阵,wvmi、wvmc是针对所述递归输入矢量mt-1的权重矩阵)

或者

【式10】

vt=[vxtt,vctt,vmtt]t

vxt=k(wvxi·xt+bvx)

vct=k(wvxc·xt+wvmc·mt-1+bvc)

vmt=k(wvmi·mt+bvm)

(其中,·t是矩阵的转置,k(·)是对每个矢量应用的非线性函数,wvxi、wvxc是针对所述输入矢量xt的权重矩阵,wvmi、wvmc是针对所述递归输入矢量mt-1的权重矩阵,bvx是使所述变换矢量的分量vxt的维数为ix时的ix维的偏置矢量,bvc是使所述变换矢量的分量vct的维数为ic时的ic维的偏置矢量,bvm是使所述变换矢量的分量vmt的维数为im时的im维的偏置矢量)

计算所述变换矢量vt。

技术方案10

在上述技术方案9的模式识别装置中,

所述rnn处理部根据阶段t的所述变换矢量vt,通过

【式11】

mt=σ(wmv·vt+bm)

(其中,wmv是针对所述变换矢量vt的权重矩阵,bm是偏置矢量,σ(·)是对矢量的每个要素应用的非线性函数)

计算阶段t的所述rnn输出矢量mt。

技术方案11

在上述技术方案10的模式识别装置中,

在所述rnn层的层数为1的情况下,在将所述输入矢量的维数设为n、将所述递归输入矢量的维数设为m、将所述变换矢量的维数设为i、将在所述变换矢量中的仅根据所述输入矢量计算的分量的维数设为ix、将根据所述递归输入矢量计算的维数设为im时,所述输入变换部计算满足

【式12】

的条件的所述变换矢量并输出。

技术方案12

在上述技术方案10的模式识别装置中,

在所述rnn层的层数为r(r是2以上的整数)的情况下,在将第r层(1≤r≤r)的阶段t的所述输入矢量的维数设为nr、将所述递归输入矢量的维数设为mr、将所述变换矢量的维数设为ir、将在该变换矢量中的仅根据所述输入矢量计算的分量的维数设为irx、将根据所述输入矢量和所述递归输入矢量计算的分量的维数设为irc、将仅根据所述递归输入矢量计算的分量的分量的维数设为irm时,所述输入变换部计算满足

【式13】

的条件的所述变换矢量并输出。

技术方案13

在上述技术方案9的模式识别装置中,

所述rnn处理部是lstm(longshort-termmemory长短期记忆网络),根据所述变换矢量vt,通过

【式14】

(其中,it是阶段t的输入门激活矢量,ft是阶段t的遗忘门激活矢量,ct是阶段t的记忆单元激活矢量,ct-1是阶段t-1的记忆单元激活矢量,wiv、wfv、wcv、wov是针对所述变换矢量vt的权重矩阵,wic、wfc、woc是权重矢量,bi、bf、bc、bo是偏置矢量,是每个要素的乘法运算,σ(·)、g(·)、h(·)是对矢量的每个要素应用的非线性函数)

计算阶段t的所述rnn输出矢量mt。

技术方案14

在上述技术方案13的模式识别装置中,

在所述rnn层的层数为1的情况下,在将所述输入矢量的维数设为n、将所述递归输入矢量的维数设为m、将所述变换矢量的维数设为i、将所述变换矢量中的仅根据所述输入矢量计算的分量的维数设为ix、将仅根据所述递归输入矢量计算的维数设为im时,所述输入变换部计算满足

【式15】

的条件的所述变换矢量并输出。

技术方案15

在上述技术方案13的模式识别装置中,

在所述rnn层的层数为r(r是2以上的整数)的情况下,在将第r层(1≤r≤r)的所述输入矢量的维数设为nr、将所述递归输入矢量的维数设为mr、将所述变换矢量的维数设为ir、将该变换矢量中的仅根据所述输入矢量计算的分量的维数设为irx、将根据所述输入矢量和所述递归输入矢量计算的分量的维数设为irc、将仅根据所述递归输入矢量计算的维数的维数设为irm时,所述输入变换部计算满足

【式16】

的条件的所述变换矢量并输出。

技术方案16

一种模式识别方法,由模式识别装置执行,该模式识别装置在输入层与输出层之间具有一层以上的作为构成递归型神经网络的中间层的rnn层,从所述输出层输出与输入到所述输入层的特征矢量序列对应的模式序列,其中,

所述rnn层包括输入变换部和rnn处理部,

所述模式识别方法包括:

所述输入层针对每个阶段逐个地依次输出构成所述特征矢量序列的特征矢量的步骤;

所述rnn层的所述输入变换部针对每个阶段进行针对输入矢量和递归输入矢量的变换,计算比所述输入矢量的维数与所述递归输入矢量的维数之和小的维数的变换矢量并输出的步骤,其中,该输入矢量由从所述输入层输出的特征矢量或者下位的所述rnn层所包括的所述rnn处理部的输出构成,该递归输入矢量由该rnn层所包括的所述rnn处理部的之前阶段的输出构成;

所述rnn层的所述rnn处理部针对每个阶段,根据由该rnn层所包括的所述输入变换部计算出的所述变换矢量计算rnn输出矢量并输出的步骤;以及

所述输出层根据由最上位的所述rnn层所包括的所述rnn处理部计算出的所述rnn输出矢量计算所述模式序列并输出的步骤。

技术方案17

一种程序,用于使计算机实现作为模式识别装置的功能,该模式识别装置在输入层与输出层之间具有一层以上的作为构成递归型神经网络的中间层的rnn层,从所述输出层输出与输入到所述输入层的特征矢量序列对应的模式序列,其中,

所述rnn层包括输入变换部和rnn处理部,

所述程序使计算机执行:

所述输入层针对每个阶段逐个地依次输出构成所述特征矢量序列的特征矢量的步骤;

所述rnn层的所述输入变换部针对每个阶段进行针对输入矢量和递归输入矢量的变换,计算比所述输入矢量的维数与所述递归输入矢量的维数之和小的维数的变换矢量并输出的步骤,其中,该输入矢量由从所述输入层输出的特征矢量或者下位的所述rnn层所包括的所述rnn处理部的输出构成,该递归输入矢量由该rnn层所包括的所述rnn处理部的之前阶段的输出构成;

所述rnn层的所述rnn处理部针对每个阶段,根据由该rnn层所包括的所述输入变换部计算出的所述变换矢量计算rnn输出矢量并输出的步骤;以及

所述输出层根据由最上位的所述rnn层所包括的所述rnn处理部计算出的所述rnn输出矢量计算所述模式序列并输出的步骤。

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