神经网络装置、车辆控制系统、分解处理装置以及程序的制作方法

文档序号:17583246发布日期:2019-05-03 21:06阅读:184来源:国知局
神经网络装置、车辆控制系统、分解处理装置以及程序的制作方法

本技术涉及将输入信息输入到神经网络模型(neuralnetworkmodel)的输入层并从输出层获得输出信息的神经网络装置及程序、具备神经网络装置的车辆控制系统、以及用于构成该神经网络的分解处理装置。



背景技术:

通过利用神经网络来处理输入信息,能够将输入信息分类、根据输入信息检测预定信息。图16是表示将四维输入向量分成三类的(对属于三个类中的哪一类进行识别的)神经网络的例子的图。如图16所示,当需要识别的四维输入向量(也称为输入映射)作为输入层a0被输入时,该输入信息经过中间层a1~a3后作为三维输出层a4输出。

在输入层a0与中间层a1之间,定义了权重矩阵(也称为滤波器)w1和偏置向量b1,中间层a1通过下式(1)来求取。

在此,f(·)为激活函数,例如可使用以下的函数(relu)。

以下,同样地,中间层a2、a3通过下式(2)、(3)来求取,输出层a4通过下式(4)来求取。

如此,如下所述,在神经网络的各层,设来自前一层的输入向量为x(di维)、权重矩阵为w(di行do列)、偏置为b(do维),则向下一层输出的向量(应用于激活函数之前)y(do维)由下式(5)表示。



技术实现要素:

在如上所述的神经网络中,已知当使层数增加(变为深度)时,信息处理的精度会提高。然而,若使层数增加,处理成本也会增大。具体而言是,式(5)的运算中所需的内存(memory)容量会增大,处理时间也会增长。

例如在全连接层(fullyconnectedlayer,以下也称为“fc层”。)中,权重矩阵w在单精度实数(32位)的情况下将会消耗32dido比特的内存。另外,在各层中需要进行dido次单精度实数的积和运算,特别是该计算需要占用处理时间。此外,fc层通常配置在神经网络的最后,但是通过在卷积层(convolutionallayer,以下也称为“conv层”。)中也用滑动窗口(slidingwindow)适当地对输入映射进行切取、重排,能够将conv层视为fc层。

本技术是鉴于上述问题点做出的,目的在于要在神经网络装置中减小内存消耗量以及运算量。

一个技术方案的神经网络装置,具备存储部(24)以及运算部(22),存储部(24)存储神经网络模型,运算部(22)将输入信息输入到所述神经网络模型的输入层并将输出层输出,所述神经网络模型的至少一层的权重矩阵(w)由权重基(基底)矩阵(mw)和权重系数矩阵(cw)的乘积(mwcw)构成,所述权重基矩阵(mw)为整数矩阵,所述权重系数矩阵(cw)为实数矩阵。

一个技术方案的神经网络装置,是使用神经网络模型进行识别的神经网络装置,具有如下构成:进行逻辑运算作为所述神经网络模型的至少一层的运算。

一个技术方案的神经网络装置,是使用神经网络模型进行识别的神经网络装置,具有如下构成:存储有在所述神经网络模型的至少一层的运算中使用的二值或者三值的矩阵。

一个技术方案的车辆控制系统,具有如下构成:具备上述的神经网络装置(20)、取得所述输入信息的车载传感器(30)以及基于所述输出来控制车辆的车辆控制装置(40)。

一个技术方案的分解处理装置,具有如下构成:具备取得部(11)、权重分解部(12)以及输出部(14),取得部(11)取得神经网络模型,权重分解部(12)将所述神经网络模型的至少一层的权重矩阵分解成权重基矩阵(mw)和权重系数矩阵(cw)的乘积(mwcw),所述权重基矩阵(mw)为整数矩阵,所述权重系数矩阵(cw)为实数矩阵,输出部(14)输出所述权重基矩阵(mw)和所述权重系数矩阵(cw)。

一个技术方案的程序,是使计算机作为神经网络装置发挥功能的程序,所述神经网络装置将输入信息输入到神经网络模型的输入层并从输出层获得输出信息,所述计算机的存储部(24)中存储有:将所述神经网络模型的至少一个全连接层的权重矩阵(w)进行分解而得到的整数的权重基矩阵(mw)和实数的权重系数矩阵(cw);用于将输入向量(x)分解成整数的输入基矩阵(mx)和实数的输入系数向量(cx)的乘积与输入偏置(bx)之和的、通过学习而得到的所述输入系数向量(cx)和所述输入偏置(bx)中的所述输入系数向量(cx);以及基于通过所述学习而得到的所述输入系数向量(cx)和所述输入偏置(bx)所得到的、规定了所述输入向量的各元素的值(xj)和与该值相对的输入基矩阵的值(mx(j))之间的关系的查找表(lut),所述程序使所述计算机作为运算部发挥功能,所述运算部在所述神经网络模型的至少一个全连接层中,将前一层的输出向量作为输入向量(x),使用从所述存储部(24)中读取的所述权重基矩阵(mw)、所述实数的权重系数矩阵(cw)及所述输入系数向量(cx)、和参照从所述存储部(24)中读取的所述查找表(lut)而得到的与所述输入向量(x)对应的所述输入基矩阵(mx),求取所述输入向量(x)和所述权重矩阵(w)的乘积。

一个技术方案的程序,是使计算机作为神经网络装置发挥功能的程序,所述神经网络装置将输入信息输入到神经网络模型的输入层并从输出层获得输出信息,所述计算机的存储部(24)中存储有:将所述神经网络模型的至少一个全连接层的权重矩阵(w)进行分解而得到的整数的权重基矩阵(mw)和实数的权重系数矩阵(cw);用于将输入向量(x)分解成整数的输入基矩阵(mx)和实数的输入系数向量(cx)的乘积与输入偏置(bx)之和的、通过学习而得到的所述输入系数向量(cx)和所述输入偏置(bx)中的所述输入系数向量(cx);以及基于通过所述学习而得到的所述输入系数向量(cx)和所述输入偏置(bx)所得到的、对于所述输入向量的各元素(xj)的、与所述输入向量的各元素(xj)对应的所述输入基矩阵的行的所有组合(β)、和将根据所述组合所获得的所述输入向量的各元素(xj)的近似值的候选(p)按大小顺序排列时的中点(mpi),所述程序使所述计算机作为运算部(22)发挥功能,所述运算部在所述神经网络模型的至少一个全连接层中,将前一层的输出向量作为输入向量(x),使用从所述存储部(24)中读取的所述权重基矩阵(mw)、所述实数的权重系数矩阵(cw)及所述输入系数向量(cx)、和所述输入基矩阵的行的所有组合(β)与所述中点(mpi),求取所述输入向量和所述权重矩阵的乘积。

