使用条件权重操作神经网络的制作方法

allin2025-06-14  21


本发明的实施例大体上涉及基于神经网络架构的数据编码和解码领域。具体地,一些实施例涉及用于使用多个处理层编码和解码码流中的图像和/或视频的方法和装置。


背景技术:

1、几十年来,混合图像和视频编解码器一直用于压缩图像和视频数据。在这些编解码器中,信号通常通过对块进行预测和通过进一步仅对原始块与其预测之间的差值进行译码来以块方式编码。具体地,这种译码可以包括变换、量化和生成码流,通常包括一些熵译码。通常,混合译码方法的三个组成部分(变换、量化和熵译码)被单独优化。现代视频压缩标准,如高效视频编码(high-efficiency video,hevc)、多功能视频编码(versatilevideo coding,vvc)和基本视频编码(essential video,evc),也使用变换后的表示来编码预测后的残差信号。

2、最近,神经网络架构已应用于图像和/或视频译码。通常,这些基于神经网络(neural network,nn)的方法可以以各种不同的方式应用于图像和视频译码。例如,已经讨论了一些端到端优化的图像或视频译码框架。此外,深度学习已用于确定或优化端到端译码框架的一些部分,例如预测参数的选择或压缩等。此外,还讨论了一些基于神经网络的方法,用于混合图像和视频译码框架,例如,作为训练后的深度学习模型实现,以用于图像或视频译码中的帧内预测或帧间预测。

3、上面讨论的端到端优化图像或视频译码应用的共同点是,它们产生一些特征图数据,这些数据将在编码器与解码器之间传输。

4、神经网络是机器学习模型,该机器学习模型使用一个或多个非线性单元层,根据该一个或多个非线性单元层,该机器学习模型可以预测所接收的输入的输出。除了输出层之外,一些神经网络还包括一个或多个隐藏层。可以提供对应的特征图作为每个隐藏层的输出。每个隐藏层的这种对应的特征图可以用作网络中的后续层(即后续隐藏层或输出层)的输入。网络的每一层根据相应的参数集的当前值从所接收的输入生成输出。在不同设备之间(例如在编码器与解码器之间,或设备与云之间)划分的神经网络中,划分站点(例如第一设备)的输出侧的特征图被压缩并发送到该神经网络的其余层(例如第二设备)。

5、可以使用经训练的网络架构进一步改进编码和解码。


技术实现思路

1、本发明提供了用于改进包括神经网络的不同架构的设备/平台的设备互操作性的方法和装置。设备互操作性意味着:在两个设备/平台上使用相同的输入数据运行相同的过程为两个设备/平台提供相同的结果。具体地,在基于熵模型的数据(例如图像数据)的译码和/或压缩和解压缩的背景下,分别在编码侧和解码侧提供基本上位精确的处理结果是一个关键问题,以便提供相同或互补的技术效果。

2、上述和其它目的是通过由独立权利要求请求保护的主题来实现的。其它实现方式在从属权利要求、说明书和附图中显而易见。

3、具体的实现方式在所附独立权利要求中概述,其它实现方式在从属权利要求中定义。

4、根据第一方面,本发明涉及一种操作神经网络的方法,该神经网络包括神经网络层,该神经网络层包括或连接到用于缓存求和结果并具有预定义的累加寄存器大小的累加寄存器。该方法包括为神经网络层的输入数据的数据实体(例如数字、矢量或张量)中包括的整数的值定义整数下阈值a和整数上阈值b。此外,该方法包括:如果所述输入数据的数据实体中包括的整数的值小于所述定义的整数下阈值,则将所述输入数据的所述数据实体中包括的所述整数的所述值限幅至所述定义的整数下阈值,如果所述输入数据的数据实体中包括的整数的值大于所述定义的整数上阈值,则将所述输入数据的所述数据实体中包括的所述整数的所述值限幅至所述定义的整数上阈值。此外,该方法包括根据定义的整数下阈值、定义的整数上阈值和预定义的累加寄存器大小确定神经网络层的整数值权重(即,所确定的权重包括整数(例如仅整数)),从而可以避免累加寄存器的整数溢出。

5、根据第一方面的方法,神经网络的神经网络层的整数值权重被调节,从而在输入数据被限幅至定义的阈值的情况下,可以避免累加寄存器的整数溢出。因此,与现有技术相比,不同平台/设备之间的互操作性可以显著提高。权重的调节可以支持分别在编码器侧和解码器侧上对关键数值运算的位精确的再现,使得通过这些数值运算获得的技术效果相同或彼此互补。例如,当在编码器侧和解码器侧可以避免累加寄存器的整数溢出时,图像的区域(静止图像或视频序列的帧)可以在编码器侧(熵)编码,并在解码器侧重建而不被损坏。此外,通过提供根据第一方面的方法确定的条件权重,所涉及的设备的内部操作(状态)以基本上相同的方式定义。整数值权重可以被确定,从而可以以与下面将讨论的不同方式避免累加寄存器的整数溢出,但本发明不限于这些特定方式中的一种。

6、第一方面的方法适用于任意类型的神经网络层,包括全连接神经网络层和卷积神经网络层。第一方面的方法也可以有利地在变换器架构中实现,并且在这种情况下,神经网络层包括一些注意力机制(也参见下面的详细描述)。累加寄存器大小可以是n位,其中,n为正整数值,例如n=32位或n=16位。所存储的值在-2n-1至2n-1-1的范围内,或在0至2n-1的范围内。累加寄存器大小可以是固定大小,也可以动态分配。

7、根据一种实现方式,所述整数下阈值小于或等于0,所述整数上阈值大于或等于0。可以支持对输入数据的非负整数值(因此,正或负整数输入值)的限制,因为它被认为适合实际应用。

8、根据一种实现方式,整数下阈值a由-2k-1给出,整数上阈值b由2k-1-1给出,其中,k表示层输入数据的预定义位深度。层输入数据的位深度通常对于所使用的特定应用和配置是已知的,因此,容易用于定义应用于输入数据的限幅阈值。

9、条件权重通常由神经网络层用于执行求和处理。根据一种实现方式,神经网络层用于执行求和(在上述累加寄存器中累加):

10、

