一种用于神经网络量化的方法和设备。描述了用于在深度神经网络中执行网络参数量化的设备和方法、系统和制造该设备的方法。一方面,确定神经网络的网络参数的损失函数的二阶偏导矩阵的对角线,然后使用所述对角线对网络参数进行加权,作为对网络参数进行量化操作的一部分,其中,二阶偏导矩阵是海赛矩阵。另一方面,使用网络参数的梯度的一阶矩估计和二阶矩估计对神经网络进行训练,然后使用所述二阶矩估计对所述网络参数进行加权,作为对所述网络参数进行量化操作的一部分。另一方面,通过使用熵约束的标量量化(ECSQ)迭代算法执行网络参数量化。另一方面,通过一次性地对深度神经网络的所有层的网络参数一起量化来执行网络参数量化。
【技术实现步骤摘要】
用于神经网络量化的方法和设备本申请要求于2016年10月19日提交的第62/409,961号美国临时专利申请和于2017年2月15日提交的第15/433,531号美国非临时专利申请的优先权,这些申请的全部内容通过引用合并于此。
本公开通常涉及深度神经网络,更具体地,涉及一种用于神经网络量化的方法和设备。
技术介绍
机器学习技术正在不断地发展,从网络搜索、内容过滤、商业网站自动推荐、自动化游戏、对象检测、图像分类、语音识别、机器翻译、药物发现和基因组学,已经开始支持现代社会的很多方面。目前机器学习领域中的最先进的技术是深度神经网络,其使用由多个处理层组成的计算模型,所述多个处理层学习具有多个抽象级别的数据表示(通常是极大量的数据),因此术语“深度学习”、“深度网络”等参见例如在Nature,卷521,pp.436-444(2015年5月28日)中的LeCun,Yann,YoshuaBengio和GeoffreyHinton的“Deeplearning”,其全部内容通过引用合并于此。机器学习的第一也是最重要的阶段是训练。考虑针对图像分类的机器学习系统。例如人、宠物、车辆和房屋的图像的大数据集被收集,每一个图像都标有相应的类别。在训练期间,机器被展示图像,并以分数向量的形式产生输出,每个类别对应一个输出。最终的目标是使正确的类别获得所有类别中的最高分,但这不可能发生在训练之前。在训练中使用测量输出分数与分数的期望模式(pattern)之间的误差(或差距)的目标函数。更具体地,机器修改其内部的可调参数以减少从目标函数计算的误差。这些可调参数,通常称为权重,用于定义机器的输入输出函数。在典型的深度学习系统中,可能有数亿个这样的可调权重/参数,以及用于训练机器的数亿个标识样本(example)。为了适当地调整权重向量,学习算法计算梯度向量,对于每个权重,梯度向量用如果权重增加了小部分而误差将增加或减少的数量来表示。然后在与梯度向量相反的方向上调整权重向量。通过所有训练样本平均的目标函数能够被看作是在权重值的高维空间中的一种丘陵景观。负梯度向量表示该景观中最陡的下降的方向,使其接近最小值,其中,平均输出误差较低。在实践中,通常使用被称为随机梯度下降(SGD)的过程。该过程包括示出一些样本的输入向量、计算输出和误差、计算这些样本的平均梯度、并相应地调整权重。此过程针对训练集中的许多小样本集进行重复,直到目标函数的平均值停止减小。因为每个小样本集给出了所有样本中的平均梯度的噪声估计,因此这就是所谓的随机。与更精细的优化技术相比,这个简单的过程通常会非常快速地找到一组好的权重。在训练之后,针对被称为测试集的不同样本集测量系统的性能。这用于测试机器的泛化能力—即,用于产生关于在训练期间从未见过的新的输入的合理答案的能力。如上所述,可存在数以亿计的网络参数/权重,其需要大量的存储器来存储。因此,尽管深度神经网络非常强大,但它们还需要大量的资源来实现,特别是在存储器方面。参见,例如在Advancesinneuralinformationprocessingsystems2012中的Krizhevsky、Alex、IlyaSutskever和GeoffreyE.Hinton的“Imagenetclassificationwithdeepconvolutionalneuralnetworks”(具有6100万个网络参数)以及在arXiv预印版arXiv:1409.1556(2014)中的Simonyan、Karen和AndrewZisserman的“Verydeepconvolutionalnetworksforlarge-scaleimagerecognition”(拥有1.38亿个网络参数),其全部内容通过引用合并于此。这使得在具有有限存储的装置(诸如移动/便携式装置)上部署深度神经网络变得困难。
技术实现思路
因此,本公开是为了至少解决本文描述的问题和/或缺点,并提供至少下面描述的优点。根据本公开的一方面,提供了一种神经网络量化方法,所述方法确定神经网络的网络参数的损失函数的二阶偏导矩阵的对角线,其中,所述二阶偏导矩阵是海赛矩阵,并且所述方法使用确定的对角线对所述网络参数进行加权,作为对所述网络参数进行量化操作的一部分。根据本公开的一方面,提供了一种神经网络量化方法,所述方法使用网络参数的梯度的一阶矩估计和二阶矩估计对神经网络进行训练,并且使用所述二阶矩估计对所述网络参数进行加权,作为对所述网络参数进行量化操作的一部分。根据本公开的一方面,提供了一种神经网络量化中的设备,包括:一个或更多个非易失性计算机可读介质以及至少一个处理器,其中,所述至少一个处理器在执行存储在所述一个或更多个非易失性计算机可读介质上的指令时执行以下步骤:确定神经网络的网络参数的损失函数的二阶偏导矩阵的对角线,其中,所述二阶偏导矩阵是海赛矩阵;使用确定的对角线对所述网络参数进行加权,作为对所述网络参数进行量化操作的一部分,其中,所述加权是海赛加权。根据本公开的一方面,提供了一种神经网络量化中的设备,包括:一个或更多个非易失性计算机可读介质;以及至少一个处理器,其中,所述至少一个处理器在执行存储在所述一个或更多个非易失性计算机可读介质上的指令时执行以下步骤:使用网络参数的梯度的一阶矩估计和二阶矩估计对神经网络进行训练;使用所述二阶矩估计对所述网络参数进行加权,作为对所述网络参数进行量化操作的一部分。根据本公开的一方面,提供了一种用于制造芯片组的方法,所述芯片组包括:至少一个处理器,其中,至少一个处理器在执行存储在一个或更多个非暂时性计算机可读介质上的指令时执行以下步骤:确定神经网络的网络参数的损失函数的二阶偏导矩阵的对角线,其中,所述二阶偏导矩阵是海赛矩阵;并且使用确定的对角线对所述网络参数进行加权,作为对所述网络参数进行量化操作的一部分,其中,所述加权是海赛加权;以及所述一个或更多个非暂时性计算机可读介质,存储所述指令和所述确定的对角线。根据本公开的一方面,提供了一种用于测试设备的方法,包括:测试所述设备是否具有至少一个处理器,其中,所述至少一个处理器在执行存储在一个或更多个非暂时性计算机可读介质上的指令时执行以下步骤:确定神经网络的网络参数的损失函数的二阶偏导矩阵的对角线,其中,所述二阶偏导矩阵是海赛矩阵;使用确定的对角线对所述网络参数进行加权,作为对所述网络参数进行量化操作的一部分,其中,所述加权是海赛加权;并且所述方法包括测试所述设备是否具有存储所述指令的所述一个或更多个非暂时性计算机可读介质。附图说明从以下结合附图的详细描述中,本公开的特定实施例的上述和其它方面、特征和优点将更加明显,其中:图1示出根据一个实施例的在完成神经网络训练之后实现的神经网络压缩技术的示例性示图;图2示出根据一个实施例的在完成神经网络训练之后实现的神经网络压缩技术的另一示例性示图;图3A示出根据一个实施例的用于网络量化的聚类和编码的示例性示图;图3B示出根据一个实施例的在解压缩期间对二进制编码的量化值进行解码的示例性示图;图4示出根据一个实施例的用于使用Lloyd(劳埃德)算法来执行k均值聚类的示例性流程图;图5示出根据本公开的实施例的使用网络量化技术的网络压缩本文档来自技高网...
![用于神经网络量化的方法和设备](https://img.jigao616.com/upload/patent/2018/4/28/54823259.gif)
【技术保护点】
一种用于神经网络量化的方法,包括:确定神经网络的网络参数的损失函数的二阶偏导矩阵的对角线,其中,所述二阶偏导矩阵是海赛矩阵;使用确定的对角线对所述网络参数进行加权,作为对所述网络参数进行量化操作的一部分,其中,所述加权是海塞加权。
【技术特征摘要】
2016.10.19 US 62/409,961;2017.02.15 US 15/433,5311.一种用于神经网络量化的方法,包括:确定神经网络的网络参数的损失函数的二阶偏导矩阵的对角线,其中,所述二阶偏导矩阵是海赛矩阵;使用确定的对角线对所述网络参数进行加权,作为对所述网络参数进行量化操作的一部分,其中,所述加权是海塞加权。2.如权利要求1所述的用于神经网络量化的方法,其中,通过将海赛加权的均值用作集群中心,经由所述网络参数的海赛加权的k均值聚类对所述网络参数进行量化。3.如权利要求2所述的用于神经网络量化的方法,其中,通过二进制编码对量化的网络参数进行编码。4.如权利要求1所述的用于神经网络量化的方法,其中,将海赛加权的均值用作集群中心通过均匀量化对所述网络参数进行聚类,并且通过可变长度二进制编码对量化的网络参数进行编码。5.如权利要求1所述的用于神经网络量化的方法,其中,神经网络是具有多个层的深度神经网络,并且同时对所有层执行量化。6.如权利要求1所述的用于神经网络量化的方法,其中,熵编码被使用,并且量化聚类通过使用熵约束的标量量化(ECSQ)来执行。7.如权利要求6所述的用于神经网络量化的方法,其中,将海赛加权的均值用作集群中心通过均匀量化对所述网络参数进行聚类。8.如权利要求6所述的用于神经网络量化的方法,其中,通过使用用于执行熵约束的标量量化(ECSQ)的迭代操作对所述网络参数进行聚类。9.如权利要求8所述的用于神经网络量化的方法,其中,通过使用迭代操作对所述网络参数进行聚类的步骤包括:根据集群的失真度量和聚类后的网络参数的熵来定义拉格朗日代价函数;迭代地分配并更新集群,直到拉格朗日代价函数减小到小于阈值。10.如权利要求8所述的用于神经网络量化的方法,其中,在执行迭代操作中使用海赛加权。11.一种用于神经网络量化的方法,包括:使用网络参数的梯度的一阶矩估计和二阶矩估计对神经网络进行训练;使用所述二阶矩估计对所述网络参数进行加权,作为对所述网络参数进行量化的一部分。12.如权利要求11所述的用于神经网络量化的方法,其中,通过随机梯度下降(SGD)优化器执行所述训练。13.一种神经网络量化中的设备,包括:一个或更多个非易失性计算机可读介质;至少一个处理器,其中,所述至少一个处理器在执行存储在所述一个或更多个非易失性计算机可读介质上的指令时执行以下步骤:确定神经网络的网络参数的损失函数的二阶偏...
【专利技术属性】
技术研发人员:崔柳真,李正元,穆斯塔法·艾尔可哈米,
申请(专利权)人:三星电子株式会社,
类型:发明
国别省市:韩国,KR
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。