一个技术方案的神经网络装置,具有如下构成:具备存储部(24)以及运算部(22),存储部(24)存储神经网络模型,运算部(22)将输入信息输入到所述神经网络模型的输入层并将输出层输出,所述运算部(22)在所述神经网络模型的至少一层中,将前一层的输出向量作为输入向量(x),将所述输入向量(x)分解成输入基矩阵(mx)和输入系数向量(cx)的乘积(mxcx)与输入偏置(bx)之和(x=mxcx+bx1),求取被分解了的所述输入向量(mxcx+bx1)和权重矩阵(w)的乘积(wtx=w(mxcx+bx1)),所述输入基矩阵(mx)为整数矩阵,所述输入系数向量(cx)为实数向量。

如下所述,本技术中存在其他技术方案。因此,该技术的公开意在提供本技术的一部分,而并非意图限制在此记述的请求保护的发明的范围。

附图说明

图1是对实施方式的被整数分解了的输入向量和权重矩阵的乘积的计算进行说明的图。

图2是表示实施方式的分解处理装置的构成的图。

图3是对实施方式的将权重矩阵分解成基矩阵和系数矩阵的处理进行说明的图。

图4是在实施方式的分解手法(方法)中实施的算法的流程图。

图5是对实施方式的将权重矩阵分解成基矩阵和系数矩阵的处理的变形例进行说明的图。

图6是对实施方式的将输入向量分解成基矩阵与系数向量的乘积和偏置的处理的变形例进行说明的图。

图7是对实施方式的输入向量的基矩阵的由全搜索实现的更新进行说明的图。

图8是对实施方式的输入向量的基矩阵的优化进行说明的图。

图9是对实施方式的输入向量的基矩阵的优化进行说明的图。

图10是对实施方式的输入向量的基矩阵的优化进行说明的图。

图11是表示实施方式的神经网络装置的构成的图。

图12是对实施方式的神经网络模型的fc层中的运算部的处理进行说明的图。

图13是表示实施方式的conv层的输入映射与输出映射的关系的图。

图14是表示实施方式的conv层的输入映射与输出映射的关系的图。

图15是表示实施方式的conv层的权重矩阵的分解的图。

图16是表示将四维输入向量识别为三个类的神经网络的例子的图。

图17是对实施方式的变形例中的输入向量的基矩阵的优化进行说明的图。

图18是对实施方式的变形例中的输入向量的基矩阵的优化进行说明的图。

图19是表示实施方式的变形例中的标绘有原型及中点的数轴的图。

图20是表示实施方式的变形例中的标绘有原型及中点的数轴的图。

图21是对实施方式的变形例中的β的分配进行说明的图。

图22是表示实施方式的变形例中的神经网络装置的构成的图。

图23是对实施方式的变形例中的二叉树搜索进行说明的图。

图24是对实施方式的变形例中的二叉树搜索进行说明的图。

图25是对实施方式的变形例中的二叉树搜索进行说明的图。

图26是对实施方式的变形例中的二叉树搜索进行说明的图。

图27是对实施方式的变形例中的二叉树进行说明的图。

图28是表示实施方式中的车辆控制系统的构成的图。

具体实施方式

以下,参照附图来说明实施方式。此外,以下说明的实施方式表示实施本技术的情况下的一例,并非将本技术限定于以下说明的具体构成。在实施本技术时,可以适当采用与实施方式相应的具体构成。

一个技术方案的神经网络装置,具备存储部(24)以及运算部(22),存储部(24)存储神经网络模型,运算部(22)将输入信息输入到所述神经网络模型的输入层并将输出层输出,所述神经网络模型的至少一层的权重矩阵(w)由权重基矩阵(mw)和权重系数矩阵(cw)的乘积(mwcw)构成,所述权重基矩阵(mw)为整数矩阵,所述权重系数矩阵(cw)为实数矩阵。

根据该构成,神经网络中的全连接层的权重矩阵(w)由整数的权重基矩阵(mw)和实数的权重系数矩阵(cw)的乘积(mwcw)构成,因此在该层的运算中能够使内存的消耗量减小。

在上述神经网络装置中,也可以为,所述运算部(22)在所述至少一层中,将前一层的输出向量作为输入向量(x),将所述输入向量(x)分解成输入基矩阵(mx)和输入系数向量(cx)的乘积(mwcw)与输入偏置(bx)之和(x=mxcx+bx1),求取所述输入向量(x)和所述权重矩阵(w)的乘积(wtx=(mwcw)t(mxcx+bx1)),所述输入基矩阵(mx)为整数矩阵,所述输入系数向量(cx)为实数向量。

根据该构成,在求取输入向量(x)和所述权重矩阵(w)的乘积的运算中,输入基矩阵(mx)和权重基矩阵(mw)的乘积运算能够由整数矩阵彼此间的乘积运算来实现,因此能够使内存的消耗量减小并使运算量减小。

在上述神经网络装置中,也可以为,所述权重基矩阵(mw)为二值矩阵,所述输入基矩阵(mx)为二值矩阵,所述运算部(22)通过逻辑运算和位计数(bitcount)进行所述权重基矩阵(mw)和所述输入基矩阵(mx)的乘积运算(mwmx)。

根据该构成,求取输入向量(x)和所述权重矩阵(w)的乘积的运算中的输入基矩阵(mx)和权重基矩阵(mw)的乘积运算能够由二值矩阵彼此间的积运算来实现,能够通过逻辑运算和位计数来执行,因此能够使求取输入向量(x)和所述权重矩阵(w)的乘积的运算加速。

在上述神经网络装置中,也可以为,所述权重基矩阵(mw)为三值矩阵,所述输入基矩阵(mx)为二值矩阵,所述运算部(22)通过逻辑运算和位计数进行所述权重基矩阵(mw)和所述输入基矩阵(mx)的乘积运算(mwmx)。