11、其中,d表示整数值(偏差),w表示可训练层权重wi的子集,x表示神经网络层的输入数据的集合和子集中的一个。卷积或更简单的代数乘法可以包括在求和过程中。

12、本文设想了用于确定整数值权重的特定具体公式,从而可以避免累加寄存器的整数溢出。根据一种实现方式,神经网络层的整数值权重{wi}被确定为满足以下条件:

13、

14、鉴于输入数据的值被限制在定义的下阈值a与上阈值b之间,如果这些条件满足,可以可靠地避免累加寄存器的整数溢出。需要说明的是,2n-1-1和2n-1仅作为累加寄存器大小的限制的示例给出,并且可以被适当地定义累加寄存器大小的其它限制所替换。

15、根据另一种实现方式,整数值权重{wi}被确定为满足以下条件:

16、

17、从而避免累加寄存器的整数溢出。

18、根据另一种实现方式,整数值权重{wi}被确定为满足以下条件:

19、

20、从而避免累加寄存器的整数溢出。最近的两个条件特别容易检查。需要说明的是,在所有以上所描述的实现方式中,偏置d可以等于零。

21、这些实现方式中针对卷积神经网络层的求和可以根据该层的维度(核数)不同地获得。对于一维神经网络层,该求和可以通过以下方式获得:

22、

23、其中,cin表示神经网络层的输入通道的数量,k1表示卷积核大小,j表示神经网络层的输出通道的索引。

24、对于二维层,求和可以通过以下方式获得:

25、

26、其中,cin表示神经网络层的输入通道的数量,k1和k2表示卷积核大小,j表示神经网络层的输出通道的索引,因此,对于n维卷积神经网络层,相同的求和可以通过以下方式获得:

27、

28、其中,cin表示神经网络层的输入通道的数量,k1、k2……kn表示卷积核大小,j表示神经网络层的输出通道的索引。对于所有这些和,必须满足神经网络层的每个输出通道的以上所描述的条件。

29、具体地,神经网络的神经网络层的用户相关应用权重可以被提供(例如,作为实值权重,即,权重包括实数,例如,仅实数)。在实值权重的情况下,也可以有利地使用第一方面的方法及其实现方式。在这种情况下,根据一种实现方式,假设实值权重通过第一缩放因子缩放以获得缩放权重,并且缩放权重可以舍入到相应的最接近的整数值以获得整数值权重。缩放因子可以以高灵活性选择。由2sj给出的第一缩放因子可以认为是合适的,其中,sj表示比特数,比特数表示实值权重的小数部分。

30、具体地,根据第一方面的方法的实现方式,所述至少一个神经网络层的第j输出通道的第一缩放因子的sj满足以下条件:

31、

32、其中,wj表示所述至少一个神经网络层的可训练权重的子集,|wj|表示子集wj中的元素数量,n表示所述累加寄存器的位大小,k表示所述输入数据的预定义位深度,bj表示偏置值。

33、根据另一种实现方式,所述至少一个神经网络层的第j输出通道的第二缩放因子的sj由以下公式给出:

34、

35、根据另一种实现方式,条件是:

36、

37、以及

38、

39、cin是至少一个神经网络层的输入通道的数量。

40、所有这些条件都可以保证不会发生整数溢出。

41、类似地,根据一种实现方式,该方法包括通过第二缩放因子缩放输入数据(具有实数或整数)的数据实体,以获得数据实体的缩放值。数据实体的缩放值可以舍入到相应的最接近的整数值,以获得数据实体的整数值。舍入可以通过向下取整(floor)函数或向上取整(ceil)函数来完成。

42、如上所述,第一方面的方法可以有利地应用于具有与以上所讨论的相同或相似优点的数据译码(编码和解码)。因此,根据第二方面,提供了一种编码数据的方法,包括根据第一方面或其任何实现方式的操作神经网络的方法的步骤。在第二方面的方法的一种实现方式中,编码所述数据包括通过神经网络提供熵模型和根据所述提供的熵模型对所述数据进行熵编码,其中,所述提供所述熵模型包括执行根据第一方面或其任何实现方式的操作神经网络的方法的步骤。在熵译码的背景下,就编码器侧和解码器侧使用的熵模型的基本位精确的再现而言,不同平台之间的互操作性对于(压缩)数据的可靠重建至关重要。

43、熵模型提供待编码或解码的符号的统计(概率)性质,例如平均值、方差、(交叉)相关性等,并且可以通过以下中的一项提供:(a)变分自动编码器的超先验,(b)变分自动编码器的自回归先验,(c)变分自动编码器的超先验和自回归先验的组合。因此,第二方面的方法可以有利地在(变分)自动编码系统中实现(另参见下面的详细描述)。

44、根据第三方面(并对第二方面进行补充),提供了一种解码经编码的数据的方法,包括根据第一方面或其任何实现方式的操作神经网络的方法的步骤。根据第三方面的一种实现方式,解码所述数据包括通过神经网络提供熵模型和根据所述提供的熵模型对所述数据进行熵解码,其中,所述数据的熵解码包括根据第一方面或其任何实现方式的操作神经网络的方法的步骤。此外,在解码器侧,根据第三方面的实现方式,熵模型通过以下中的一项提供:(a)变分自动编码器的超先验,(b)变分自动编码器的自回归先验,(c)变分自动编码器的超先验和自回归先验的组合。

45、通过第二或第三方面的方法处理的数据可以是图像数据,例如表示静止图像或视频序列的帧。

46、根据第四方面,提供了一种对图像的至少一部分进行编码的方法,包括将表示图像的分量的张量变换为潜在张量,提供熵模型;根据所述提供的熵模型通过神经网络处理潜在张量以生成码流,其中,提供熵模型包括执行根据第一方面或其实现方式的方法的步骤(具有与以上所描述相似的优点)。根据第四方面的实现方式,熵模型通过以下中的一项提供:(a)变分自动编码器的超先验,(b)变分自动编码器的自回归先验,(c)变分自动编码器的超先验和自回归先验的组合。

