首页> 中国专利> 网络量化方法、推理方法以及网络量化装置

网络量化方法、推理方法以及网络量化装置

摘要

一种对神经网络(14)进行量化的网络量化方法,包括:数据库构建步骤(S20),对通过将多个测试数据集(12)输入到神经网络(14)的情况下而得到的神经网络(14)所使用的张量的统计信息数据库(18)进行构建;参数生成步骤(S30),通过对张量的值进行量化,从而生成量化参数集(22);以及网络构建步骤(S40),使用量化参数集(22),对神经网络(14)进行量化,在参数生成步骤(S30),根据统计信息数据库(18),将包括张量的值之中的频度成为极大的值的高频度区域中的量化步长间隔,设定为比低频度区域中的量化步长间隔窄,该低频度区域是包括频度比高频度区域低、且频度不为零的张量的值的区域。

著录项

  • 公开/公告号CN112740233A

    专利类型发明专利

  • 公开/公告日2021-04-30

    原文格式PDF

  • 申请/专利权人 株式会社索思未来;

    申请/专利号CN201880097850.4

  • 发明设计人 笹川幸宏;

    申请日2018-09-27

  • 分类号G06N3/02(20060101);

  • 代理机构72002 永新专利商标代理有限公司;

  • 代理人安香子

  • 地址 日本神奈川县

  • 入库时间 2023-06-19 10:46:31

说明书

技术领域

本公开涉及网络量化方法、推理方法以及网络量化装置。

背景技术

以往利用神经网络等网络进行机器学习。在此,将数值数据作为输入,执行一些运算来得到数值数据的输出值的模型,将这种模型称为网络。在将网络安装到计算机等硬件时,为了抑制硬件成本,则希望在保持安装后的推理精度与浮点精度为同等程度的基础上,来构建运算精度更低的网络。

例如,在安装以浮点(floating point)精度来进行所有的计算的网络的情况下,由于硬件成本增大,因此要求实现在保持推理精度的状态下,以定点(fixed point)精度来进行计算的网络。

以下将浮点(floating point)精度的网络也称为量化前网络,将定点(fixedpoint)精度的网络也称为量化网络。

在此,将如下的处理称为量化,即,将能够连续地表现几乎任意的值的浮点的值,划分为规定的分区来进行编码的处理。更一般而言,量化被定义为缩小网络中所使用的数值的位数或范围的处理。

在以由量化而限定的比特数来表现实数时,会有输入数据的分布与设想的分布不同的情况。在这种情况下所出现的问题是,量化误差增大,从而给机器学习的速度带来不良的影响,而且还会给学习后的推理的精度带来不良的影响。

作为解决这种问题的方法,例如有已知的专利文献1所记载的方法。在专利文献1记载的方法中,针对卷积神经网络的各层内的权重以及数据的每一个分别定义定点格式。以浮点数来开始卷积神经网络的机器学习,为了估计输入数据的分布而进行解析。接着,根据输入数据的分布,来决定表示输入数据值的最佳化数值格式,利用该格式来进行量化。这样,在专利文献1中,先调查输入数据的分布,选择适于该分布的数值格式,试图解决上述问题。

(现有技术文献)

(专利文献)

专利文献1 日本 特开2018-10618号公报

发明内容

发明要解决的课题

在专利文献1记载的方法中,考虑使用的数据的范围,针对能够包容该数据的范围,分配限定的比特数。在此,若在该范围内存在数据的不均匀,则几乎不存在数据的区间中的数据也被分配比特数。这意味着,针对比特数而言,具有意义的数据的量变少。因此,量化的精度降低。

于是,本公开为了解决上述这种问题,目的在于提供一种能够构建精度良好的量化网络的网络量化方法等。

解决课题所采用的手段

为了达成上述目的,本公开的一个形态所涉及的网络量化方法对神经网络进行量化,所述网络量化方法包括:准备步骤,准备所述神经网络;数据库构建步骤,对通过将多个测试数据集输入到所述神经网络的情况下而得到的所述神经网络所使用的张量的统计信息数据库进行构建;参数生成步骤,根据所述统计信息数据库和所述神经网络,对所述张量的值进行量化,从而生成量化参数集;以及网络构建步骤,使用所述量化参数集,对所述神经网络进行量化,从而构建量化网络,在所述参数生成步骤,根据所述统计信息数据库,将高频度区域中的量化步长间隔,设定为比低频度区域中的量化步长间隔窄,所述高频度区域是包括所述张量的值之中的频度成为极大的值的区域,所述低频度区域是包括频度比所述高频度区域低、且频度不为零的所述张量的值的区域。

为了达成上述目的,本公开的一个形态所涉及的网络量化方法对神经网络进行量化,所述网络量化方法包括:准备步骤,准备所述神经网络;数据库构建步骤,对通过将多个测试数据集输入到所述神经网络的情况下而得到的所述神经网络所使用的张量的统计信息数据库进行构建;参数生成步骤,根据所述统计信息数据库和所述神经网络,对所述张量的值进行量化,从而生成量化参数集;以及网络构建步骤,使用所述量化参数集,对所述神经网络进行量化,从而构建量化网络,在所述参数生成步骤,根据所述统计信息数据库,决定所述张量的值之中的频度不为零的量化区域、以及频度不为零且不与所述量化区域重叠的非量化区域,所述量化区域中的所述张量的值被量化,所述非量化区域中的所述张量的值不被量化。

