用于学习低精度神经网络的方法及装置制造方法及图纸

技术编号:21116720 阅读:22 留言:0更新日期:2019-05-16 09:17
本发明专利技术提供一种用于学习低精度神经网络的方法及装置。所述方法包括:选择神经网络模型,其中所述神经网络模型包括多个层,且所述多个层中的每一者包括权重及激活;通过将多个量化层插入到所述神经网络模型内来修改所述神经网络模型;将成本函数与经修改的所述神经网络模型进行关联,其中所述成本函数包括与第一正则化项对应的第一系数,且所述第一系数的初始值是预定义的;以及训练经修改的所述神经网络模型,以通过增大所述第一系数来产生层的量化权重,直到所有权重均被量化且所述第一系数满足预定义的阈值为止,还包括优化所述量化权重的权重缩放因数及优化量化激活的激活缩放因数,其中所述量化权重是使用经优化的所述权重缩放因数进行量化。

【技术实现步骤摘要】
用于学习低精度神经网络的方法及装置[相关申请的交叉参考]本申请主张在2017年11月7日以及2017年11月8日在美国专利与商标局提出申请且被授予序列号62/582,848及62/583,390的美国临时专利申请的优先权、以及在2018年3月7日在美国专利与商标局提出申请且被授予序列号15/914,229的美国非临时专利申请的优先权,所述申请中的每一者的全部内容并入本申请供参考。
本公开大体来说涉及神经网络,且更具体来说,涉及将权重量化与激活量化进行组合的用于学习低精度神经网络的方法及装置。
技术介绍
深度神经网络近来在许多计算机视觉任务(例如,图像分类、对象检测、语义分割(semanticsegmentation)及超分辨率(superresolution))中实现了主要的性能突破。最先进的神经网络的性能得益于非常深的及过度参数化的多层架构。目前,通常在多于一百个层中存在数百万或数千万个参数。然而,在大量层中增加网络参数的数目需要使用高性能矢量计算处理器,例如配备有大量存储器的图形处理单元(graphicsprocessingunit,GPU)。此外,当对高分辨率图像及尺寸增大的视频进行处理时,对计算能力及存储器资源的需求迅速增长。近来,深度神经网络的低精度实施方式受到极大的关注,特别是对于资源受限器件(例如,由电池供电的移动器件或便携式器件)上的深度神经网络的部署而言。在这种平台中,存储器及能力是有限的。此外,可能不支持基本浮点算术运算(floating-pointarithmeticoperation)。低精度权重(例如,参数)及激活(例如,特征图)降低了计算成本并且降低了存储器要求。由此,当计算预算和电力预算有限时,低精度权重及激活是优选的,且有时需要以降低的功耗进行高效处理。通过使用较小位宽度的低精度权重及激活而不使用较大位宽度的全精度值也可减少存储器负担。
技术实现思路
根据一个实施例,一种用于学习低精度神经网络的方法包括:选择神经网络模型,其中所述神经网络模型包括多个层,且其中所述多个层中的每一者包括权重及激活;通过将多个量化层插入到所述神经网络模型内来修改所述神经网络模型;将成本函数与经修改的所述神经网络模型进行关联,其中所述成本函数包括与第一正则化项对应的第一系数,且其中所述第一系数的初始值是预定义的;以及训练经修改的所述神经网络模型,以通过增大所述第一系数来产生层的量化权重,直到所有权重均被量化且所述第一系数满足预定义的阈值为止,还包括优化所述量化权重的权重缩放因数以及优化量化激活的激活缩放因数,且其中所述量化权重是使用经优化的所述权重缩放因数进行量化。根据一个实施例,一种用于学习低精度神经网络的装置包括:选择器,被配置成选择神经网络模型,其中所述神经网络模型包括多个层,且其中所述多个层中的每一者包括权重及激活;插入器件,被配置成通过将多个量化层插入到所述神经网络模型内来修改所述神经网络模型;关联器件,被配置成将成本函数与经修改的所述神经网络模型进行关联,其中所述成本函数包括与第一正则化项对应的第一系数,且其中所述第一系数的初始值是预定义的;以及训练器件,被配置成训练经修改的所述神经网络模型,以通过增大所述第一系数来产生层的量化权重,直到所有权重均被量化且所述第一系数满足预定义的阈值为止,且优化所述量化权重的权重缩放因数以及优化量化激活的激活缩放因数,其中所述量化权重是使用经优化的所述权重缩放因数进行量化。附图说明结合附图阅读以下详细说明,以上及其他方面、特征及本公开某些实施例的优点将更显而易见,在附图中:图1示出根据本公开实施例的将权重量化与激活量化进行组合的用于一般非线性激活函数的低精度卷积层的方法的示例性流程图。图2示出根据本公开实施例的将权重量化与激活量化进行组合的用于修正线性单元(rectifiedlinearunit,ReLU)激活函数的低精度卷积层的方法的示例性流程图。图3示出根据本公开实施例的对低精度神经网络进行权重量化及激活量化的方法的示例性流程图。图4示出根据本公开实施例的将权重量化与激活量化进行组合的训练低精度神经网络的方法的示例性流程图。[符号的说明]100、200:低精度卷积层;101、201:卷积运算;103、203:偏置加法运算;105:第一比例因数乘法运算;107:非线性激活运算/第一非线性激活运算/激活运算;109:第二比例因数乘法运算;111、209:量化运算;113、211:运算;205:ReLU运算;207:比例因数乘法运算;301、303、305、307、309、311、401、403、405、407、409、411:步骤。具体实施方式在下文中,参照附图详细阐述本公开的实施例。应注意,相同的元件将由相同的参考编号指示,尽管它们示出在不同的附图中。在以下说明中,提供例如详细配置及组件等具体细节仅是为了帮助全面理解本公开的实施例。因此,对所属领域中的技术人员应显而易见,在不背离本公开的范围的条件下可对本文所述的实施例作出各种改变及修改。另外,为清晰及简洁起见,省略对众所周知的功能及构造的说明。以下所述的用语是考虑到本公开中的功能而定义的用语,且可根据使用者、使用者的意图或习惯而有所不同。因此,这些用语的定义应基于本说明书通篇的内容来确定。本公开可具有各种修改及各种实施例,以下参照附图详细阐述其中的一些实施例。然而应理解,本公开并非仅限于所述实施例,而是包括处于本公开的范围内的所有修改、等效形式及替代形式。尽管可能使用包括例如“第一(first)”、“第二(second)”等序数词的用语来阐述各种元件,但结构元件不受这些用语限制。这些用语仅用于区分各个元件。举例来说,在不背离本公开的范围的条件下,“第一结构元件”可被称为“第二结构元件”。相似地,“第二结构元件”也可被称为“第一结构元件”。本文中所用的用语“和/或(and/or)”包括一个或多个相关项的任意及所有组合。本文中所用的用语仅用于阐述本公开的各种实施例,而并非旨在限制本公开。除非上下文清楚地另外指明,否则单数形式旨在包括复数形式。在本公开中,应理解,用语“包括(include)”或“具有(have)”指示特征、数目、步骤、操作、结构元件、部件或其组合的存在,而不排除一个或多个其他特征、数字、步骤、操作、结构元件、部件或其组合的存在或添加的可能。除非进行不同地定义,否则本文中所用的所有用语具有与本公开所属领域中的技术人员所理解的含意相同的含意。例如在常用字典中所定义的用语等用语应被解释为具有与相关
中的上下文含意相同的含意,且除非在本公开中进行清楚定义,否则不应将其解释为具有理想化或过于正式的含意。根据一个实施例,本系统及方法获得具有量化权重及量化激活(例如,特征图)的低精度神经网络。量化权重及量化激活由低精度(例如,较低位宽度)的固定点数表示。在神经网络的每一个层中分别为权重及激活定义共用缩放因数(commonscalingfactor)以涵盖权重及激活的对于每一个层均发生变化的动态范围。本系统及方法提供权重量化及激活量化。对于权重量化而言,本系统在神经网络的每一个层中以权重的均方量化误差(meansquarequantizationerror,MSQE)的正则化系数对神本文档来自技高网
...