47、根据第五方面,提供了一种重建图像的至少一部分的方法,包括提供熵模型,根据所述提供的熵模型通过神经网络处理码流以获得表示图像的分量的潜在张量,以及处理潜在张量以获得表示图像的所述分量的张量,其中,提供所述熵模型包括执行根据第一方面或其实现方式的方法的步骤(具有与以上所描述相似的优点)。此外,熵模型可以通过以下中的一项提供:(a)变分自动编码器的超先验,(b)变分自动编码器的自回归先验,(c)变分自动编码器的超先验和自回归先验的组合。

48、例如,上述图像分量可以是y、u或v分量,或者可以是r、g、b分量。

49、根据第六方面,本发明涉及一种操作神经网络的方法,所述神经网络包括至少一个神经网络层,所述神经网络层包括或连接到用于缓存求和结果的累加寄存器。该方法包括为所述至少一个神经网络层的输入数据的数据实体中包括的整数的值定义整数下阈值和整数上阈值。该方法还包括:如果所述输入数据的数据实体中包括的整数的值小于所述定义的整数下阈值,则将所述输入数据的所述数据实体中包括的所述整数的所述值限幅至所述定义的整数下阈值,如果所述输入数据的数据实体中包括的整数的值大于所述定义的整数上阈值,则将所述输入数据的所述数据实体中包括的所述整数的所述值限幅至所述定义的整数上阈值,从而避免所述累加寄存器的整数溢出。

50、根据第六方面的方法,由于对输入到神经网络层的整数值数据(包括整数)的限幅,所以与现有技术相比,不同平台/设备之间的互操作性可以显著提高。限幅可以支持分别在编码器侧和解码器侧上对关键数值运算的位精确的再现,使得通过这些数值运算获得的技术效果相同或彼此互补。例如,当可能导致不同平台上不可确定行为的整数溢出可以可靠地避免时,图像(静止图像或视频序列的帧)的区域可以在编码器侧(熵)编码,并在解码器侧重建而不被损坏。通常,对溢出情况没有标准化的处理,在这方面几乎没有任何普遍遵循的过程。当算术运算尝试创建超出可用给定位数表示的范围的数值时,会发生整数溢出,高于最大值或低于最小可表示值。对于不同的编译器、设备(cpu、gpu)等,这种情况可以不同地处理。为了在不同平台上实现整数运算的位精确的结果,应避免整数溢出。根据第六方面的方法,可以在编码器侧和解码器侧避免累加寄存器的整数溢出。此外,根据第六方面的方法,通过提供输入数据值的限幅,所涉及的设备的内部操作(状态)以基本上相同的方式定义。

51、根据一种实现方式,第六方面的方法还包括将具有实数的输入数据的数据实体按第一缩放因子缩放(即,输入数据的数据实体乘以第一缩放因子),以获得输入数据的数据实体的缩放值。可以执行缩放以改进不同设备上输入数据值的处理。具体地,缩放可以通过将输入数据的数据实体的缩放值舍入到相应的最接近的整数值来补充,以获得所述输入数据的所述数据实体的整数值。因此,包括最初可能提供的实数的输入数据可以通过所公开的操作神经网络的方法来处理。

52、输出数据可以通过至少一个神经网络层处理输入数据而获得,根据一种实现方式,当应用第一缩放因子时,输出数据包括的输出数据实体除以第一缩放因子,以获得去缩放结果。去缩放可以直接对至少一个神经网络层的输出执行,也可以在激活函数处理之后执行。因此,根据一种实现方式,输入数据由至少一个神经网络层处理以获得包括输出数据实体的输出数据,输出数据实体由激活函数处理以获得激活函数的输出,激活函数的输出除以第一缩放因子。

53、根据另一种实现方式,第六方面的方法还包括:通过所述至少一个神经网络层处理所述输入数据以获得包括输出数据实体的输出数据,将第一缩放因子分解为第一部分和第二部分,将所述输出数据实体除以所述分解后的第一缩放因子的所述第一部分以获得部分未缩放的输出数据实体,通过激活函数对所述部分未缩放的输出数据实体进行处理以获得所述激活函数的输出,并将所述激活函数的所述输出除以所述分解后的第一缩放因子的所述第二部分。由于可以实现去缩放的所有选项,所以去缩放过程可以以高灵活性执行。

54、第六方面的方法中使用的上述整数下阈值可以小于或等于0,整数上阈值可以大于或等于0。所使用的阈值的合适的可能选择是-2k-1用于整数下阈值,2k-1-1用于整数上阈值,其中,k表示输入数据的预定义位深度(位大小)。

55、第六方面的方法可以有利地应用于任何类型的神经网络和神经网络层。根据一种实现方式,所述至少一个神经网络层是或包括全连接神经网络层和卷积神经网络层中的一个。此外,所述至少一个神经网络层可以包括注意力机制(参见下面的详细描述)。

56、根据一种实现方式,所述至少一个神经网络层包括整数值权重(包括中间数)。因此,平台/设备的互操作性甚至可以进一步改进,并且累加寄存器大小整数溢出的风险可以进一步降低(另参见下文的描述)。

57、根据一种实现方式,实值权重(包括实数的权重)最初被提供或由第二缩放因子缩放以获得缩放权重,并且缩放权重被舍入到相应的最接近的整数值,以获得至少一个神经网络的整数值权重。因此,第六方面的方法可以用于最初提供的(例如,用户依赖)实值权重。

58、第二缩放因子可以适当地由表示实值权重的小数部分的比特数给出。具体地,根据一种实现方式,所述至少一个神经网络层的第j输出通道的第二缩放因子的sj满足以下条件:

59、

60、其中,wj表示所述至少一个神经网络层的可训练权重的子集,|wj|表示子集wj中的元素数量,n表示所述累加寄存器的位大小,k表示所述输入数据的预定义位深度,bj表示偏置值。

61、根据另一种实现方式,所述至少一个神经网络层的第j输出通道的第二缩放因子的sj由以下公式给出:

62、

63、根据另一种实现方式,条件是:

64、

65、以及

66、

67、cin是至少一个神经网络层的输入通道的数量。

68、所有这些条件都可以保证不会发生整数溢出。