为了达成上述目的,本公开的一个形态所涉及的网络量化方法对神经网络进行量化,所述网络量化方法包括:准备步骤,准备所述神经网络;数据库构建步骤,对通过将多个测试数据集输入到所述神经网络的情况下而得到的所述神经网络所使用的张量的统计信息数据库进行构建;参数生成步骤,根据所述统计信息数据库和所述神经网络,对所述张量的值进行量化,从而生成量化参数集;以及网络构建步骤,使用所述量化参数集,对所述神经网络进行量化,从而构建量化网络,在所述参数生成步骤,根据所述统计信息数据库,将所述张量的值量化为-1、0、+1这三值。

为了达成上述目的,本公开的一个形态所涉及的网络量化方法所述网络量化方法包括:准备步骤,准备所述神经网络;数据库构建步骤,对通过将多个测试数据集输入到所述神经网络的情况下而得到的所述神经网络所使用的张量的统计信息数据库进行构建;参数生成步骤,根据所述统计信息数据库和所述神经网络,对所述张量的值进行量化,从而生成量化参数集;以及网络构建步骤,使用所述量化参数集,对所述神经网络进行量化,从而构建量化网络,在所述参数生成步骤,根据所述统计信息数据库,将所述张量的值量化为-1以及+1这二值。

为了达成上述目的,本公开的一个形态所涉及的推理方法包括:网络量化方法;类型选择步骤,选择所述第一类型以及所述第二类型之中的、被输入到所述量化网络的输入数据被分类的类型;网络选择步骤,根据所述第一类型以及所述第二类型之中的、在所述类型选择步骤被选择的类型,对所述第一网络子集以及所述第二网络子集的一方进行选择;以及输入步骤,将所述输入数据输入到,在所述网络选择步骤被选择的所述第一网络子集以及所述第二网络子集的一方,所述网络量化方法进一步包括分类步骤,在该分类步骤,根据所述多个测试数据集的每一个的统计信息,将所述多个测试数据集的至少一部分分类为第一类型以及第二类型,所述统计信息数据库包括与所述第一类型以及所述第二类型分别对应的第一数据库子集以及第二数据库子集,所述量化参数集包括与所述第一数据库子集以及所述第二数据库子集分别对应的第一参数子集以及第二参数子集,所述量化网络包括分别使用所述第一参数子集以及所述第二参数子集来对所述神经网络进行量化而构建的第一网络子集以及第二网络子集。

为了达成上述目的,本公开的一个形态所涉及的网络量化装置对神经网络进行量化,所述网络量化装置包括:数据库构建部,对通过将多个测试数据集输入到所述神经网络的情况下而得到的所述神经网络所使用的张量的统计信息数据库进行构建;参数生成部,根据所述统计信息数据库和所述神经网络,对所述张量的值进行量化,从而生成量化参数集;以及网络构建部,使用所述量化参数集,对所述神经网络进行量化,从而构建量化网络,所述参数生成部,根据所述统计信息数据库,将高频度区域中的量化步长间隔,设定为比低频度区域中的量化步长间隔窄,所述高频度区域是包括所述张量的值之中的频度成为极大的值的区域,所述低频度区域是包括频度比所述高频度区域低、且频度不为零的所述张量的值的区域。

为了达成上述目的,本公开的一个形态所涉及的网络量化装置对神经网络进行量化,所述网络量化装置包括:数据库构建部,对通过将多个测试数据集输入到所述神经网络的情况下而得到的所述神经网络所使用的张量的统计信息数据库进行构建;参数生成部,根据所述统计信息数据库和所述神经网络,对所述张量的值进行量化,从而生成量化参数集;以及网络构建部,使用所述量化参数集,对所述神经网络进行量化,从而构建量化网络,所述参数生成部,根据所述统计信息数据库,决定所述张量的值之中的频度不为零的量化区域、以及频度不为零且不与所述量化区域重叠的非量化区域,所述量化区域中的所述张量的值被量化,所述非量化区域中的所述张量的值不被量化。

为了达成上述目的,本公开的一个形态所涉及的网络量化装置对神经网络进行量化,所述网络量化装置包括:数据库构建部,对通过将多个测试数据集输入到所述神经网络的情况下而得到的所述神经网络所使用的张量的统计信息数据库进行构建;参数生成部,根据所述统计信息数据库和所述神经网络,对所述张量的值进行量化,从而生成量化参数集;以及网络构建部,使用所述量化参数集,对所述神经网络进行量化,从而构建量化网络,所述参数生成部,根据所述统计信息数据库,将所述张量的值量化为-1、0、+1这三值。