【技术保护点】
1.一种用于学习低精度神经网络的方法,包括:选择神经网络模型,其中所述神经网络模型包括多个层,且其中所述多个层中的每一者包括权重及激活;通过将多个量化层插入到所述神经网络模型内来修改所述神经网络模型;将成本函数与经修改的所述神经网络模型进行关联,其中所述成本函数包括与第一正则化项对应的第一系数,且其中所述第一系数的初始值是预定义的;以及训练经修改的所述神经网络模型,以通过增大所述第一系数来产生层的量化权重,直到所有权重均被量化且所述第一系数满足预定义的阈值为止,还包括优化所述量化权重的权重缩放因数以及优化量化激活的激活缩放因数,且其中所述量化权重是使用经优化的所述权重缩放因数进行量化。

【技术特征摘要】
2017.11.07 US 62/582,848;2017.11.08 US 62/583,390;1.一种用于学习低精度神经网络的方法,包括:选择神经网络模型,其中所述神经网络模型包括多个层,且其中所述多个层中的每一者包括权重及激活;通过将多个量化层插入到所述神经网络模型内来修改所述神经网络模型;将成本函数与经修改的所述神经网络模型进行关联,其中所述成本函数包括与第一正则化项对应的第一系数,且其中所述第一系数的初始值是预定义的;以及训练经修改的所述神经网络模型,以通过增大所述第一系数来产生层的量化权重,直到所有权重均被量化且所述第一系数满足预定义的阈值为止,还包括优化所述量化权重的权重缩放因数以及优化量化激活的激活缩放因数,且其中所述量化权重是使用经优化的所述权重缩放因数进行量化。2.根据权利要求1所述的方法,其中优化所述权重缩放因数及所述激活缩放因数是基于将均方量化误差最小化。3.根据权利要求1所述的方法,还包括:将所述多个量化层中的每一量化层插入到所述神经网络模型内每一个层中的每一激活输出之后。4.根据权利要求1所述的方法,其中所述成本函数包括与第二正则化项对应的第二系数,所述第二正则化项是基于所述权重缩放因数及所述激活缩放因数为2的幂数字。5.根据权利要求1所述的方法,还包括将所述量化权重、所述权重缩放因数及所述激活缩放因数应用于固定点神经网络,其中所述固定点神经网络包括多个卷积层,其中所述多个卷积层中的每一者包括:卷积运算,被配置成接收特征图及所述量化权重,偏置加法运算,被配置成接收所述卷积运算的输出、及偏置,第一乘法运算,被配置成接收所述偏置加法运算的输出、及第一比例因数,激活运算,被配置成接收所述第一乘法运算的输出,第二乘法运算,被配置成接收所述激活运算的输出、及第二比例因数,以及量化运算,被配置成接收所述第二乘法运算的输出。6.根据权利要求5所述的方法,其中所述权重是固定点权重。7.根据权利要求5所述的方法,其中所述第一比例因数是所述权重缩放因数与所述激活缩放因数的乘积。8.根据权利要求5所述的方法,其中所述激活运算是非线性激活函数。9.根据权利要求1所述的方法,其中训练所述神经网络包括:通过随机梯度下降方法来更新所述权重;通过所述随机梯度下降方法来更新所述权重缩放因数;通过所述随机梯度下降方法来更新所述激活缩放因数;如果所述权重缩放因数及所述激活缩放因数是2的幂,则包括所述随机梯度下降方法的附加梯度;通过所述随机梯度下降方法来更新所述第一系数;以及如果所述第一系数大于预定常数或者所述用于学习低精度神经网络的方法的迭代次数大于预定限值,则结束训练。10.根据权利要求1所述的方法,还包括将所述量化权重、所述权重缩放因数及所述激活缩放因数应用于固定点神经网络,其中所述固定点神经网络包括多个卷积层,其中所述多个卷积层中的每一者包括:卷积运算,被配置成接收特征图及所述量化权重,偏置加法运算,被配...

【专利技术属性】
技术研发人员:崔裕镇李正元莫斯塔法·伊尔哈米
申请(专利权)人:三星电子株式会社
类型:发明
国别省市:韩国,KR

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1