69、如上所述,第六方面的方法可以有利地应用于具有与以上所讨论的相同或相似优点的数据译码(编码和解码)。数据的编码解码,具体是基于熵译码,表示一个微妙的过程,其中,在不同设备上执行的至少一些过程的互操作性应给出相同的数值精度结果。因此,根据第七方面,提供了一种编码数据的方法,包括根据第六方面或其任何实现方式的操作神经网络的方法的步骤(具有与以上所描述相同的优点)。在第七方面的方法的一种实现方式中,编码所述数据包括通过神经网络提供熵模型和根据所述提供的熵模型对所述数据进行熵编码,其中,所述提供所述熵模型包括执行根据第六方面或其任何实现方式的操作神经网络的方法的步骤。熵编码可以包括通过算术编码器进行熵编码。

70、在熵译码的背景下,就编码器侧和解码器侧使用的熵模型的基本位精确的再现而言,不同平台之间的互操作性对于(压缩)数据的可靠重建至关重要。

71、熵模型提供待编码或解码的符号的统计(概率)性质,例如平均值、方差、(交叉)相关性等,并且可以通过以下中的一项提供:(a)变分自动编码器的超先验,(b)变分自动编码器的自回归先验,(c)变分自动编码器的超先验和自回归先验的组合。因此,第七方面的方法可以有利地在(变分)自动编码系统中实现(另参见下面的详细描述)。

72、如以上所描述的编码数据的方法还可以包括向解码器侧指示所述定义的下阈值和所述定义的上阈值。因此,解码器侧可以容易具有与编码器侧执行的输入数据的限幅过程有关的相同处理所需的信息。类似地,第一缩放因子、第二缩放因子和第三缩放因子中的至少一个可以在码流中向解码器侧指示。

73、此外,该方法可以包括向解码器侧指示到预定义的下阈值的差值和到预定义的上阈值的差值。此外,该方法可以包括在码流中向解码器侧指示与预定义的第一缩放因子的差值和与预定义的第二缩放因子的差值中的至少一个。指数哥伦布编码可以用于指示。

74、根据第八方面(并对第七方面进行补充),提供了一种解码经编码的数据的方法,包括根据第六方面或其任何实现方式的操作神经网络的方法的步骤(具有与以上所描述相同的优点)。根据第八方面的一种实现方式,解码所述数据包括通过神经网络提供熵模型和根据所述提供的熵模型对所述数据进行熵解码,其中,所述数据的熵解码包括根据第六方面或其任何实现方式的操作神经网络的方法的步骤。熵解码可以包括通过算术解码器进行熵解码。此外,在解码器侧,根据第八方面的实现方式,熵模型通过以下中的一项提供:(a)变分自动编码器的超先验,(b)变分自动编码器的自回归先验,(c)变分自动编码器的超先验和自回归先验的组合。

75、关于定义的下阈值和定义的上阈值的信息可以由解码器侧在来自编码器侧的码流中接收。类似地,关于第一缩放因子、第二缩放因子和第三缩放因子中的至少一个的信息可以由解码器侧在来自编码器侧的码流中接收。

76、此外,该方法可以包括向解码器侧接收关于与预定义的下阈值的差值和与预定义的上阈值的差值的信息。此外,该方法可以包括在码流中向解码器侧指示关于与预定义的第一缩放因子的差值和与预定义的第二缩放因子的差值中的至少一个的信息。

77、通过第二或第八方面的方法处理的数据可以是图像数据,例如表示静止图像或视频序列的帧。

78、根据第九方面,提供了一种对图像的至少一部分进行编码的方法,包括将表示图像的分量的张量变换为潜在张量,提供熵模型;根据所述提供的熵模型通过神经网络处理潜在张量以生成码流,其中,提供熵模型包括执行第六方面或其实现方式的方法的步骤(具有与以上所描述相同的优点)。潜在张量可以通过算术编码器进行处理。

79、熵模型可以通过以下中的一项提供:(a)变分自动编码器的超先验,(b)变分自动编码器的自回归先验,(c)变分自动编码器的超先验和自回归先验的组合。

80、根据一种实现方式,第九方面的方法还包括在所述码流中向解码器侧指示所述定义的下阈值和所述定义的上阈值。

81、此外,第一缩放因子、第二缩放因子和第三缩放因子中的至少一个可以在码流中向解码器侧指示。

82、此外,该方法可以包括向解码器侧指示到预定义的下阈值的差值和到预定义的上阈值的差值。此外,该方法可以包括在码流中向解码器侧指示与预定义的第一缩放因子的差值和与预定义的第二缩放因子的差值中的至少一个。指数哥伦布编码可以用于指示。

83、根据第方面,提供了一种重建图像的至少一部分的方法,包括提供熵模型,根据所述提供的熵模型通过神经网络处理码流以获得表示图像的分量的潜在张量,以及处理潜在张量以获得表示图像的所述分量的张量,提供熵模型包括执行根据第六方面的操作神经网络的方法的步骤,或该方法的任何实现方式(具有与以上所描述相同的优点)被提供。处理码流可以通过算术解码器执行。熵模型可以通过以下中的一项提供:(a)变分自动编码器的超先验,(b)变分自动编码器的自回归先验,(c)变分自动编码器的超先验和自回归先验的组合。

84、根据一种实现方式,第十方面的方法包括从码流中读取关于定义的下阈值和定义的上阈值的信息。此外,可以从码流中读取第一缩放因子、第二缩放因子和第三缩放因子中的至少一个。

85、此外,该方法可以包括向解码器侧指示关于与预定义的下阈值的差值和与预定义的上阈值的差值的信息。此外,该方法可以包括在码流中向解码器侧指示关于与预定义的第一缩放因子的差值和与预定义的第二缩放因子的差值中的至少一个的信息。

86、根据第三方面和第九方面的方法,张量表示的图像的分量可以是y、u或v分量,或是r、g、b分量。

87、根据第十一方面,提供了一种神经网络,包括:神经网络层,用于处理输入数据以获得输出数据,以及激活函数,用于处理所述输出数据以获得激活函数输出数据;第一单元,用于缩放、舍入和限幅待输入所述神经网络层的所述输入数据;第二单元,用于对所述输出数据和所述激活函数输出数据中的至少一个进行去缩放。第一单元可以分为子单元,每个子单元用于不同的操作,因为输入数据的缩放、舍入和限幅以及第一单元和每个子单元的开和关操作分别可以是可切换的。

88、第一单元可以用于执行根据第一至第六方面及其实现方式的方法的步骤。