为了达成上述目的,本公开的一个形态所涉及的网络量化装置对神经网络进行量化,所述网络量化装置包括:数据库构建部,对通过将多个测试数据集输入到所述神经网络的情况下而得到的所述神经网络所使用的张量的统计信息数据库进行构建;参数生成部,根据所述统计信息数据库和所述神经网络,对所述张量的值进行量化,从而生成量化参数集;以及网络构建部,使用所述量化参数集,对所述神经网络进行量化,从而构建量化网络,所述参数生成部,根据所述统计信息数据库,将所述张量的值量化为-1以及+1这二值。

发明内容

通过本公开,能够提供一种能够构建精度良好的量化网络的网络量化方法等。

附图说明

图1是示出实施方式1所涉及的网络量化装置的功能构成的概要的方框图。

图2示出了通过软件来实现实施方式1所涉及的网络量化装置的功能的计算机的硬件构成的一个例子。

图3是示出实施方式1所涉及的网络量化方法的流程图。

图4是示出比较例所涉及的量化方法的模式图。

图5是示出实施方式1所涉及的量化方法的模式图。

图6是示出实施方式1的变形例所涉及的量化的范围的概略图。

图7是示出实施方式1的变形例所涉及的量化步长间隔决定方法的一个例子的概略图。

图8是实施方式1的变形例所涉及的量化步长间隔决定方法的其他的例子的概略图。

图9是示出实施方式2所涉及的网络量化装置的功能构成的概要的方框图。

图10是示出实施方式2所涉及的网络量化方法以及推理方法的流程图。

具体实施方式

以下利用附图,对本公开的实施方式进行详细说明。另外,以下将要说明的实施方式均为示出本公开的一个具体例子。以下的实施方式所示的数值、形状、材料、标准、构成要素、构成要素的配置位置以及连接方式,步骤、步骤的顺序等均为一个例子,其主旨并非是对本公开进行限定。并且,对于以下的实施方式的构成要素之中的没有记载在示出本公开的最上位概念的独立技术方案中的构成要素,作为任意的构成要素来说明。并且,各个图并非是严谨的图示。在各个图中,对于实质上相同的构成赋予相同编号,并省略或简化重复的说明。

(实施方式1)

对实施方式1所涉及的网络量化方法以及网络量化装置进行说明。

[1-1.网络量化装置]

首先,利用图1对本实施方式所涉及的网络量化装置的构成进行说明。图1是示出本实施方式所涉及的网络量化装置10的功能构成的概要的方框图。

网络量化装置10是对神经网络14进行量化的装置。即,网络量化装置10是将浮点(floating point)精度的神经网络14转换为定点(fixed point)精度的神经网络即转换为量化网络的装置。另外,网络量化装置10可以不对神经网络14所使用的所有的张量进行量化,只要对至少一部分的张量进行量化即可。在此,张量是指,以包括神经网络14的各层中的输入数据、输出数据以及权重等参数的n维排列(n为0以上的整数)来表示的值。张量可以包括神经网络14中的最小单位的运算所涉及的参数。在神经网络14为卷积神经网络的情况下,被定义为卷积层的函数的权重以及偏置值也可以包括在张量中。并且,神经网络14中的正规化处理等参数也可以包括在张量中。

如图1所示,网络量化装置10具备数据库构建部16、参数生成部20、以及网络构建部24。在本实施方式中,网络量化装置10进一步具备机器学习部28。

数据库构建部16是一处理部,对在将多个测试数据集12输入到神经网络14的情况下而得到的神经网络14所使用的张量的统计信息数据库18进行构建。数据库构建部16计算针对多个测试数据集12的神经网络14所使用的各张量的值与频度的关系等统计信息,对各张量的统计信息数据库18进行构建。统计信息数据库18中例如包括各张量的平均值、中位数、众数、最大值、最小值、极大值、极小值、方差、偏差、歪斜度、峭度等统计量的至少一部分。

参数生成部20是一处理部,根据统计信息数据库18和神经网络14,对张量的值进行量化,生成量化参数集。参数生成部20根据统计信息数据库18,将包括张量的值中的频度成为极大的值的高频度区域中的量化步长间隔,设定为比低频度区域中的量化步长间隔窄,所述低频度区域是包括比高频度区域的频度低、且频度不为零的张量的值的区域。关于参数生成部20的详细的处理内容将后述。

网络构建部24是一处理部,通过使用量化参数集22来对神经网络14进行量化,从而构建量化网络26。

机器学习部28是使量化网络26进行机器学习的处理部。机器学习部28通过将多个测试数据集12或其他的输入数据集,输入到由网络构建部24构建的量化网络26,来使其进行机器学习。据此,机器学习部28构建与量化网络26相比,推理的精度良好的量化网络30。另外,网络量化装置10也可以不必具备机器学习部28。

通过以上这种构成,网络量化装置10能够构建精度良好的量化网络。

[1-2.硬件构成]

接着,利用图2对本实施方式所涉及的网络量化装置10的硬件构成进行说明。图2示出了由软件来实现本实施方式所涉及的网络量化装置10的功能的计算机1000的硬件构成的一个例子。

