量化神经网络的有效初始化制造技术

技术编号:35407037 阅读:16 留言:0更新日期:2022-11-03 11:01
一种用于训练量化神经网络的系统,包括处理单元,适于:将训练后量化方法应用于训练的神经网络的全精度权重值集合,以计算量化权重值集合;使用该量化权重值集合初始化神经网络的模型权重值集合;以及使用量化训练方法来训练神经网络,以产生训练的量化权重值集合。以产生训练的量化权重值集合。以产生训练的量化权重值集合。

【技术实现步骤摘要】
【国外来华专利技术】量化神经网络的有效初始化

技术介绍

[0001]本公开中描述的一些实施例涉及执行神经网络的计算机化系统,更具体地,但不仅限于,使用量化值执行神经网络的计算机化系统。
[0002]术语神经网络通常用于描述模拟人类大脑和神经系统的计算机系统。神经网络通常涉及大量并行操作并且在层(或级(tiers))中排列和连接的处理对象。第一层接收类似于人类视觉处理中的视神经或人类声音处理中的听觉受体神经元的原始输入信息(一个或多个输入值)。每一个连续的层接收来自它之前的一个或多个层的输出,而不是来自原始输入——类似于远离视神经或听觉受体神经元的神经元接收来自靠近视神经或听觉受体神经元的神经元的信号。最后一层产生神经网络的输出。例如,在计算机视觉中,原始输入信息可以是一个或多个图像,输出可以是在图像中检测到的一个或多个特征分类。在用于回归的神经网络系统中,输出可以是根据原始输入信息中的一个或多个值计算的预测值。深度神经网络中的术语“深度”是指这种神经网络中的层数。神经网络层中的典型计算包括对输入值和相关权重的多个乘积求和,并将所得总和(有时称为激活值)映射到输出值。所得总和到输出值的映射可以是非线性变换,有时称为“激活函数”,在该值上完成,并表示由所得总和表示的信息是与给定输入相关还是应该被忽略。这种计算有时被称为“前向传递”或“前向传播”。训练神经网络是指根据输入值集合的计算输出值和预期输出值之间的误差项来调整神经网络的多层的多个权重值的过程,使得在下一次迭代中,计算输出值将比前一次迭代更接近已知的预期输出值。训练神经网络的目的是找到多个训练的权重值,这些权重值最小化计算的输出值和预期的输出值之间的误差项。根据误差项调整多层神经网络的多个权重值有时被称为“后向传递(backward pass)”或“后向传播(backward propagation)”。
[0003]机器学习的最新突破利用了大型深度神经网络,部署在强大的通用处理单元上。典型的深度神经网络包括数百万个参数,并且可能需要数百万次算术运算,并且对于在有限硬件上运行的应用,使用深度神经网络的实时处理可能需要超过许多设备(例如移动设备、一些嵌入式设备和一些定制硬件设备)能力的数字存储资源和功率资源。此外,当在有限的硬件上执行这样的应用时,计算延迟可能超过可接受的延迟阈值。一些移动设备应用需要利用神经网络,例如使用计算机视觉的移动设备应用。一些应用可以被设计成使得设备与远程服务(例如,云实现的服务)通信,该远程服务使用神经网络来执行计算。然而,这种架构需要网络连接,而网络连接可能并不总是可用的,并且可能导致延迟限制。神经网络的多个权重值存储在存储器中。减少存储每个权重所需的存储量可以允许在设备上安装比使用需要更大存储量的权重的神经网络更大的神经网络。此外,神经网络在各层之间传递激活值。减小多个激活值中的每一个的大小可以提高处理速度,以及减小层之间的通信带宽。
[0004]降低神经网络的计算和存储成本的一种方式是量化神经网络的多个权重值和激活值中的一些。量化是将输入从原始值的大集合约束到量化值的离散集合的过程。量化值的离散集合通常比原始值的大集合具有更少的值。
[0005]在一些神经网络中,多个权重值和多个激活矩阵值是实数(非整数)。一些减少计算和存储器负载的现有方法降低了多个权重值和多个激活矩阵值的精度,目的是允许更有效的存储器表示和更有效的计算,而不会显著影响神经网络输出的精确度。一些其他方法训练多个全精度神经网络权重值,这些权重值在神经网络的前向传递中被量化,并通过适应的后向传播方法被更新。与量化全精度训练的神经网络(也称为训练后量化)相比,以这种方式训练量化神经网络产生了其性能(通过神经网络的输出精确度测量)更接近于全精度神经网络的神经网络。

技术实现思路