89、根据一种实现方式,第十一方面的神经网络用于执行根据第一至第六方面及其实现方式的方法的步骤。

90、根据第十二方面,提供了一种用于编码图像的至少一部分的装置,包括根据第十一方面及其实现方式的神经网络。第十二方面的装置可以包括以下中的一项:(a)变分自动编码器的超先验,(b)变分自动编码器的自回归先验,(c)变分自动编码器的超先验和自回归先验的组合,每个先验包括第十一方面或其实现方式的神经网络。

91、根据第十三方面,提供了一种用于解码经编码的图像的至少一部分的装置,包括根据第十一方面及其实现方式的神经网络。可以是用于解码图像的至少一部分的装置,并且可以包括以下中的一项:(a)变分自动编码器的超先验,(b)变分自动编码器的自回归先验,(c)变分自动编码器的超先验和自回归先验的组合,每个先验包括第十一方面或其实现方式的神经网络。

92、为了保证整个神经网络的设备互操作性,需要不同平台/设备上激活函数的位精确的再现性。对于线性和相对简单的非线性激活函数,例如,基本上定义了限幅过程的relu函数,这一要求可以相对容易满足。对于更复杂的非线性,具体是那些包括如等指数函数的非线性,计算结果在不同的平台上可以不同,因为指数计算的相应的精度可以不同,即使输入是整数值,并且输出舍入为整数值,结果也可以不同,因为舍入前存在小差异。因此,对于需要在神经网络上进行位精确的推理的系统,用一些可以在不同平台上以位精确的形式计算的近似函数来替换数学定义的激活函数的这种非线性是至关重要的问题。

93、因此,根据第十四方面,提供了一种神经网络,包括至少一个神经网络层和连接到所述至少一个神经网络层的输出的激活函数,其中,所述激活函数被实现为数学定义的实值非线性激活函数的近似函数(以实数作为参数并输出实数),并且其中,所述近似函数支持近似函数输入值的定点表示的仅整数处理。

94、在定点表示/算术中,实数以形式mantissa*baseexponent表示,其中,基底(base)和指数(exponent)都是固定的,因此,小数的定点表示基本上是整数(另参见下面的详细描述)。

95、近似函数近似本领域中使用的数学定义的实值非线性激活函数(其通常包括一个或多个指数函数(具有基底e)和处理输入值的浮点表示),使输入值的定点表示的仅整数处理成为可能(例如,对于relu函数)。

96、仅整数处理支持定点神经网络,因为可以获得不同平台上的位精确的行为。因此,与现有技术相比,不同平台/设备之间的互操作性可以显著提高。提供这种近似激活函数可以支持分别在编码器侧和解码器侧上对关键数值运算的位精确的再现,使得通过这些数值运算获得的技术效果相同或彼此互补。例如,当可以获得两侧的位精确的行为时,图像的区域(静止图像或视频序列的帧)可以在编码器侧(熵)编码,并在解码器侧重建而不被损坏。此外,通过为彼此通信的不同设备提供包括根据第十四方面的近似激活函数的神经网络,所涉及的设备的内部操作(状态)以基本上相同的方式定义。在第十四方面的神经网络中实现的近似激活函数可以以不同的方式选择,如下面将讨论的,但本发明不限于这些特定方式中的一种。

97、根据一种实现方式,近似函数包括多项式函数、有理函数、有限泰勒级数、relu函数、leakyrelu函数和参数relu函数中的至少一个。根据第十四方面的神经网络的进一步的实现方式,数学定义的非线性激活函数(即由近似激活函数近似)选自由以下组成的组:softmax函数、sigmoid函数、双曲正切函数、swish函数、高斯误差线性单位函数和缩放指数线性单位函数。对于所有这些数学定义的非线性激活函数(这些函数可能被认为适合于实际应用),可以找到支持仅整数处理输入值的定点表示的近似函数。

98、根据一种实现方式,近似函数(近似激活函数)包括有限数量的泰勒级数被加数,所述泰勒级数被加数根据以下中的至少一个确定:(a)到至少一个神经网络层或近似函数的数据输入的预期输入值,(b)用于缓存由神经网络包括的求和结果的累加寄存器的累加寄存器大小,(c)近似函数。

99、根据另一种实现方式,近似函数是多项式函数,其最大次数根据以下中的至少一项确定:(a)到至少一个神经网络层或近似函数的数据输入的预期输入值,(b)用于缓存由神经网络包括的求和结果的累加寄存器的累加寄存器大小,(c)近似函数。

100、根据另一种实现方式,所述近似函数是有理函数,所述有理函数的分子和分母中多项式的最大次数根据以下中的至少一个确定:(a)到至少一个神经网络层或近似函数的数据输入的预期输入值,(b)用于缓存由神经网络包括的求和结果的累加寄存器的累加寄存器大小,(c)近似函数。

101、当使用数学定义的非线性激活函数f(x)的泰勒级数时,根据实现方式可以观察到以下情况:

102、-2n-1≤(x-a)i≤2n-1–1,其中,i=0、1、2……k-1,

103、其中,i=0、1、2……k-1

104、以及

105、

106、其中,k表示用于近似数学定义的非线性激活函数f(x)的泰勒级数的被加数,n表示包括在至少一个神经网络层中的累加寄存器的位深度。当满足这些条件时,有利的是,可以可靠地避免可能由传统激活函数引起并可能导致不同平台上不可确定行为的整数溢出。

107、需要说明的是,2n-1-1和-2n-1仅是累加寄存器大小限制的示例,并且可以在条件中由适当地定义累加寄存器大小的其它限制所替换。

108、在许多应用中特别重要的激活函数是(i表示输入向量的第i分量是softmax函数的参数,其中,(归一化)和对该输入向量的所有k个分量执行)。例如,softmax函数可以通过在概率分布上标准化(最终)神经网络层的输出来在分类任务的上下文中使用。

109、根据第十四方面的神经网络的实现方式,数学定义的非线性激活函数是softmax函数,近似函数(近似激活函数)定义为:

110、

111、其中,ε表示避免除以零的(小)正常数。

112、根据另一种实现方式,(近似激活函数)由下式定义:

113、

114、其中,ε表示避免除以零的(小)正常数。