计算机1000如图2所示,是具备输入装置1001、输出装置1002、CPU1003、内置存储装置1004、RAM1005、读取装置1007、收发装置1008以及总线1009的计算机。输入装置1001、输出装置1002、CPU1003、内置存储装置1004、RAM1005、读取装置1007以及收发装置1008由总线1009连接。

输入装置1001是输入键、触摸板、触控面板显示器等成为用户界面的装置,接受用户的操作。另外,输入装置1001除了接受用户的接触操作以外,还可以是接受声音的操作、遥控器等远程操作的构成。

内置存储装置1004是闪存等。并且,内置存储装置1004也可以事先存储用于实现网络量化装置10的功能的程序、以及利用了网络量化装置10的功能构成的应用(Application)的至少一方。

RAM1005是随机存取存储器(Random Access Memory),在程序或应用的执行时用于数据等的存储。

读取装置1007从USB(Universal Serial Bus)存储器等记录介质,读出信息。读取装置1007从记录了上述这种程序或应用的记录介质,读出这些程序或应用,并使内置存储装置1004存储。

收发装置1008是用于通过无线或有线进行通信的通信电路。收发装置1008例如与网络上连接的服务器装置进行通信,从服务器装置下载上述的这种程序或应用,并使内置存储装置1004存储。

CPU1003是中央运算处理装置(Central Processing Unit),将内置存储装置1004中存储的程序、应用复制到RAM1005,将该程序或应用中包括的指令,从RAM1005依次读出来执行。

[1-3.网络量化方法]

接着,利用图3对本实施方式所涉及的网络量化方法进行说明。图3是示出本实施方式所涉及的网络量化方法的流程图。

如图3所示,在网络量化方法中,首先准备神经网络14(S10)。在本实施方式中,准备预先学习完毕的神经网络14。神经网络14是没有被量化的神经网络,即是浮点精度的神经网络。另外,在神经网络14的学习中,对于使用的输入数据没有特殊的限定,可以包括图1所示的多个测试数据集12。

接着,数据库构建部16对在将多个测试数据集12输入到神经网络14的情况下而得到的神经网络14所使用的张量的统计信息数据库进行构建(S20)。在本实施方式中,数据库构建部16计算针对多个测试数据集12的神经网络14所使用的各张量的值与频度的关系等统计信息,对各张量的统计信息数据库18进行构建。

接着,参数生成部20根据统计信息数据库18和神经网络14,对张量的值进行量化,从而生成量化参数集22(S30)。

接着,网络构建部24使用量化参数集22,对神经网络14进行量化,从而构建量化网络26(S40)。

接着,机器学习部28使量化网络26进行机器学习(S50)。机器学习部28通过将多个测试数据集12或其他的输入数据集,输入到由网络构建部24构建的量化网络26,从而使量化网络26进行机器学习。据此,通过量化网络26,能够构建推理的精度良好的量化网络30。另外,本实施方式所涉及的网络量化方法也可以不必包括机器学习步骤S50。

如以上所述,通过本实施方式所涉及的网络量化方法,能够以良好的精度对神经网络进行量化。

[1-4.参数生成部]

接着,对本实施方式所涉及的参数生成部20中的量化参数集22的生成方法进行详细说明。

如以上所述,参数生成部20根据统计信息数据库18和神经网络14,对张量的值进行量化,从而生成量化参数集。以下针对参数生成部20中的量化方法,利用图4以及图5通过对比较例的量化方法进行比较来说明。图4以及图5分别是示出比较例以及本实施方式所涉及的量化方法的模式图。在图4以及图5中,示出了神经网络14所使用的张量的值与频度的关系的图表。

在图4所示的张量的值的分布例中,频度具有两个极大值,在两个极大值之间的区域、以及两个极大值的外侧的区域中,频度低。在这种张量的值不均匀的情况下,例如根据采用了专利文献1所记载的以往的技术中的量化方法的比较例,对数据所存在的区域全体进行均等的量化。在图4中作为一个例子,示出了以8位的分辨率来进行量化的例子。

根据比较例的量化方法,虽然存在数据,但是由于频度低的区域也被量化,因此,在几乎不存在数据的区间的数据中也被分配了比特数。这意味着,针对比特数而言,具有意义的数据的量减少。因此,量化的精度降低。

然而,本实施方式所涉及的参数生成部20根据统计信息数据库18,将包括张量的值之中的频度成为极大的值的高频度区域中的量化步长间隔设定为,比低频度区域中的量化步长间隔窄,该低频度区域是频度比高频度区域中的低、且包括频度不为零的张量的值的区域。据此,与上述的比较例相比,能够减少在量化中被分配到低频度区域的比特数。因此,由于能够改善量化的精度,从而能够构建精度良好的量化网络。在图5所示的例子中,高频度区域包括具有张量的值之中的频度成为极大的值的第一区域以及第二区域,低频度区域包括具有张量的值之中的位于第一区域与第二区域之间的值的第三区域。并且,低频度区域的至少一部分的区域的张量的值也可以不被量化。在图5所示的例子中,低频度区域由具有第一区域以及第二区域的外侧的值的第四区域以及第五区域、和第三区域构成,低频度区域的张量的值不被量化。构成高频度区域的第一区域以及第二区域分别以7位的分辨率,进行均等的量化。据此,在量化中,能够使被分配到低频度区域的比特数降低到最小限。因此,能够进一步改善量化的精度。