根据该构成,求取输入向量(x)和所述权重矩阵(w)的乘积的运算中的输入基矩阵(mx)和权重基矩阵(mw)的乘积运算能够由二值矩阵和三值矩阵的乘积运算来实现,能够通过逻辑运算和位计数来执行,因此能够使求取输入向量(x)和所述权重矩阵(w)的乘积的运算加速。

在上述神经网络装置中,也可以为,所述运算部(22)通过对于所述输入向量(x)将所述输入基矩阵(mx)进行优化来分解所述输入向量(x)。

根据该构成,无需在每次获得对于全连接层的输入向量(x)时都求取输入系数向量(cx)和输入偏置(bx),能够使全连接层的运算量减小。

在上述神经网络装置中,也可以为,所述运算部(22)对于所述输入向量(x)的各元素(xj),通过从与所述输入向量的各元素对应的所述输入基矩阵的行的所有组合(β)和学习出的所述输入系数向量(cx)的乘积与学习出的所述输入偏置(bx)之和(βcx+bx)当中选择最接近的候选来优化所述输入基矩阵(mx)。

根据该构成,能够通过一维的最近邻搜索来优化输入基矩阵(mx)。

在上述神经网络装置中,也可以为,所述存储部(24)存储有查找表(lut),所述查找表(lut)规定了所述输入向量的各元素(xj)的值和与其相对的所述最接近的候选中的输入基矩阵的值(mx(j))之间的关系,所述运算部(22)通过参照所述查找表(lut),对于所述输入向量(x)将所述输入基矩阵(mx)进行优化。

根据该构成,能够使对于输入向量(x)的输入基矩阵(mx)的优化加速。

在上述神经网络装置中,也可以为,所述存储部(24)对于所述输入向量的各元素(xi)存储有与所述输入向量的各元素(xi)对应的所述输入基矩阵的行的所有组合(β)、和将根据所述组合所获得的所述输入向量的各元素的近似值的候选(p)按大小顺序排列时的中点(mpi),所述运算部(22)对于所述输入向量的各元素(xi),通过根据使用所述中点(mpi)的二叉树搜索法决定与所述输入向量的各元素(xi)对应的所述输入基矩阵的行(mx(j))来优化所述输入基矩阵(mx)。

根据该构成,能够使对于输入向量(x)的输入基矩阵(mx)的优化加速,并且能够使运算部(22)的运算所需的内存容量减小。

在上述神经网络装置中,也可以为,所述神经网络模型为卷积神经网络模型,卷积神经网络模型将卷积层的多个滤波器汇总而作为所述权重矩阵(w),并将所述卷积层视为全连接层,由整数的权重基矩阵(mw)和实数的权重系数矩阵(cw)的乘积构成了该权重矩阵(w),所述运算部(22)在被视为全连接层的所述卷积层中,求取被分解了的所述输入向量(x)和被分解了的所述权重矩阵(w)的乘积。

根据该构成,在卷积神经网络模型的卷积层的运算中,能够使内存消耗量减小并使运算量减小。

一个技术方案的神经网络装置,是使用神经网络模型进行识别的神经网络装置,具有如下构成:进行逻辑运算作为所述神经网络模型的至少一层的运算。

根据该构成,能够通过逻辑运算高速地进行神经网络模型的运算。

一个技术方案的神经网络装置,是使用神经网络模型进行识别的神经网络装置,具有如下构成:存储有在所述神经网络模型的至少一层的运算中使用的二值或者三值的矩阵。

根据该构成,能够利用二值或三值的矩阵来高速地进行神经网络模型的运算。

一个技术方案的车辆控制系统,具有如下构成:具备上述的神经网络装置(20)、取得所述输入信息的车载传感器(30)以及基于所述输出来控制车辆的车辆控制装置(40)。

根据该构成,能够基于由神经网络模型实现的识别来控制车辆。

一个技术方案的分解处理装置,具有如下构成:具备取得部(11)、权重分解部(12)以及输出部(14),取得部(11)取得神经网络模型,权重分解部(12)将所述神经网络模型的至少一层的权重矩阵分解成权重基矩阵(mw)和权重系数矩阵(cw)的乘积(mwcw),所述权重基矩阵(mw)为整数矩阵,所述权重系数矩阵(cw)为实数矩阵,输出部(14)输出所述权重基矩阵(mw)和所述权重系数矩阵(cw)。

根据该构成,能够获得用于构成上述神经网络装置的权重基矩阵(mw)和权重系数矩阵(cw)。

上述分解处理装置也可以为,还具备输入事先分解部(13),所述输入事先分解部(13)学习输入系数向量(cx)和输入偏置(bx),所述输入系数向量(cx)和所述输入偏置(bx)用于将输入向量(x)分解成输入基矩阵(mx)和所述输入系数向量(cx)的乘积与所述输入偏置(bx)之和(x=mxcx+bx1),所述输入基矩阵(mx)为整数矩阵,所述输入系数向量(cx)为实数向量,所述输出部(14)输出由所述学习得到的所述输入系数向量(cx)。

根据该构成,能够事先通过学习取得用于分解输入向量(x)的系数向量(cx)和输入偏置(bx)。

在上述分解处理装置中,也可以为,所述输入事先分解部(13)生成用于对于所述输入向量(x)将所述输入基矩阵(mx)进行优化的查找表(lut),所述输出部(14)输出所述查找表(lut)。

根据该构成,能够事先取得用于高速分解输入向量(x)的查找表(lut)。

一个技术方案的程序,是使计算机作为神经网络装置发挥功能的程序,所述神经网络装置将输入信息输入到神经网络模型的输入层并从输出层获得输出信息,所述计算机的存储部(24)中存储有:将所述神经网络模型的至少一个全连接层的权重矩阵(w)进行分解而得到的整数的权重基矩阵(mw)和实数的权重系数矩阵(cw);用于将输入向量(x)分解成整数的输入基矩阵(mx)和实数的输入系数向量(cx)的乘积与输入偏置(bx)之和的、通过学习而得到的所述输入系数向量(cx)和所述输入偏置(bx)中的所述输入系数向量(cx);以及基于通过所述学习而得到的所述输入系数向量(cx)和所述输入偏置(bx)所得到的、规定了所述输入向量的各元素的值(xj)和与该值相对的输入基矩阵的值(mx(j))之间的关系的查找表(lut),所述程序使所述计算机作为运算部发挥功能,所述运算部在所述神经网络模型的至少一个全连接层中,将前一层的输出向量作为输入向量(x),使用从所述存储部(24)中读取的所述权重基矩阵(mw)、所述实数的权重系数矩阵(cw)及所述输入系数向量(cx)、和参照从所述存储部(24)中读取的所述查找表(lut)而得到的与所述输入向量(x)对应的所述输入基矩阵(mx),求取所述输入向量(x)和所述权重矩阵(w)的乘积。