115、例如,根据输入向量x的分量的预期值,正常数ε可以很容易选择。例如,正常数ε可以在10-15至10-11的范围内。

116、数值实验证明,基于relu函数的softmax函数的这些近似函数可以保证激活函数在不同平台上应用的位精确的行为。

117、近似激活函数的实现方式可以有利地在任何神经网络中实现。具体地,神经网络可以是卷积或全连接神经网络,也可以是卷积或全连接神经网络层。

118、根据第十五方面,提供了一种操作包括至少一个神经网络层的神经网络(例如卷积或全连接神经网络)的方法(具有与第十四方面的神经网络提供的相同的优点),该方法包括实现数学定义的实值非线性激活函数的近似函数,作为所述至少一个神经网络层的激活函数,其中,所述近似函数支持仅整数处理所述近似函数的输入值的定点表示。

119、根据一种实现方式,近似函数包括多项式函数、有理函数、有限泰勒级数、relu函数、leakyrelu函数和参数relu函数中的至少一个。根据进一步的实现方式,数学定义的非线性激活函数选自由以下组成的组:softmax函数、sigmoid函数、双曲正切函数、swish函数、高斯误差线性单位函数和缩放指数线性单位函数。

120、近似函数可以包括有限数量的泰勒级数被加数,所述泰勒级数被加数是根据到至少一个神经网络层或近似函数的输入数据的预期输入值确定的。

121、对于数学定义的非线性激活函数f(x)的泰勒级数以下可以成立:

122、-2n-1≤(x-a)i≤2n-1–1,其中,i=0、1、2……k-1,

123、其中,i=0、1、2……k-1

124、以及

125、

126、其中,k表示用于近似数学定义的非线性激活函数f(x)的泰勒级数的被加数,n表示包括在至少一个神经网络层中的累加器位深度。

127、数学上定义的非线性激活函数可以是softmax函数,并且在这种情况下,根据第十五方面的方法实现的近似函数及其实现方式由下式给出:

128、

129、其中,ε表示避免除以零的正常数。

130、或者,近似函数定义为:

131、

132、其中,ε表示避免除以零的正常数。

133、例如,根据输入向量x的分量的预期值,正常数ε可以很容易选择。例如,正常数ε可以在10-15至10-11的范围内。表示softmax函数的近似激活函数的第二种替代方案是由ex≈1+x的近似激励的,小x值接近0。

134、在第十四方面的神经网络和第十五方面的方法中实现的近似激活函数可以有利地应用于具有与以上所讨论相同或相似优点的数据译码(编码和解码)。因此,根据第十六方面,提供了一种编码数据的方法,包括根据第十四方面或其任何实现方式的操作神经网络的方法的步骤(具有与以上所描述相同的优点)。在第十六方面的方法的一种实现方式中,编码所述数据包括通过神经网络提供熵模型和根据所述提供的熵模型对所述数据进行熵编码,其中,所述提供所述熵模型包括执行根据第十五方面或其任何实现方式的操作神经网络的方法的步骤。熵编码可以包括通过算术编码器进行熵编码。

135、在熵译码的背景下,就编码器侧和解码器侧使用的熵模型的基本位精确的再现而言,不同平台之间的互操作性对于(压缩)数据的可靠重建至关重要。

136、熵模型提供待编码或解码的符号的统计(概率)性质,例如平均值、方差、(交叉)相关性等,并且可以通过以下中的一项提供:(a)变分自动编码器的超先验,(b)变分自动编码器的自回归先验,(c)变分自动编码器的超先验和自回归先验的组合。因此,第十六方面的方法可以有利地在(变分)自动编码系统中实现(另参见下面的详细描述)。

137、根据第十七方面(并对第十六方面进行补充),提供了一种解码经编码的数据的方法,包括根据第十五方面或其任何实现方式的操作神经网络的方法的步骤(具有与以上所描述相同的优点)。根据第十七方面的一种实现方式,解码所述数据包括通过神经网络提供熵模型和根据所述提供的熵模型对所述数据进行熵解码,其中,所述数据的熵解码包括根据第十五方面或其任何实现方式的操作神经网络的方法的步骤。熵解码可以包括通过算术解码器的熵解码。此外,在解码器侧,根据第十七方面的实现方式,熵模型通过以下中的一项提供:(a)变分自动编码器的超先验,(b)变分自动编码器的自回归先验,(c)变分自动编码器的超先验和自回归先验的组合。

138、通过第十六或第十七方面的方法处理的数据可以是图像数据,例如表示静止图像或视频序列的帧。

139、根据第十八方面,提供了一种对图像的至少一部分进行编码的方法,包括将表示图像的分量的张量变换为潜在张量,提供熵模型;根据所述提供的熵模型通过神经网络处理潜在张量以生成码流,其中,提供熵模型包括执行第十五方面或其实现方式的方法的步骤(具有与以上所描述相同的优点)。潜在张量可以通过算术编码器进行处理。

140、熵模型可以通过以下中的一项提供:(a)变分自动编码器的超先验,(b)变分自动编码器的自回归先验,(c)变分自动编码器的超先验和自回归先验的组合。

141、根据第十九方面,提供了一种重建图像的至少一部分的方法,包括提供熵模型,根据所述提供的熵模型通过神经网络处理码流以获得表示图像的分量的潜在张量,以及处理潜在张量以获得表示图像的所述分量的张量,提供熵模型包括执行根据第十五方面的操作神经网络的方法的步骤,或该方法的任何实现方式(具有与以上所描述相同的优点)被提供。处理码流可以通过算术解码器执行。熵模型可以通过以下中的一项提供:(a)变分自动编码器的超先验,(b)变分自动编码器的自回归先验,(c)变分自动编码器的超先验和自回归先验的组合。此外,处理所述潜在张量以获得表示所述图像的分量的张量可以包括执行根据第二十一方面或其实现方式的方法的步骤。

142、根据第十八和第十九方面的方法,张量表示的图像的分量可以是y、u或v分量,或是r、g、b分量。

143、根据第二十方面,提供了近似激活函数(近似softmax函数):

144、

145、其中,ε表示避免除以零的正常数。

146、根据第二十一方面,提供了近似激活函数(近似softmax函数):

147、

148、其中,ε表示避免除以零的正常数。