[0006]本公开的目的是描述一种用于训练量化神经网络的系统和方法。
[0007]前述和其他目的通过独立权利要求的特征来实现。从从属权利要求、说明书和附图中,进一步的实施形式是显而易见的。
[0008]根据本专利技术的第一方面,一种用于训练量化神经网络的系统,包括处理单元,所述处理单元适于:将训练后量化方法应用于训练的神经网络的全精度权重值集合,以计算量化权重值集合;使用所述量化权重值集合初始化神经网络的模型权重值;以及使用量化训练方法训练所述神经网络以产生训练的量化权重值集合。
[0009]根据本专利技术的第二方面,一种用于训练神经网络的方法包括:将训练后量化方法应用于训练的神经网络的全精度权重值集合,以计算量化权重值集合;使用所述量化权重值集合初始化神经网络的模型权重值集合;以及使用量化训练方法训练所述神经网络,以产生训练的量化权重值集合。
[0010]根据本专利技术的第三方面,一种用于操作量化神经网络的系统,包括处理单元,所述处理单元适于:用训练的量化权重值集合初始化所述量化神经网络的量化模型权重值集合,所述训练的量化权重值集合通过以下方式计算:将训练后量化方法应用于训练的神经网络的全精度权重值集合,以计算量化权重值集合;使用所述量化权重值集合初始化神经网络的模型权重值集合;以及使用量化训练方法来训练所述神经网络,以产生训练的量化权重值集合;并接收输入数据;以及通过将所述输入数据输入所述量化神经网络以计算至少一个预测值。
[0011]参考第一和第二方面,在本专利技术第一和第二方面的第一可能实现中,所述神经网络包括多个层,每个层与所述训练的神经网络的多个训练的层之一相关联,并且对于所述多个层中的每一层,所述处理单元还适于:将训练后激活量化方法应用于从所述训练的神经网络的相应层提取的全精度层激活值集合,以计算优选层偏移值和优选层激活饱和因子;使用所述优选层偏移值初始化所述层的层偏移值;使用所述优选层激活饱和因子初始化所述层的层激活饱和因子;以及训练所述神经网络以进一步产生训练的量化层激活偏移值和训练的量化层激活饱和因子。由此产生的优选层偏移值和优选层激活饱和因子更接近期望的层偏移值和期望的层激活饱和因子,进一步最小化一个或多个误差项,减少训练量化神经网络所需的时间量,并增加训练的量化层激活偏移值和训练的量化层激活饱和因子的精确度,从而增加量化神经网络的输出的精确度,响应于输入数据,使用训练的量化层激活偏移值和训练的量化层激活饱和因子初始化。
[0012]参考第一和第二方面,或者第一和第二方面的第一实现,在本专利技术的第一和第二
方面的第二可能实现中,将所述训练后量化方法应用到所述全精度权重值集合以进一步计算至少一个缩放因子,并且将所述训练后量化方法应用到所述全精度权重值集合包括:计算量化权重值的优选集合和至少一个优选缩放因子,其最小化所述全精度权重值集合和使用所述量化权重值的优选集合和所述至少一个优选缩放因子计算的重建权重值集合之间的均方差;以及分别使用所述量化权重值的优选集合和所述至少一个缩放因子作为所述量化权重值的集合和所述至少一个缩放因子。使用如上所述产生的优选量化权重值集合减少了训练量化神经网络所需的时间量,并提高了所述训练量化权重值集合的精确度,从而提高了量化神经网络输出的精确度,所本文档来自技高网
...

【技术保护点】