根据该构成,神经网络中的全连接层的权重矩阵(w)由整数的权重基矩阵(mw)和实数的权重系数矩阵(cw)的乘积(mwcw)构成,在求取输入向量(x)和所述权重矩阵(w)的乘积的运算中,输入基矩阵(mx)的权重基矩阵(mw)的乘积运算能够由整数矩阵彼此间的乘积运算来实现,因此能够使内存的消耗量减小并使运算量减小,且由于参照查找表来进行对于输入向量(x)的输入基矩阵(mx)的优化,因此能够使求取输入向量(x)和所述权重矩阵(w)的乘积的运算加速。

一个技术方案的程序,是使计算机作为神经网络装置发挥功能的程序,所述神经网络装置将输入信息输入到神经网络模型的输入层并从输出层获得输出信息,所述计算机的存储部(24)中存储有:将所述神经网络模型的至少一个全连接层的权重矩阵(w)进行分解而得到的整数的权重基矩阵(mw)和实数的权重系数矩阵(cw);用于将输入向量(x)分解成整数的输入基矩阵(mx)和实数的输入系数向量(cx)的乘积与输入偏置(bx)之和的、通过学习而得到的所述输入系数向量(cx)和所述输入偏置(bx)中的所述输入系数向量(cx);以及基于通过所述学习而得到的所述输入系数向量(cx)和所述输入偏置(bx)所得到的、对于所述输入向量的各元素(xj)的、与所述输入向量的各元素(xj)对应的所述输入基矩阵的行的所有组合(β)、和将根据所述组合所获得的所述输入向量的各元素(xj)的近似值的候选(p)按大小顺序排列时的中点(mpi),所述程序使所述计算机作为运算部(22)发挥功能,所述运算部在所述神经网络模型的至少一个全连接层中,将前一层的输出向量作为输入向量(x),使用从所述存储部(24)中读取的所述权重基矩阵(mw)、所述实数的权重系数矩阵(cw)及所述输入系数向量(cx)、和所述输入基矩阵的行的所有组合(β)与所述中点(mpi),求取所述输入向量和所述权重矩阵的乘积。

根据该构成,能够使对于输入向量(x)的输入基矩阵(mx)的优化加速,并且能够使运算部(22)的运算所需的内存容量减小。

一个技术方案的神经网络装置,具有如下构成:具备存储部(24)以及运算部(22),存储部(24)存储神经网络模型,运算部(22)将输入信息输入到所述神经网络模型的输入层并将输出层输出,所述运算部(22)在所述神经网络模型的至少一层中,将前一层的输出向量作为输入向量(x),将所述输入向量(x)分解成输入基矩阵(mx)和输入系数向量(cx)的乘积(mxcx)与输入偏置(bx)之和(x=mxcx+bx1),求取被分解了的所述输入向量(mxcx+bx1)和所述权重矩阵(w)的乘积(wtx=w(mxcx+bx1)),所述输入基矩阵(mx)为整数矩阵,所述输入系数向量(cx)为实数向量。

在权重矩阵(w)由二值或三值的元素构成的情况下,根据该构成,在求取输入向量(x)和权重矩阵(w)的乘积的运算中,输入基矩阵(mx)的权重矩阵(w)的乘积运算能够由整数矩阵和二值或三值矩阵的乘积运算来实现,因此能够使运算量减小。

以下,参照附图来说明实施方式。在本实施方式中,说明用于构成省内存/高速的神经网络模型的分解处理装置10、和利用神经网络模型从输入信息获得输出信息的神经网络装置20,首先对本实施方式中的基本观点进行说明。如上所述,在神经网络的fc层,包括计算权重矩阵(滤波器)w和输入向量(输入映射)x的乘积wtx的阶段(步骤)。通过将该权重矩阵w分解(整数分解)成整数的基矩阵和实数的系数矩阵并将输入向量x分解(整数分解)成整数的基矩阵和实数的系数向量,能够削减内存消耗量,并且能够使运算量减少从而缩短处理时间。

图1是对本实施方式的被整数分解了的乘积wtx的计算进行说明的图。此外,在图1中省略了偏置b。另外,基数kw根据权重矩阵w的大小来决定,但大致为权重矩阵w的1/8~1/4左右(数十~数百左右),基数kx例如能够设为2~4左右。若包含偏置b而由数式来表示,则可表示为如下式(6)所示。

分解权重矩阵w所得到的基矩阵mwt为二值或三值矩阵,分解输入向量x所得到的基矩阵mx为二值矩阵。此外,如后述的例中所示,基矩阵mx也可以为三值矩阵。式(6)的右边第1项的mwtmx为二值或三值的矩阵和二值或三值的矩阵的乘积,能够通过逻辑运算(and(和)、xor(异或))和位计数来计算。另外,如后所述,右边第2项与第3项之和能够事先进行计算。由此,通过图1以及式(6)的分解,能够将大多数运算转变为逻辑运算。

图2是表示本实施方式的用于构成深度神经网络的分解处理装置的构成的图。如图2所示,分解处理装置10具备数据取得部11、权重分解部12、输入事先分解部13以及分解结果输出部14。数据取得部11取得本实施方式的神经网络模型的结构信息(包括各层的权重(滤波器)w、偏置b)以及学习用的输入向量。

权重分解部12将权重矩阵w分解成实数的系数矩阵cw和二值或三值的基矩阵mw的乘积。输入事先分解部13通过学习求取用于将输入向量x分解成二值或三值的基矩阵mx和实数的系数向量cx的乘积与偏置bx之和的、系数向量cx和偏置bx,生成用于根据输入向量x求取基矩阵mx的查找表lut。分解结果输出部14使用通过权重分解部12得到的系数矩阵cw和二值或三值的基矩阵mw的乘积以及通过输入事先分解部13得到的查找表lut,重新构成神经网络模型,并向后述的神经网络装置20输出。以下,对各功能详细进行说明。