149、例如,根据输入向量x的分量的预期值,正常数ε可以很容易选择。例如,正常数ε可以在10-15至10-11的范围内。

150、这些新的激活函数可以替换传统的softmax函数,并可以证明在设备(作为编码器和解码器)的互操作性方面具有优越性。

151、根据第二十二方面,提供了一种用于编码数据的装置,包括根据第十四方面或其任何实现方式的神经网络。

152、根据第二十三方面,提供了一种用于解码数据的装置,包括根据第十四方面或其任何实现方式的神经网络。

153、根据第二十四方面,提供了一种用于编码图像的至少一部分的装置,包括根据第十四方面或其任何实现方式所述的神经网络。

154、根据第二十五方面,提供了一种用于解码图像的至少一部分的装置,包括根据第十四方面或其任何实现方式所述的神经网络。

155、根据第二十六方面,提供了一种根据第二十二方面至第二十五方面中的一个方面所述的装置,包括变分自动编码器的超先验,该超先验包括根据第十四方面或其任何实现方式的神经网络。

156、根据第二十七方面,提供了一种用于编码图像的至少一部分的装置,包括处理电路,用于:将表示图像的分量的张量变换为潜在张量;通过根据第十四方面或其任何实现方式的神经网络提供熵模型;根据所述提供的熵模型处理潜在张量以生成码流。

157、根据第二十八方面,提供了一种用于解码经编码的图像的至少一部分的装置,包括处理电路,用于:通过根据第十四方面或其任何实现方式的神经网络提供熵模型;根据所述提供的熵模型处理码流以获得表示图像的分量的潜在张量;处理潜在张量以获得表示图像的所述分量的张量。

158、图像的分量可以是y、u或v分量,也可以是r、g、b分量。

159、根据第二十九方面,提供了一种计算机程序产品,包括存储在非瞬时性介质中的程序代码,其中,所述程序在一个或多个处理器上执行时,执行根据与方法及其任何实现方式相关的以上所描述的方面中的任何方面的方法。

160、根据第三十方面,提供了一种计算机程序产品,包括存储在非瞬时性介质中的程序代码,其中,所述程序在一个或多个处理器上执行时,执行根据与方法及其任何实现方式相关的以上所描述的方面中的任何方面的方法。

161、根据第三十一方面,提供了一种计算机可读存储介质,其中存储有指令,所述指令在被执行时,使一个或多个处理器编码视频数据。所述指令使所述一个或多个处理器执行根据与方法及其任何实现方式相关的以上所描述的方面中的任何方面的方法。

162、根据与方法及其任何实现方式相关的以上所描述的方面中的任何方面的方法可以在装置中实现,并且提供了用于执行这些方法的步骤的装置(具有与以上所讨论的相同的优点)。

163、根据第三十二方面,提供了一种用于编码数据的装置,其中,该装置包括处理电路,该处理电路用于执行根据与不限于解码的方法及其任何实现方式相关的以上所描述的任何方面的任何方法的步骤。

164、根据第三十三方面,提供了一种用于编码图像的至少一部分的装置,包括处理电路,用于:将表示图像的分量的张量变换为潜在张量;提供熵模型,包括执行根据与不限于解码的方法及其任何实现方式相关的以上所描述的任何方面的任何方法的步骤;根据所述提供的熵模型通过神经网络解码和处理潜在张量以生成码流。

165、根据第三十四方面,提供了一种用于解码数据的装置,其中,该装置包括处理电路,该处理电路用于执行根据与不限于编码的方法及其任何实现方式相关的以上所描述的任何方面的任何方法的步骤。

166、根据第三十五方面,提供了一种用于解码编码图像的至少一部分的装置,包括处理电路,用于:提供熵模型,包括执行根据与不限于编码的方法及其任何实现方式相关的以上所描述的任何方面的任何方法的步骤;根据所述提供的熵模型通过神经网络处理码流以获得表示图像的所述分量的潜在张量;处理所述潜在张量以获得表示所述图像的所述分量的张量。

167、以上所描述的装置的功能可以通过硬件实现,也可以通过硬件执行对应的软件来实现。

168、根据另一方面,本发明涉及一种视频流编码装置,包括处理器和存储器。存储器存储指令,这些指令使处理器执行根据与不限于解码的方法及其任何实现方式相关的以上所描述的任何方面的任何方法的步骤。

169、根据另一方面,本发明涉及一种视频流解码装置,包括处理器和存储器。存储器存储指令,这些指令使处理器执行根据与不限于编码的方法及其任何实现方式相关的以上所描述的任何方面的任何方法的步骤。

170、当认为合适时,以上所描述的方面和实现方式的方法以及装置可以容易相互组合。

171、附图及以下说明中将详细描述一个或多个实施例。其它特征、目的和优点在说明书、附图和权利要求中是显而易见的。


技术特征:

1.一种操作神经网络的方法(1200),其特征在于,所述神经网络包括神经网络层,所述神经网络层包括或连接到用于缓存求和结果并具有预定义的累加寄存器大小的累加寄存器,所述方法(1200)包括以下步骤:

2.根据权利要求1所述的方法(1200),其特征在于,所述神经网络层是全连接层。

3.根据权利要求1所述的方法(1200),其特征在于,所述神经网络层是卷积神经网络层。

4.根据上述权利要求中任一项所述的方法(1200),其特征在于,所述累加寄存器大小为n位,其中,n为正整数值。

5.根据权利要求4所述的方法(1200),其特征在于,所述累加寄存器大小等于32位和16位中的一个。

6.根据上述权利要求中任一项所述的方法(1200),其特征在于,所述整数下阈值小于或等于0,所述整数上阈值大于或等于0。

7.根据权利要求6所述的方法(1200),其特征在于,所述整数下阈值a由-2k-1给出,所述整数上阈值b由2k-1-1给出,其中,k表示层输入数据的预定义位深度。

8.根据上述权利要求中任一项所述的方法(1200),其特征在于,所述神经网络层用于执行求和

9.根据权利要求8所述的方法(1200),其特征在于,所述整数值权重{wi}被确定为满足以下条件:

10.根据权利要求8结合权利要求7所述的方法(1200),其特征在于,所述整数值权重{wi}被确定为满足以下条件:

11.根据权利要求8结合权利要求7所述的方法(1200),其特征在于,所述整数值权重{wi}被确定为满足以下条件:

12.根据权利要求8至11中任一项所述的方法,其特征在于,d等于0。

13.根据权利要求9结合权利要求3或权利要求10结合权利要求3或权利要求11结合权利要求3所述的方法(1200),其特征在于,所述神经网络层为二维卷积神经网络层,所述求和

14.根据权利要求9结合权利要求3或权利要求10结合权利要求3或权利要求11结合权利要求3所述的方法(1200),其特征在于,所述神经网络层为二维卷积神经网络层,所述求和

15.根据上述权利要求中任一项所述的方法(1200),其特征在于,所述神经网络层包括注意力机制。

16.根据上述权利要求中任一项所述的方法(1200),其特征在于,还包括提供权重并通过第一放因子缩放权重以获得缩放权重,并将所述缩放权重舍入到相应的最接近的整数值,以获得所述整数值权重。

17.根据权利要求16所述的方法(1200),其特征在于,所述舍入通过向下取整函数或向上取整函数执行。

18.根据权利要求17所述的方法(1200),其中,所述权重是实值权重,并且第一缩放因子由2sj给出,其中,sj表示比特数,所述比特数表示所述实值权重的小数部分。

19.根据上述权利要求中任一项所述的方法(1200),其特征在于,还包括:

20.根据权利要求19所述的方法(1200),其特征在于,还包括将所述数据实体的所述缩放值舍入到相应的最接近的整数值,以获得所述数据实体的整数值。

21.一种编码数据的方法,其特征在于,包括根据上述权利要求中任一项所述的操作神经网络的方法(1200)的步骤。

22.根据权利要求21所述的方法,其特征在于,编码所述数据包括通过神经网络提供熵模型和根据所述提供的熵模型对所述数据进行熵编码,提供所述熵模型包括执行根据权利要求1至20中任一项所述的操作神经网络的方法(1200)的步骤。

23.根据权利要求20所述的方法,其特征在于,所述熵模型通过以下中的一项提供:(a)变分自动编码器的超先验,(b)变分自动编码器的自回归先验,(c)变分自动编码器的超先验和自回归先验的组合。

24.一种解码经编码的数据的方法,其特征在于,包括根据权利要求1至20中任一项所述的操作神经网络的方法(1200)的步骤。

25.根据权利要求24所述的方法,其特征在于,解码所述数据包括通过神经网络提供熵模型和基于所述提供的熵模型对所述数据进行熵解码,对所述数据进行熵解码包括根据权利要求1至20中任一项所述的操作神经网络的方法(1200)的步骤。

26.根据权利要求25所述的方法,其特征在于,所述熵模型通过以下中的一项提供:(a)变分自动编码器的超先验,(b)变分自动编码器的自回归先验,(c)变分自动编码器的超先验和自回归先验的组合。

27.根据权利要求21至26中任一项所述的方法,其特征在于,所述数据为图像数据。

28.一种编码图像的至少一部分的方法,其特征在于,包括:

29.根据权利要求28所述的方法,其特征在于,所述熵模型通过以下中的一项提供:(a)变分自动编码器的超先验,(b)变分自动编码器的自回归先验,(c)变分自动编码器的超先验和自回归先验的组合。

30.一种重建图像的至少一部分的方法,其特征在于,包括:

31.根据权利要求30所述的方法,其特征在于,所述熵模型通过以下中的一项提供:(a)变分自动编码器的超先验,(b)变分自动编码器的自回归先验,(c)变分自动编码器的超先验和自回归先验的组合。

32.根据权利要求28至31中任一项所述的方法,其特征在于,所述分量为y、u或v分量,或为r、g或b分量。

33.一种计算机程序产品,其特征在于,包括存储在非瞬时性介质中的程序代码,其中,所述程序在一个或多个处理器上执行时,执行根据权利要求1至32中任一项所述的方法(1200)。

34.一种用于编码数据的装置(1500),其特征在于,所述装置包括处理电路(1510),用于执行根据权利要求1至20、21至23和28或29中任一项所述的方法的步骤。

35.一种用于编码图像的至少一部分的装置(1500),其特征在于,包括处理电路(1510),用于:将表示所述图像的分量的张量变换为潜在张量;提供熵模型,包括执行根据权利要求1至20中任一项所述的方法(1200)的步骤;根据所述提供的熵模型通过神经网络处理所述潜在张量,以生成码流。

36.一种用于解码数据的装置(1500),其特征在于,包括处理电路(1510),用于执行根据权利要求1至20、24至26和30或31中任一项所述的方法的步骤。

37.一种用于解码经编码的图像的至少一部分的装置(1500),包括处理电路(1510),用于:提供熵模型,包括执行根据权利要求1至20中任一项所述的方法(1200)的步骤;根据所述提供的熵模型通过神经网络处理码流以获得表示所述图像的所述分量的潜在张量;处理所述潜在张量以获得表示所述图像的所述分量的张量。


技术总结
本发明涉及一种基于条件权重操作神经网络的方法。所述方法包括为所述神经网络层的输入数据的数据实体中包括的整数值定义整数下阈值和整数上阈值。如果所述输入数据的数据实体中包括的整数的值小于所述下阈值,则所述输入数据的所述数据实体中包括所述的整数的所述值被限幅为所述下阈值,如果所述输入数据的数据实体中包括的整数的值大于所述上阈值,则所述输入数据的所述数据实体中包括的所述整数的所述值限幅为所述上阈值,整数值权重根据所述下阈值、所述上阈值和预定义的累加寄存器大小确定,从而可以避免所述累加寄存器的整数溢出。

技术研发人员:蒂莫菲·米哈伊洛维奇·索洛维耶夫,谢尔盖·尤里耶维奇·伊科宁,伊蕾娜·亚历山德罗夫娜·阿尔希娜,艾辛·科云朱,马克西姆·鲍里索维奇·西切夫,亚历山大·亚历山德罗维奇·卡拉布托夫,米哈伊尔·维亚切斯拉沃维奇·索苏尔尼科夫
受保护的技术使用者:华为技术有限公司
技术研发日:
技术公布日:2024/10/31
转载请注明原文地址: https://www.8miu.com/read-22135.html

最新回复(0)