在此,关于高频度区域以及低频度区域的决定方法,没有特殊的限定,例如可以从频度高的数据开始依次将由上位90%所包含的数据构成的区域,作为高频度区域。

并且,在图5所示的例子中,低频度区域的张量的值虽然不被量化,也可以与高频度区域相比,以大的量化步长间隔来量化。

并且,在图5所示的例子中,高频度区域中量化步长间隔虽然为均一,也可以按照频度来改变量化步长间隔。例如,以随着频度的增高,而使量化步长间隔变窄的方式,来设定量化步长间隔。

并且,在图5所示的例子中,虽然是按照频度来决定量化步长间隔的,也可以利用依照频度的指标来决定。例如以将张量的各要素的值(x)作为随机变量的概率分布p(x)为基准,测定以被量化的张量的各要素的值(x)作为随机变量的概率分布q(x)有多少差异,作为以该差异变小的量化的方法(量化步长间隔的决定方法等),来求出量化步长间隔。

以下利用图6至图8来说明该例子。图6是示出本实施方式的变形例所涉及的量化的范围的概略图。图7是示出本实施方式的变形例所涉及的量化步长间隔决定方法的一个例子的概略图。图8是示出本实施方式的变形例所涉及的量化步长间隔决定方法的其他的例子的概略图。

首先,设定进行量化的x的范围。例如图6的图表(b)所示,将存在数据的x的所有范围设定为量化的范围。或者,如图6的图表(c)所示,频度小的区域被视为范围外,将存在数据的x的值的一部分范围设定为量化的范围。

接着,设定量化步长间隔。例如,在将存在数据的x的所有范围设定为量化的范围的情况下(图6的图表(b)),以及将存在数据的x的值的一部分范围设定为量化的范围的情况下(图6的图表(c)),分别如图7的图表(a)以及图8的图表(a)所示,设定该量化的范围中的量化步长。

接着,如图7的图表(b)以及图8的图表(b)所示,求出与针对被设定的量化步长而被量化的张量的值对应的概率分布q(x)。准备多个这种量化的范围以及量化步长间隔不同的q(x)。接着,作为对两个概率分布p(x)、q(x)的不同进行测定的尺度,利用相对熵(Kullback-Leibler divergence)(该尺度越成为小的值,则q(x)越与p(x)近似),决定该尺度成为比规定的值小的q(x)。可以将针对该q(x)设定的量化步长间隔,作为要求出的量化步长间隔。例如可以将给出相对熵(Kullback-Leibler divergence)成为最小的q(x)的量化步长间隔,作为要求出的量化步长间隔。另外,相对熵(Kullback-Leibler divergence)可以由以下的式(1)来表示。

[数式1]

[1-5.运算方法]

接着,对参数生成部20中的运算方法的具体例子进行说明。在本实施方式所涉及的量化方法中,作为有可能利用的运算方法的例子,以下示出三个运算方法。

[1-5-1.m位定点]

对将浮点精度的数据量化为m位定点的数据的运算方法进行说明。在以x来表示浮点精度的数据时,将2

[数式2]

在此,函数Clip(a,MIN,MAX)是将变数a的值限定在MIN以上MAX以下的范围的函数,该定义由以下的式(3)来定义。

[数式3]

并且,上述式(2)的MIN以及MAX,由以下的式(4)以及式(5)来表现。

[数式4]

MIN=-2

[数式5]