(权重矩阵的分解)

权重分解部12将权重矩阵w分解成实数的系数矩阵cw和整数的基矩阵mw的乘积。图3是对将权重矩阵w分解成基数为kw的基矩阵mw和系数矩阵cw的处理进行说明的图。在本实施方式中,权重分解部12将权重矩阵w分解成二值或三值的基矩阵mw和实数的系数矩阵cw。以下,作为在本实施方式的权重分解部12中将权重矩阵分解成二值或三值的基矩阵mw和实数的系数矩阵cw的手法,说明第1至第4手法。

(第1分解手法)

作为第1分解手法,说明与数据无关的分解手法。在第1分解手法中,权重分解部12通过求解表示分解误差的下式的成本函数g1来进行分解。

在此,基矩阵mw为二值矩阵,且m∈{-1,1}d0×kw

具体而言,权重分解部12按以下步骤求解上述的成本函数g1。

(1)将基矩阵mw以及系数矩阵cw随机初始化。

(2)将基矩阵mw的元素固定,利用最小二乘法优化系数矩阵cw的元素,由此更新系数矩阵cw的元素以使得成本函数g1变为最小。

(3)将系数矩阵cw的元素固定,通过全搜索来更新基矩阵mw的元素以使得成本函数g1变为最小。

(4)重复(2)以及(3)直至收敛。例如当成本函数g1满足预定收敛条件(例如减少量变为一定值以下)时判定为收敛。

(5)将通过步骤(1)~步骤(4)得到的解作为候选进行保持。

(6)重复步骤(1)~步骤(5),采用能使成本函数g1最小的候选基矩阵mw以及候选系数矩阵cw作为最终结果。此外,也可以无需进行该步骤(1)~步骤(5)的重复,但通过多次重复能够避免依赖初始值的问题。

接着,说明步骤(3)中的基矩阵mw的更新处理。基矩阵mw的第j行的行向量的元素仅取决于权重矩阵w的第j行的元素。由此,基矩阵mw的各行向量的值能够与其他行独立地进行优化,因此基矩阵mw能够按每一行进行全面搜索(全搜索)。基矩阵mw的第j行的行向量在如本实施方式这样进行二值分解的情况下仅存在2kw种(此外,在三值分解的情况下也仅存在3kw种)。由此,将它们全部全面进行查核,采用使成本函数g1最小的行向量。将其应用于基矩阵m的所有行向量来更新基矩阵m的元素。

(第2分解手法)

作为第2分解手法,说明使系数矩阵cw稀疏的与数据无关的分解手法。在第2分解手法中,权重分解部12通过求解作为分解误差的下式的成本函数g2来进行分解。

在此,基矩阵m为二值矩阵,且m∈{-1,1}d0×k。另外,|cw|1为系数矩阵cw的元素的l1范数,λ为其系数。

权重分解部12按以下步骤求解上述的成本函数g2。

(1)将基矩阵mw以及系数矩阵cw随机初始化。

(2)将基矩阵mw的元素固定,通过近端梯度法优化系数矩阵cw的元素。

(3)将系数矩阵cw的元素固定,通过全搜索来更新基矩阵m的元素以使得成本函数g2变为最小。

(4)重复(2)以及(3)直至收敛。例如当成本函数g2满足预定收敛条件(例如减少量变为一定值以下)时判定为收敛。

(5)将通过步骤(1)~步骤(4)得到的解作为候选进行保持。

(6)重复步骤(1)~步骤(5),采用能使成本函数g2最小的候选基矩阵mw以及候选系数矩阵cw作为最终结果。此外,也可以无需进行该步骤(1)~步骤(5)的重复,但通过多次重复能够避免依赖初始值的问题。

根据第2分解手法,能够使系数矩阵cw稀疏。通过使系数矩阵cw稀疏,在式(6)的乘积cwtmwtmx的计算中,能够省略系数矩阵cw的零元素所涉及的部分,能够更高速地进行内积计算。

(第3分解手法)

接着,说明第3分解手法。在第1分解手法中,作为成本函数g1,定义了分解误差并考虑使该分解误差最小化。然而,在将权重矩阵w近似为基矩阵mw和系数矩阵cw的乘积后,实际上想要近似的是输入向量x和权重矩阵w的乘积wtx。

于是,在第3分解手法中,预先收集s个样本输入向量x,并将汇集它们而成的集合设为x∈rd0×s。而且,将分解误差定义为并使其最小化。即,在第3分解手法中,权重分解部12通过求解下式的成本函数g3来进行分解。

根据该成本函数g3,权重矩阵w将会按照实际的数据分布来分解,因而分解时的近似精度会提高。

该近似分解能够通过依次求取构成基矩阵mw的基向量mw(j)来进行。第3分解手法的步骤如下。

(1)利用第1或者第2分解手法,求取基矩阵mw以及系数矩阵cw,并将结果设为它们的初始值。

(2)将基矩阵mw的元素固定,利用最小二乘法优化系数矩阵cw的元素。

(3)将系数矩阵cw的元素固定,通过优化基矩阵mw的元素来将基矩阵mw的元素更新。关于该基矩阵mw的更新处理,将会在后面说明。

(4)重复(2)以及(3)直至收敛,将使成本函数g3最小化的基矩阵mw以及系数矩阵cw作为候选进行保持。

(5)重复步骤(1)~(6),采用使成本函数g3最小化的基矩阵mw以及系数矩阵cw作为最终结果。此外,由于在步骤(1)中再次利用第1或者第2分解手法进行基矩阵mw以及系数矩阵cw的优化,因此初始值被变更。另外,也可以无需进行步骤(5)的重复,但通过多次重复能够减轻依赖初始值的问题。

接着,说明步骤(3)中的基矩阵mw的更新处理。在数据相关分解的情况下,基矩阵mw的行向量的值不在独立于其他行而取决于其他行。基矩阵mw的元素为二值或三值、即离散值,因而,基矩阵mw的优化成为组合优化问题。由此,基矩阵mw的优化中例如能够使用贪心算法(greedyalgorithm)、禁忌搜索(tabusearch)、模拟退火(simulatedannealing)等算法。由于在步骤(1)中获得了好的初始值,因此通过这些算法也能够良好地使分解误差最小化。