【技术特征摘要】
【国外来华专利技术】1.一种用于训练量化神经网络的系统(200),包括处理单元(201),所述处理单元(201)适于:将训练后量化方法(110)应用(301)于训练的神经网络(101)的全精度权重值集合(102),以计算量化权重值集合(111);使用所述量化权重值集合初始化(305)神经网络的模型权重值集合;以及使用量化训练方法(130)训练(330)所述神经网络(135)以产生训练的量化权重值集合(141)。2.根据权利要求1所述的系统,其中,所述神经网络包括多个层,每个层与所述训练的神经网络的多个训练的层之一相关联;其中,对于所述多个层中的每一层,所述处理单元还适于:将训练后激活量化方法应用(313)于从所述训练的神经网络的相应层提取的全精度层激活值集合(102),以计算优选层偏移值(111)和优选层激活饱和因子(111);使用所述优选层偏移值初始化(315)所述层的层偏移值;使用所述优选层激活饱和因子初始化(316)所述层的层激活饱和因子;以及训练(330)所述神经网络以进一步产生训练的量化层激活偏移值和训练的量化层激活饱和因子。3.根据前述权利要求中任一项所述的系统,其中,将所述训练后量化方法应用(301)到所述全精度权重值集合以进一步计算至少一个缩放因子;以及其中,将所述训练后量化方法应用(301)到所述全精度权重值集合包括:计算(401)量化权重值的优选集合和至少一个优选缩放因子,其最小化所述全精度权重值集合和使用所述量化权重值的优选集合和所述至少一个优选缩放因子计算的重建权重值集合之间的均方差;以及分别使用(402)所述量化权重值的优选集合和所述至少一个缩放因子作为所述量化权重值的集合和所述至少一个缩放因子。4.根据前述权利要求中任一项所述的系统,其中,将所述训练后量化方法应用(301)到所述全精度权重值集合以进一步计算至少一个缩放因子;其中,使用所述量化训练方法(330)包括在多个训练迭代的每一个中将量化前向传递卷积方法(500)应用于所述模型权重值集合,包括:将所述量化训练方法的量化方法应用(501)到所述模型权重值集合,以产生量化模型权重值集合和至少一个模型缩放因子;以及将前向传递卷积方法应用(510)到所述量化模型权重值集合和所述至少一个模型缩放因子;以及其中,所述处理单元还适于:使用所述量化权重值集合和所述至少一个缩放因子以计算(303)调整后的量化权重值集合(121)和至少一个调整后的缩放因子(121),使得将所述训练神经网络的全精度前向传递卷积方法应用到所述量化权重值集合(111)和所述至少一个缩放因子(111)的全精度结果等于将所述量化前向传递卷积方法应用到所述调整后的量化权重值集合(121)和所述至
少一个调整后的缩放因子(121)的量化结果;以及当初始化(305)所述神经网络的模型权重值集合时,使用所述调整后的量化权重值集合代替所述量化权重值集合。5.根据权利要求4所述的系统,其中,将所述量化训练方法的量化方法应用(501)到所述模型权重值集合包括对于所述模型权重值集合中的每一个模型权重值,计算(600)所述量化模型权重值集合中的一个量化模型权重值,包括:通过从标识的整数位精度值中减去1来计算(601)精度幂值,所述精度幂值指示所述量化方法的精度;将所述模型权重值乘以(602)2,得到所述精度幂值的幂,以产生扩展的权重值;通过将所述扩展的权重值舍入到最接近的整数来计算(603)舍入项;通过在饱和范围内剪切所述舍入项来计算(604)剪切项;以及将所述剪切项除以(605)2,得到所述精度幂值的幂,以产生所述模型权重值的相应量化模型权重值;其中,使用所述量化训练方法(330)还包括在所述多个训练迭代的每一个中将量化后向传递更新方法应用于所述模型权重值集合,包括:根据所述量化模型权重值集合、识别的目标函数和使用所述神经网络执行所述多个训练迭代中的至少一些的结果,计算(701)量化权重梯度值集合,每个权重梯度值与所述模型权重值集合中的一个模型权重值相关联;以及将所述量化权重梯度值集合中的每一个量化权重梯度值乘以(702)将指示函数应用于与其相关联的相应权重值的结果,以产生梯度值集合;其中,计算(303)调整后的量化权重值集合包括将每个量化权重值除以(710)2,得到所述精度幂值的幂;以及其中,计算(303)所述至少一个调整后的缩放因子包括将所述至少一个缩放因子乘以(720)2,得到所述精度幂值的幂。6.根据权利要求4或5所述的系统,其中,所述处理单元还适于从训练和验证所述神经网络时使用的多个输入实例中选择(311)多个校准实例;以及其中,将所述训练后激活量化方法应用(313)到所述全精度层激活值集合包括:识别(801)多个层校准激活值集合,当由所述神经网络处理相应的校准实例时,针对所述多个校准实例中的一个来识别每个层校准激活值集合;计算(803)所述优选层偏移值,包括:通过在处理所述校准实例时为多个校准实例中的每一个识别所述层的相应层校准激活值集合的最小值,来识别(821)多个最小校准值;以及计算(823)所述多个最小校准值的平均值,以产生所述优选层偏移值;以及通过识别最小化所述多个层校准激活值集合和多个量化层校准激活值集合之间的总均方差的层激活饱和因子来计算(805)所述优选层激活饱和因子,所述计算使用所述层激活饱和因子、所述多个层校准激活值和所述优选层偏移值来进行,包括:通过为所述多个校准实例中的每一个计算校准实例误差来计算(831)多个校准实例误
差,包括:通过从所述标识的整数位精度值的2次幂的结果中减去1来计算(841)量化极限值;通过将所述量化极限值除以所述层激活饱和因子来计算(842)扩展项;通过从每个校准实例的相应层校准激活值集合中减去所述优选层偏移值来计算(843)移位值集合;通过将所述移位值集合中的每一个移位值乘以所述扩展项来计算(844)扩展项集合;通过使所述扩展项集合中的每一个扩展项饱和到识别的量化范围来计算(845)饱和项集合;通过将所述饱和项集合中的每一个饱和项舍入到最接近的整数值来计算(846)舍入项集合;通过将所述舍入项集合中的每一个舍入项除以所述扩展项来计算(...

【专利技术属性】
技术研发人员:尤尼
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:

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

1