MAX=(2

在使用这样的量化方法的情况下,作为量化参数而采用符号模式以及小数点位置。

符号模式是,表示FXP(x,m,n)的最小值是否为0以上的参数。例如,在FXP(x,m,n)的最小值为0以上时,就没有必要在负的值上分配比特,因此能够使比特数节约1比特。

小数点位置是能够表现MIN以上MAX以下的值的定点位置。例如,在能够以正态分布(高斯分布)来近似变数x的分布的情况下,通过获得上述的统计信息数据库18中包括的中位数、标准偏差等信息,从而能够决定小数点位置。另外,在此虽然对以正态分布来近似变数x的分布的例子进行了说明,变数x的分布并非受正态分布所限。在变数x的分布以其他的分布来近似的情况下,小数点位置也能够按照分布形状来恰当地决定。例如,在变数x的分布以混合正态分布来近似的情况下,可以按混合正态分布中包括的多个峰值的每一个,来决定小数点位置。

[1-5-2.对数]

对采用对数来量化浮点精度的数据的运算方法进行说明。在本运算方法中,取数据的值的对数,以对数尺度来分配比特。在该方法中,作为量化参数而使用对数最大值。对数最大值是,不超过从统计信息数据库18获得的浮点精度的数据的值的最大值的对数的最大值。

[1-5-3.三值以及二值]

对将浮点精度的数据量化为三值的运算方法进行说明。在本运算方法中,根据统计信息数据库,将作为张量的值的一个例子的浮点精度的数据量化为-1、0、+1这三值。在本量化中,使用正阈值、负阈值、正标度以及负标度这四个量化参数。正阈值是被量化为+1的最小的数值,负阈值是被量化为-1的最大的数值。并且,正标度以及负标度是分别与+1以及-1对应的系数。更详细而言,正标度是用于从+1开始对浮点的数据的值进行近似的系数,负标度是用于从-1开始对浮点的数据的值进行近似的系数。

例如,从统计信息数据库18获得数据的分布的中位数(median)、最小值以及最大值,决定从中位数在正方向以及负方向上的规定的范围,将该范围的数据的值量化为0。并且,将该范围的正方向以及负方向的阈值,分别决定为作为上述的量化参数的正阈值以及负阈值。而且,将最大值以及最小值的绝对值分别假定为+1以及-1的浮点近似值,将最大值以及最小值的绝对值分别决定为作为上述的量化参数的正标度以及负标度。

通过该量化方法,例如在卷积神经网络中的乘积累加运算中,权重与数据的值的乘法,能够以权重与+1、0、或-1的乘法来实现。即在乘积累加运算中,由于实质上不需要乘法,因此能够大幅度地减少运算量。

并且也可以是,根据统计信息数据库,将作为张量的值的一个例子的浮点精度的数据量化为-1、+1这二值。二值的量化能够被视为,将三值的量化中值-1与值0统合为一个值-1,能够使用将正阈值以及负阈值作为相同的值的一个阈值。正标度以及负标度即使在二值的量化中,也与三值的量化同样。

(实施方式2)

对实施方式2所涉及的网络量化方法等进行说明。本实施方式所涉及的网络量化方法与实施方式1所涉及的量化方法的不同之处是,根据测试数据集的统计信息,将测试数据集分类为多个类型,按每个类型来进行不同的处理。以下,针对采用了由本实施方式所涉及的网络量化方法、网络量化装置、以及网络量化方法生成的量化网络的推理方法,以与实施方式1不同之处为中心进行说明。

[2-1.网络量化装置]

首先,利用图9对本实施方式所涉及的网络量化装置的构成进行说明。图9是示出本实施方式所涉及的网络量化装置110的功能构成的概要的方框图。

如图9所示,网络量化装置110具备数据库构建部116、参数生成部120、以及网络构建部124。在本实施方式中,网络量化装置110进一步具备机器学习部28。本实施方式所涉及的网络量化装置110的数据库构建部116、参数生成部120以及网络构建部124,与实施方式1所涉及的网络量化装置10不同。

如实施方式1所述,按照神经网络14所使用的张量的值的分布,按张量的值的区域来改变量化步长间隔,据此,能够得到精度良好的量化网络。于是,在本实施方式中,通过按照多个测试数据集12的每个类型来进行量化,从而能够得到精度更好的量化网络。

本实施方式所涉及的数据库构建部116与实施方式1所涉及的数据库构建部同样,构建在将多个测试数据集输入到神经网络14的情况下得到的神经网络14所使用的张量的统计信息数据库。在本实施方式中,数据库构建部116根据多个测试数据集12的各自的统计信息,将多个测试数据集12的至少一部分分类为第一类型以及第二类型。例如,在作为多个测试数据集12而使用多个图像的情况下,根据图像的亮度等统计信息,多个图像被分类为白天室外的图像的类型、以及夜晚室外的图像的类型等。作为具体的运算方法,例如可以是,将针对多个测试数据集12所有的数据集的张量的分布估计为遵照混合正态分布,将该混合正态分布中包括的多个正态分布的每一个,作为一个类型来分类。在这种情况下,可以对多个测试数据集12的每一个与多个正态分布进行对照,来对各测试数据集进行分类。

由数据库构建部116构建的统计信息数据库118包括分别与第一类型以及第二类型对应的第一数据库子集以及第二数据库子集。换而言之,数据库构建部116对第一数据库子集进行构建,该第一数据库子集包括将多个测试数据集12中的属于第一类型的测试数据集输入到神经网络14的情况下而得到的神经网络14所使用的张量的统计信息。并且,数据库构建部116对第二数据库子集进行构建,该第二数据库子集包括将多个测试数据集12中的属于第二类型的测试数据集输入到神经网络14的情况下而得到的神经网络14所使用的张量的统计信息。

参数生成部120与实施方式1所涉及的参数生成部20同样,根据统计信息数据库和神经网络,对张量的值进行量化,据此,生成量化参数集122。在本实施方式中,量化参数集122包括与第一数据库子集以及第二数据库子集分别对应的第一参数子集以及第二参数子集。

网络构建部124与实施方式1所涉及的网络构建部24同样,使用量化参数集122来对神经网络进行量化,构建量化网络126。在本实施方式中,量化网络126包括与第一参数子集以及第二参数子集分别对应的第一网络子集以及第二网络子集。

据此,在本实施方式中,由于构建与多个测试数据集12的第一类型以及第二类型分别对应的量化网络,因此能够构建精度更加良好的量化网络。

并且,即使在本实施方式中也与实施方式1同样,机器学习部28使量化网络126进行机器学习。在本实施方式中,机器学习部28通过将第一类型以及第二类型的测试数据集分别输入到第一网络子集以及第二网络子集,来进行机器学习。量化网络126能够构建精度更加良好的量化网络130。

另外,数据库构建部116也可以将多个测试数据集12分类为三个以上的类型。并且,与此相对应地,统计信息数据库118可以包括三个以上的数据库子集,量化参数集122可以包括三个以上的参数子集。并且,量化网络126以及量化网络30也可以分别包括三个以上的网络子集。

[2-2.网络量化方法以及推理方法]

接着,利用图10对本实施方式所涉及的网络量化方法以及采用该网络量化方法的推理方法进行说明。图10是示出本实施方式所涉及的网络量化方法以及推理方法的流程图。

本实施方式所涉及的推理方法包括图10所示的流程图的所有步骤,本实施方式所涉及的网络量化方法包括图10所示的流程图中的从步骤S10到步骤S150的步骤。

如图10所示,在本实施方式所涉及的网络量化方法以及推理方法中,首先与实施方式1所涉及的网络量化方法同样,准备神经网络14(S10)。

接着,数据库构建部116根据多个测试数据集12的每个统计信息,将多个测试数据集12的至少一部分分类为第一类型以及第二类型(S115)。

接着,数据库构建部116对在将多个测试数据集12输入到神经网络14的情况下而得到的神经网络14所使用的张量的统计信息数据库118进行构建(S120)。在本实施方式中,统计信息数据库118包括与第一类型以及第二类型分别对应的第一数据库子集以及第二数据库子集。

接着,参数生成部120通过根据统计信息数据库118和神经网络14,对张量的值进行量化,从而生成量化参数集122(S130)。在本实施方式中,量化参数集122包括与第一数据库子集以及第二数据库子集分别对应的第一参数子集以及第二参数子集。

接着,网络构建部24使用量化参数集122对神经网络14进行量化,从而构建量化网络126(S140)。在本实施方式中,量化网络126包括通过分别使用第一参数子集以及第二参数子集来对神经网络14进行量化而被构建的第一网络子集以及第二网络子集。

接着,机器学习部28使量化网络126进行机器学习(S150)。机器学习部28通过将多个测试数据集12或其他的输入数据集输入到由网络构建部124构建的量化网络126,从而使量化网络126进行机器学习。在本实施方式中,机器学习部28通过将第一类型以及第二类型的测试数据集分别输入到第一网络子集以及第二网络子集,来进行机器学习。据此,量化网络126能够构建精度更加良好的量化网络130。另外,本实施方式所涉及的网络量化方法也可以不必包括机器学习步骤S150。

如以上所述,通过本实施方式所涉及的网络量化方法,能够精度良好地对神经网络进行量化。

接着,在本实施方式所涉及的推理方法中,通过上述的网络量化方法,利用被构建的量化网络126来执行推理。具体而言,首先,准备输入数据,选择第一类型以及第二类型之中的、被输入到量化网络126的输入数据被分类的类型(S160)。该步骤160例如可以由安装了量化网络126的计算机等对输入数据进行解析,根据输入数据的统计信息来选择类型。

接着,根据第一类型以及第二类型中的、在类型选择步骤S160被选择的类型,来选择第一网络子集以及第二网络子集的一方(S170)。该步骤160例如可以由安装了量化网络126的计算机等,选择与被选择的类型对应的网络子集。

接着,将输入数据输入到在网络选择步骤S170被选择的第一网络子集以及第二网络子集的一方(S180)。据此,在被选择的网络子集执行推理。

通过本实施方式所涉及的推理方法,由于能够利用被进行了上述的精度良好的量化的量化网络来执行推理,因此能够得到精度良好的推理结果。而且,在本实施方式中,由于利用适于输入数据的类型的量化网络来执行推理,因此能够得到精度更加良好的推理结果。

(变形例等)

以上基于各实施方式对本公开所涉及的网络量化方法等进行了说明,本公开并非受这些实施方式所限。在不脱离本公开的主旨的范围内,将本领域技术人员所能够想到的各种变形执行于各实施方式而得到的形态、以及对各实施方式中的一部分的构成要素进行组合而构建的其他的形态均包括在本公开的范围内。

例如,在上述的实施方式1的变形例所涉及的网络量化方法的参数生成步骤,可以根据统计信息数据库,来决定张量的值之中的频度不为零的量化区域、以及频度不为零且与量化区域不重叠的非量化区域,量化区域中的张量的值可以被量化,非量化区域中的张量的值可以不被量化。并且,上述的实施方式1的变形例所涉及的网络量化装置所具备的参数生成部,可以根据统计信息数据库,来决定张量的值之中的频度不为零的量化区域、以及频度不为零且不与量化区域重叠的非量化区域,量化区域中的张量的值可以被量化,非量化区域中的张量的值可以不被量化。

本变形例例如相当于如下的情况等,即在上述实施方式1所涉及的网络量化方法以及网络量化装置中,将第一区域以及第二区域的至少一部分决定为量化区域,将第三区域至第五区域的至少一部分决定为非量化区域,且不对非量化区域中的张量的值进行量化。

这样,通过选择将要进行量化的张量的值中频度不为零的张量的值,从而在将要进行量化的张量的值中包括频度为零的值的情况下,能够改善量化的精度。因此,能够构建精度良好的量化网络。

并且在本变形例中,量化区域可以包括张量的值之中的频度成为极大的值,非量化区域可以包括张量的值之中的比量化区域的频度低的值。

本变形例例如相当于如下的情况等,即在上述的实施方式1所涉及的网络量化方法以及网络量化装置中,将第一区域以及第二区域的至少一方决定为量化区域,将第三区域至第五区域的至少一部分决定为非量化区域,且不对非量化区域中的张量的值进行量化。

据此,量化区域由于包括张量的值之中的频度成为极大的值,因此能够进一步改善量化的精度。因此,能够构建精度更加良好的量化网络。

并且,在本变形例所涉及的网络量化方法的参数生成步骤中,可以使用依据频度的指标,来决定量化区域以及非量化区域。例如,在参数生成步骤中,可以按照对张量的值的分布与被量化的张量的值的分布的不同进行测定的尺度,来决定量化区域以及非量化区域。并且,网络量化装置的参数生成部可以按照对张量的值的分布与被量化的张量的值的分布的不同进行测定的尺度,来决定量化区域与非量化区域。作为这种尺度,例如可以使用相对熵(Kullback-Leibler divergence)。

并且,以下所示的形态可以包括在本公开的一个或多个形态的范围内。

(1)构成上述的网络量化装置的构成要素的一部分可以是,由微处理器、ROM、RAM、硬盘单元、显示器单元、键盘、鼠标等构成的计算机系统。在所述RAM或硬盘单元中可以存储计算机程序。所述微处理器通过按照所述计算机程序来工作,从而实现其功能。在此,计算机程序为了实现规定的功能,而通过示出针对计算机的指令的指令码被进行多个组合来构成。

(2)构成上述的网络量化装置的构成要素的一部分可以是,由一个系统LSI(LargeScale Integration:大规模集成电路)来构成。系统LSI是将多个构成部集成在一个芯片上而被制造的超多功能LSI,具体而言,是包括微处理器、ROM、RAM等而被构成的计算机系统。在所述RAM中存储计算机程序。所述微处理器通过按照所述计算机程序来进行工作,从而系统LSI实现其功能。

(3)构成上述的网络量化装置的构成要素的一部分可以是,由能够装卸于各装置的IC卡或单体的模块来构成。所述IC卡或所述模块是由微处理器、ROM、RAM等构成的计算机系统。所述IC卡或所述模块可以包括上述的超多功能LSI。微处理器通过按照计算机程序来工作,从而所述IC卡或所述模块实现其功能。该IC卡或该模块可以具有防篡改性。

(4)并且,构成上述的网络量化装置的构成要素的一部分,可以被记录在能够由计算机来读取所述计算机程序或所述数字信号的记录介质,例如可以被记录在软盘、硬盘、CD-ROM、MO、DVD、DVD-ROM、DVD-RAM、BD(Blu-ray(注册商标)Disc)、半导体存储器等。并且可以是被记录在这些记录介质的所述数字信号。

并且,构成上述的网络量化装置的构成要素的一部分,可以经由电通信线路、无线或有线通信线路、以互联网为代表的网络、数据广播等,来传输所述计算机程序或所述数字信号。

(5)本公开可以是以上所述的方法。并且,这些方法可以是由计算机来实现的计算机程序,也可以是由所述计算机程序构成的数字信号。

(6)并且,本公开可以是具备微处理器和存储器的计算机系统,所述存储器可以存储上述计算机程序,所述微处理器可以按照所述计算机程序来工作。

(7)并且,通过将所述程序或所述数字信号记录到所述记录介质并移送,或者将所述程序或所述数字信号经由所述网络等来移送,从而可以由独立的其他的计算机系统来执行。

(8)也可以对上述实施方式以及上述变形例分别进行组合。

产业上的可利用性

本公开作为神经网络向计算机等的安装方法,能够应用于图像处理方法等。

10、110 网络量化装置

12 测试数据集

14 神经网络

16、116 数据库构建部

18、118 统计信息数据库

20、120 参数生成部

22、122 量化参数集

24、124 网络构建部

26、30、126、130 量化网络

28 机器学习部

1000 计算机

1001 输入装置

1002 输出装置

1003 CPU

1004 内置存储装置

1005 RAM

1007 读取装置

1008 收发装置

1009 总线。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号