例如在使用贪心算法的情况下,按以下顺序优化基矩阵mw。

(3-1)随机选择基矩阵mw的元素中的t个元素。

(3-2)尝试2t种组合(后述的三值分解的情况下为3t种),采用使成本函数g3为最小的组合。

(3-3)重复步骤(3-1)以及步骤(3-2)直至收敛。

(第4分解手法)

第4分解手法是组合第2分解手法和第3分解手法而得到的。具体而言是通过求解下式的成本函数g4来进行分解。

根据该成本函数g4,权重矩阵w将会按照实际的数据分布来分解,因而,分解时的近似精度会提高,并且能够使系数矩阵cw稀疏。即,不仅能够获得第2分解手法的优点而且能够获得第3分解手法的优点。具体分解步骤与第3分解手法是同样的。

在第2分解手法的分解中,由于将权重矩阵w汇总来一并进行分解,因此当基数k变大时将会难以分解。于是,在本实施方式中,也可以利用以下算法逐次分解实数矩阵。

图4是在本实施方式的分解手法中实施的算法的流程图。此外,在以下的说明中,以下式(式中“decompose”为“分解”)表示在上述的第1~第4分解手法中将权重矩阵w分解成具有kw个基的基矩阵mw和系数矩阵cw的步骤。

[m,c]=decompose(w,k)

首先,权重分解部12取得需要分解的权重矩阵w(步骤s41)。接着,权重分解部12将索引j(j=1~n)设为1,将权重矩阵w代入残差矩阵r(步骤s42)。残差矩阵r是到此为止通过逐次地分解所分解出的基矩阵mw(j)和系数矩阵cw(j)的内积之和与权重矩阵w之差。

接着,权重分解部12将残差矩阵r通过第1或者第2分解手法分解成基矩阵mw和系数矩阵cw(步骤s43)。此时,基数设为kwj。此外,基数kw(j)=kw(1)、kw(2)、…、kw(n)预先存储于权重分解部12。当得到mw(j)cw(j)时,权重分解部12将原来的残差矩阵r与mw(j)cw(j)的差分设为新的残差矩阵r(步骤s44),将索引j进行增量(步骤s45),并判断索引j是否比n大、即n级逐次分解是否结束(步骤s46)。

在索引j为n以下的情况下(步骤s46:否),权重分解部12返回至步骤s43,针对在步骤s44中得到的新的残差矩阵r,按在步骤s45中增量得到的新的j,再次进行分解。反复进行以上处理,在索引j变得比n大后(步骤s46:是),结束处理。此外,如上所述,n级的基数kw(j)=kw(1)、kw(2)、…、kw(n)是预先准备的,它们既可以是相同的数也可以是互不相同的数。另外,基数kw例如为8左右即可。

根据本实施方式,越增加分解的基数kw,越能够接近原本的精度。

图5是对将权重矩阵w分解成基数为kw的基矩阵mw和系数矩阵cw的处理的变形例进行说明的图。在该变形例中,如图5所示,将权重矩阵w的第j列的向量分别进行分解,并将它们汇总。通过这样按每个向量进行分解,能够抑制分解所消耗的计算成本。各个向量通过上述第1~第4分解手法来分解即可。

在此,将权重矩阵w的第j列的列向量表示为w(j),将系数矩阵cw的第j列的列向量表示为cw(j)。在本实施方式中,将排列多个实数向量w(j)所形成的权重矩阵w视为分解成了多个基矩阵mw(i)、和如图5所示那样斜着排列多个系数向量cw(j)所形成的矩阵的乘积之和的矩阵。此外,在图5中,在矩阵的影线部分记入0。

(输入向量的分解)

接着,对输入向量x的分解进行说明。图6是对将输入向量x分解成基数为kw的基矩阵mx与系数向量cx的乘积和偏置bx的处理的变形例进行说明的图。输入向量x如图6以及下式(12)所示那样分解。

x≈(mxcx+bx1)…(12)

此外,考虑了偏置项bx1是因为,由于relu的影响,输入向量(映射)是非负的,并且偏置变大。也可以没有该偏置项,但是否需要取决于前一层的输出。

输入向量x由于是输入信息或者在各层中得到的向量,因此本来并不能事先分解,而必须在后述的神经网络装置20中的执行时分解。然而,如下所说明的,cx以及bx能够通过学习来事先决定,因此,输入事先分解部13通过学习事先决定cx以及bx。由此,在各层中得到输入向量x时,据此仅通过优化mx就能够分解输入向量,能够加快处理速度。在本实施方式中,与该输入向量x相应的mx的优化也通过使用后述的查找表来加速。输入事先分解部13也进行通过学习来事先决定该查找表的处理。以下,依次进行说明。

首先,说明在得到输入向量x时将其分解的手法。在该分解中,通过求解表示分解误差的下式的成本函数jx来进行分解。

具体而言,能够按以下步骤求解上述的成本函数jx。

(1)将基矩阵mx随机初始化。

(2)将基矩阵mx固定,利用最小二乘法优化系数向量cx的元素以及偏置bx,由此更新系数向量cx的元素以及系数bx以使得成本函数jx变为最小。

(3)将系数向量cx的元素以及偏置bx固定,通过全搜索来更新基矩阵mx的元素以使得成本函数jx变为最小。

(4)重复(2)以及(3)直至收敛。例如当成本函数jx满足预定收敛条件(例如减少量变为一定值以下)时判定为收敛。

以下,以基矩阵mx为三值矩阵的情况为例进行说明。在步骤(3)的全搜索中,将mx的第j行记作mx(j),各行能够独立地按下式(14)以及图7的要领通过全搜索进行更新。

在各层中,在得到输入向量x后通过求解上述的成本函数jx能够将该输入向量分解成基矩阵mx和系数向量cx。然而,由于执行时在各层进行该分解,因此需要大量的处理时间,例如无法实际应用于通过车载摄像头的行人检测等。于是,本发明人关注了以下之处。

首先,在式(14)中,能够视为cx以及bx确定了x的值域。另外,能够视为mx指示了在由cx以及bx所确定的值域中与哪个值相当。在此,由于x的值域为不论哪个元素都是相似的,因而能够在学习时预先通过分解处理装置10仅确定cx以及bx,并在后述的通过神经网络装置20的执行时仅优化mx。通过这样,能够加快执行时的分解速度。当然,执行时对cx、bx、mx三者都进行优化会更好,但实际上如上所述这样仅优化mx也是足够实用的。

如果仅优化mx即可,那么最终会变为在执行时仅计算式(14)即可。在此,式(14)能够被视为从3kx种(在mx为二值矩阵的情况下为2kx种)(βcx+bx)中选择最接近的候选的一维最近邻搜索。例如在kx=2、cx=(1.3,0.4)t、bx=2.4的情况下,3kx种(βcx+bx)如图8所示。图9是将图8的各个(βcx+bx)排列在数轴上的图。此时,如图9所示,若设输入向量x的某一列xj为2.1,则根据图9可知,最接近的候选为mx(j)=(0,-1),其成为最佳值。

图10是表示将图9的数轴以等间隔分割从而设定了多个直方(bins)的状态的图。输入事先分解部13制作查找表lut,查找表lut对将图9的数轴以等间隔分割而设定的多个直方的每一个规定了成为最佳值的β。在神经网络装置20中,当得到输入向量x时,通过求取其所属的直方并参照查找表lut,能够非常快地求取mx(j)

分解结果输出部14使用通过权重分解部12分解权重矩阵w所得到的mw和cw以及通过输入事先分解部13所得到的系数向量cx和偏置bx,计算式(6)的右边第2项与第3项之和。如上所述,cx、bx、mw以及cw均可通过权重分解部12或者输入事先分解部13获得,因此能够计算式(6)的右边第2项与第3项之和。

分解结果输出部14对于各个fc层,将用于计算式(6)的右边第1项的cx、mw及cw、式(6)的右边第2项与第3项之和、以及用于求取mx的各行向量mx(j)的查找表lut(j)(j=1、…、di)输出到神经网络装置20。

此外,以下将mw称为“权重基矩阵”,将cw称为“权重系数矩阵”,将mx称为“输入基矩阵”,将cx称为“输入系数向量”,将bx称为“输入偏置”。

图11是表示神经网络装置20的构成的图。神经网络装置20具备输入信息取得部21、运算部22、输出信息输出部23和存储部24。存储部24存储有神经网络模型,对于各个fc层,从分解处理装置10取得通过分解处理装置10生成并输出的用于计算式(6)的右边第1项的输入系数向量cx、权重基矩阵mw及权重系数矩阵cw、式(6)的右边第2项与第3项之和(bxcwtmwt1+b)、以及用于求取输入基矩阵mx的各行向量mx(j)的查找表lut(j)(j=1、…、di)。

输入信息取得部21中被输入成为处理对象的输入信息。运算部22从存储部24读取神经网络模型,将通过输入信息取得部21取得的输入信息输入到输入层并执行运算处理,从而获得输出层。

图12是对神经网络模型的fc层中的运算部22的处理进行说明的图。运算部22至少在一个fc层中,将前一层的输出向量作为输入向量x,将该输入向量x分解成二值的输入基矩阵mx和实数的输入系数向量cx的乘积与输入偏置bx,求取输入向量x和权重矩阵w的乘积。具体而言,在fc层中,运算部22在得到前一层的输出时,将其作为输入向量x,通过进行式(6)的运算,求取输入向量x和权重矩阵w的乘积。

如图12所示,运算部22首先参照从存储部24读取到的查找表lut来求取与输入向量x对应的二值的输入基矩阵mx。接着,运算部22使用得到的二值的输入基矩阵mx、从存储部24读取到的权重系数矩阵cw、权重基矩阵mw以及输入系数向量cx,计算式(6)的右边第1项(cwtmwtmxcx)。

运算部22计算通过上述的计算(cwtmwtmxcx)得到的式(6)的右边第1项的值、与从存储部24读取到的式(6)的右边第2项和第3项之和(bxcwtmwt1+b)的和(cwtmwtmxcx+bxcwtmwt1+b)。运算部22进一步通过将其计算结果输入到激活函数(例如relu),算出该层的输出(下一层的输入)。

运算部22通过在fc层中执行如上所述的运算并且依照神经网络模型进行运算,最后获得输出层。输出层的值被输出给输出信息输出部23。输出信息输出部23基于通过运算部22得到的输出层的值,输出所求取的输出信息。例如在神经网络模型是进行分类的模型的情况下,输出信息输出部23将输出层中的似然度最大的类的信息作为输出信息输出。

如上所述,在神经网络的fc层中,由上述被分解了的权重矩阵w以及用于输入向量的分解的查找表lut所实现的节省内存以及加快速度是有效的。此外,在中间层的conv层中,也能够通过排列各种滤波器(三维)而成为四维的数据结构,能够应用上述加速的手法。

图13以及图14是表示conv层的输入映射与输出映射的关系的图。在图13以及图14中,左侧为输入映射im,右侧为输出映射om,应用于输入映射的长方体是三维的滤波器f1、f2。滤波器f1和滤波器f2是不同的滤波器,准备有cout个这种互不相同的滤波器。一个输出映射的运算量成为(fhfwcin)×(hw),若对所有滤波器进行合计,则变为(fhfwcin)×(hw)×cout,在不应用本实施方式的情况下,运算量会非常大。

在这种情况下,如图15所示,也将各滤波器作为列向量并将它们沿行方向排列来生成权重矩阵w。由此,能够将conv层也视为fc层,能够进行上述的省内存/高速的运算。

表1是将在本实施方式的神经网络装置20中由各fc层所需的运算量与现有技术进行比较而得到的表。

在表1中,b为实施逻辑运算的变量(寄存器)的位宽度。相对于di,do为数百~数千的数量级,如上所述,kx为2~4左右,kw为do/8~do/4左右,因此在本实施方式中,与现有技术相比,运算量减少了。

表2是将在本实施方式的神经网络装置20中各fc层的内存的消耗量与现有技术进行比较而得到的表。

在表2中,作为实数,使用了单精度实数(32位)。根据表2可知,在本实施方式中,与现有技术相比,内存的消耗量减少了。

根据本实施方式的分解处理装置10以及神经网络装置20,能够使fc层中的内存的消耗量减小,并且能够使运算量减小,因此,在神经网络的层数多(深度神经网络)从而能够在多层中应用上述的省内存/高速的运算的情况下,本实施方式尤其有效。

此外,上述的分解处理装置10以及神经网络装置20分别通过具备存储装置、内存、运算处理装置等的计算机执行程序来实现。在上述实施方式中,将分解处理装置10和神经网络装置20作为分别的装置进行了说明,但也可以由同一计算机构成这些装置。

另外,如上所述,仅预先决定cx以及bx,并在通过神经网络装置20的执行时仅优化mx,由此,能够加快执行时的分解输入向量的速度。在上述实施方式中,以如下手法作为最佳输入基搜索手法来求取基矩阵mx,所述手法为,预先制作按多个直方的每一个规定了优化mx(j)的β的查找表lut并存储于神经网络装置20,当在神经网络装置20中得到输入向量x时,对于各元素xj,求取其所属的直方并参照查找表lut来求取最佳的β。

最佳输入基搜索手法不限于上述。以下,说明最佳输入基搜索手法的变形例。在以下的说明中,以基矩阵mx为二值矩阵的情况为例进行说明。首先,输入事先分解部13对mx(j)的所有候选β计算(βcx+bx)。例如在kx=4、cx=(3.8,8.6,1.2,0.4)t、bx=15.2的情况下,对于2kx种(在该例中,kx=4,因此为2kx=24=16种)β所得到的(βcx+bx)变为如图17所示那样。以下,对于各个β,将通过(βcx+bx)的计算得到的值称为原型p。

接着,输入事先分解部13将原型p按其值的大小进行排序(sort)。图18表示了对于图17的例子按原型p的值排序得出的结果。如此排序时的原型的值从小到大依次附加下角标1、2、…、16,记作p1、p2、…、p16。另外,将与各原型pi(i=1~16)对应的β记作βi(i=1~16)。

输入事先分解部13接着对于排序后的原型pi求取相邻的原型间的中点mpi(i=1~15)。图19是将图18的各个(βcx+bx)排列在数轴上并且示出它们的中点mpi(i=1~15)的图。此外,mpi=(pi+pi+1)/2。

如图20所示,应该对输入向量的各元素的值xj分配的β能够以中点mpi为边界来定义。例如,如图21所示,能够对xj=5.8分配β4(-1,-1,1,1)。在通过神经网络装置20的运算部22进行该分配的情况下,能够使用二分(折半)搜索法。

图22是表示本变形例的神经网络装置20的构成的图。在本变形例中,与上述实施方式的神经网络装置20相比,代替查找表lut,而对于输入向量x的各元素xj存储有用于构成后述的二叉树(图27)的信息βi(i=1,…,2kx)以及mpi(i=1,…,2kx-1)。

运算部22首先如图23所示那样对相邻的原型的中点mpi中的、中央的中点(在该例的情况下为mp8)和xj进行比较。在该例(xj=5.8)的情况下,由于xj<mp8,因而可知解是β1,…,β8中的某一个。运算部22接着如图24所示那样对将剩余的候选β1,…,β8分成两半的中点mpi(在该例的情况下为mp4)和xj进行比较。在该例(xj=5.8)的情况下,由于xj<mp4,因而可知解是β1,…,β4中的某一个。

运算部22接着如图25所示那样对将剩余的候选β1,…,β4分成两半的中点mpi(在该例的情况下为mp2)和xj进行比较。在该例(xj=5.8)的情况下,由于xj>mp2,因而可知解是β3或者β4。运算部22最后如图26所示那样对将剩余的候选β3、β4分成两半的中点mpi(在该例的情况下为mp3)和xj进行比较。在该例(xj=5.8)的情况下,由于xj>mp3,因而可知解是β4。

如上,运算部22能够通过四次比较运算来求解。图27是表示上述的二叉树搜索法的图。一般而言,运算部22只要进行与比特数(kx次)相应的比较就能够最终得到解。运算部22将所有的βi(i=1,…,2kx)和中点mpi(i=1,…,2kx-1)保持在内存中即可。输入基矩阵mx为三值矩阵时,预先将所有的βi(i=1,…,3kx)和中点mpi(i=1,…,3kx-1)保持在内存中即可。

如此,根据本变形例,仅通过进行kx次比较运算,能够高速地求取最佳的β,并且也能够使内存的消耗量减小。

此外,在上述实施方式及其变形例中,说明了权重矩阵为实数矩阵的情况,但在权重矩阵原本就由二值或三值的元素构成的情况下,则无需进行权重矩阵的分解。在该情况下,只将输入向量分解成二值或三值的基矩阵和实数的系数向量的乘积与偏置之和即可。例如在以下文献中介绍了像这样权重矩阵原本就是二值或三值的神经网络:m.courbariaux,y.bengio,andj.p.david.binaryconnect:trainingdeepneuralnetworkswithbinaryweightsduringpropagations(在传播期间用二值权重训练深度神经网络).innips,pp.3105-3113,2015.和f.liandb.liu.ternaryweightnetworks(三值神经网络).technicalreportarxiv:1605.04711,2016.。

通过将输入向量分解成基矩阵和实数向量,能够使运算量减少并加快运算速度。

上述实施方式及其变形例的神经网络装置20能够在图像识别、语音识别、自然语言处理等所有领域中应用,例如能够作为以车载传感器的检测值作为输入信息来识别车辆周边的物体的装置进行应用。图28是表示包括神经网络装置20的车辆控制系统的构成的框图。车辆控制系统100具备神经网络装置20、车载传感器30和车辆控制装置40。

车载传感器30通过进行感测来取得被输入到神经网络装置的输入装置的输入信息。车载传感器30例如可以是单眼摄像头、立体摄像头、麦克风、毫米波雷达。既可以将它们的检测值原样不变地作为输入信息输入到神经网络装置20,也可以对它们的检测值进行信息处理来生成输入信息而输入到神经网络装置20。

神经网络装置20既可以是检测特定种类的物体(例如人物、车辆等)并用矩形框将物体包围的装置,也可以是按每个像素判断其属于哪个类的装置(语义分割(semanticsegmentation)),还可以是进行其他识别处理的装置。

另外,车辆控制装置40基于神经网络装置的输出(识别结果),进行车辆的控制。车辆控制既可以是车辆的自动驾驶,也可以是车辆的驾驶辅助(例如有碰撞风险时的强制制动、车道保持等),还可以是向车辆驾驶员的信息提供(例如识别结果的提示、基于识别结果的危险判断结果的通知等)。

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