神经网络压缩方法、装置、设备及可读存储介质

文档序号:30370291发布日期:2022-06-11 00:24阅读:77来源:国知局
神经网络压缩方法、装置、设备及可读存储介质

1.本技术涉及互联网技术领域,更具体地说,涉及一种神经网络压缩方法、装置、设备及可读存储介质。


背景技术:

2.随着互联网技术的发展,深度学习神经网络因其能在复杂环境中出色地完成决策任务而受到了广泛关注。例如,深度学习神经网络可以应用于医学图像分割,提供端到端的图像分割结果,以帮助医生更准确地诊断病情;深度学习神经网络也可以用于智能电网的脆弱性分析,找出智能电网的脆弱环节;深度学习神经网络还可以用于机器人的动作控制;深度学习神经网络还可以用于物联网设备的资源分配决策、任务卸载;深度学习神经网络还可以用于自动驾驶技术等。
3.但是,在现有技术中,深度学习神经网络普遍具有高冗余性,这导致了深度学习神经网络控制性能的下降且极大地影响了深度学习神经网络的实用性。如何有效地减少深度学习神经网络中的冗余参数,降低神经网络的计算性能损耗,是一个值得关注的问题。
4.综上所述,亟需一种神经网络压缩方法,用于压缩深度学习神经网络中的冗余参数,以降低神经网络的计算性能损耗。


技术实现要素:

5.有鉴于此,本技术提供了一种神经网络压缩方法、装置、设备及可读存储介质,用于压缩深度学习神经网络中的冗余参数,以降低神经网络的计算性能损耗。
6.为了实现上述目的,现提出的方案如下:
7.一种神经网络压缩方法,包括:
8.获取待压缩的多层级深度学习神经网络及其对应的网络损失;
9.确定与所述多层级深度学习神经网络对应的稀疏编码及稀疏权重;
10.确定所述稀疏编码对应的稀疏编码损失及所述稀疏权重对应的稀疏权重损失;
11.将所述网络损失、所述稀疏编码损失及稀疏权重损失进行融合,得到融合后的压缩损失;
12.利用所述压缩损失对所述多层级深度学习神经网络的各层级输出过程中的参数进行压缩,得到压缩后的多层级深度学习神经网络。
13.可选的,确定与所述多层级深度学习神经网络对应的稀疏编码,包括:
14.确定所述多层级深度学习神经网络中各层级的输出分布及与所述稀疏编码对应的编码期望值;
15.利用skl散度,并基于输出分布及编码期望值,得到分布差值;
16.基于所述分布差值与所述输出分布,得到所述多层级深度学习神经网络的稀疏编码。
17.可选的,利用skl散度,并基于输出分布及编码期望值,得到分布差值,包括:
18.利用skl散度的定义,确定分布差值计算式;
19.基于输出分布、编码期望值及所述分布差值计算式,计算得到多层级深度学习神经网络各层级的分布差值。
20.可选的,确定与所述多层级深度学习神经网络对应的稀疏权重,包括:
21.获取所述多层级深度学习神经网络每一层级对应的权重系数集合;
22.确定与所述稀疏权重对应的权重调节参数;
23.利用正则化技术及所述权重调节参数,对每一权重系数集合中的各权重系数进行缩小,得到与所述多层级深度学习神经网络对应的稀疏权重。
24.可选的,所述利用正则化技术及所述权重调节参数,对每一权重系数集合中的各权重系数进行缩小,包括:
25.利用对数正则化技术及所述权重调节参数,对每一权重系数集合中的各权重系数进行缩小。
26.可选的,利用所述压缩损失对所述多层级深度学习神经网络的各层级输出过程中的参数进行压缩,包括:
27.基于所述压缩损失,并利用随机梯度下降法,更新所述多层级深度学习神经网络的各层级的参数集合中的各权重系数集合及偏置集合;
28.基于所述压缩损失,并利用正则化器的近端算子,修剪所述多层级深度学习神经网络的各层级对应的权重系数集合;
29.其中,所述多层级深度学习神经网络的各层级的参数集合中的各权重系数集合及偏置集合的更新过程,和所述多层级深度学习神经网络的各层级对应的权重系数集合的修剪过程交替迭代。
30.可选的,确定所述稀疏编码对应的稀疏编码损失及所述稀疏权重对应的稀疏权重损失,包括:
31.确定与所述稀疏编码对应的编码系数;
32.确定与所述稀疏权重对应的权重参数;
33.将所述编码系数与各层级的稀疏编码相乘,得到稀疏编码损失;
34.将所述权重参数与各层级的稀疏权重相乘,得到稀疏权重损失;
35.将所述网络损失、所述稀疏编码损失及所述稀疏权重损失进行融合,得到融合后的压缩损失,包括:
36.将所述网络损失、所述稀疏编码损失及稀疏权重损失进行求和,得到压缩损失。
37.一种神经网络压缩装置,包括:
38.损失获取单元,用于获取待压缩的多层级深度学习神经网络及其对应的网络损失;
39.稀疏确定单元,用于确定与所述多层级深度学习神经网络对应的稀疏编码及稀疏权重;
40.损失确定单元,用于确定所述稀疏编码对应的稀疏编码损失及所述稀疏权重对应的稀疏权重损失;
41.损失融合单元,用于将所述网络损失、所述稀疏编码损失及所述稀疏权重损失进行融合,得到融合后的压缩损失;
42.网络压缩单元,用于利用所述压缩损失对所述多层级深度学习神经网络的各层级输出过程中的参数进行压缩,得到压缩后的多层级深度学习神经网络。
43.一种神经网络压缩设备,包括存储器和处理器;
44.所述存储器,用于存储程序;
45.所述处理器,用于执行所述程序,实现上述的神经网络压缩方法的各个步骤。
46.一种可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时,实现如上述的神经网络压缩方法的各个步骤。
47.从上述的技术方案可以看出,本技术提供的神经网络压缩方法通过获取待压缩的多层级深度学习神经网络及其对应的网络损失;随后,可以确定与所述多层级深度学习神经网络对应的稀疏编码及稀疏权重,如此,通过稀疏编码及稀疏权重,可以实现去除多层级深度学习神经网络中冗余参数及冗余权重;接着,可以确定所述稀疏编码对应的稀疏编码损失及所述稀疏权重对应的稀疏权重损失;然后,可以将所述网络损失、所述稀疏编码损失及所述稀疏权重损失进行融合,得到融合后的压缩损失;最后,可以利用所述压缩损失对所述多层级深度学习神经网络的各层级输出过程中的参数进行压缩,得到压缩后的多层级深度学习神经网络,实现即使对多层级深度学习神经网络进行压缩,也可以实现该多层级深度学习神经网络的分析功能。可见,本技术可以实现去除多层级深度学习神经网络中冗余参数及去除多层级深度学习神经网络中的冗余权重,即实现对该待压缩的多层级深度学习神经网络进行双重压缩,减少多层级深度学习神经网络中不必要的参数,以降低神经网络的计算性能损耗。
48.此外,本技术对多层级深度学习神经网络的各层级进行稀疏编码及稀疏权重,且本技术压缩后的多层级深度学习神经网络的各层级中都进行稀疏编码及稀疏权重,进行了双重稀疏,具有较大的稀疏性。在此基础上,本技术压缩后的多层级深度学习神经网络可以有效地避免多层级深度学习神经网络中的强串扰,有效降低了非局部输入之间的重叠,提高了正交性,这使得多层级深度学习神经网络对不同输入的区分度提高。因此,本技术压缩后的多层级深度学习神经网络可以有效地捕获深度学习中状态或实例的重要属性,并简化多层级深度学习神经网络的分析过程,从而提高多层级深度学习神经网络的分析性能。
附图说明
49.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
50.图1为本技术实施例公开的一种神经网络压缩方法流程图;
51.图2为本技术实施例公开的一种神经网络压缩结果示意图;
52.图3a-图3c为本技术实施例公开的不同的正则化器缩小各权重系数的速度示意图;
53.图4为本技术实施例公开的一种神经网络压缩装置结构框图;
54.图5为本技术实施例公开的一种神经网络压缩设备的硬件结构框图。
具体实施方式
55.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
56.本技术提供的神经网络压缩方法、装置、设备及可读存储介质,可以应用于多个领域,例如自然语言领域、计算机视觉领域及音频处理领域等。
57.接下来结合图1对本技术的神经网络压缩方法进行详细介绍,包括如下步骤:
58.步骤s1、获取待压缩的多层级深度学习神经网络及其对应的网络损失。
59.该多层级深度学习神经网络可以为多种具有分析功能的多层级深度学习神经网络,例如,该多层级深度学习神经网络可以为应用于医学图像分割的神经网络,分析医学图像的最佳分割方式,为医生提供端到端的图像分割结果,以供医生作出更准确的诊断;又如,该多层级深度学习神经网络也可以为根据智能电网的网络拓扑分析智能电网脆弱性的神经网络,可以检查出智能电网的脆弱环节;再如,该多层级深度学习神经网络可以为根据坐标信息,控制机器人动作的神经网络;再如,该多层级深度学习神经网络可以为通过边缘计算,实现物联网设备的资源分配决策及任务卸载的神经网络;再如,该多层级深度学习神经网络可以为根据区域路路况,实现自动驾驶技术的神经网络。
60.具体地,可以获取一个待压缩的多层级深度学习神经网络。首先,可以将该待压缩的多层级深度学习神经网络中的状态和奖励序列表示成:
[0061][0062]
其中,状态用s表示和奖励用r表示,i表示某一时刻,t表示样本数据集的数量。si和s
i+1
分别表示i和i+1时刻多层级深度学习神经网络的输入,中的n
(0)
是指一个数,为多层级深度学习神经网络的输入向量的维度,也可以看做多层级深度学习神经网络第0层神经元的个数,r为实数集,基于此,是一个维度为n
(0)
的实数向量的集合。
[0063]
其次,可用l层深度学习神经网络拟合一个状态动作价值函数q(si,ai),实现通过该状态动作价值函数可以计算出在i时刻的状态si中执行动作a
t
的最终价值。
[0064]
再次,可以设多层级深度学习神经网络的参数集为:
[0065][0066]
其中,w
(1)
表示第一层的多层级深度学习神经网络的权重系数集合,b
(1)
表示第一层的多层级深度学习神经网络的偏置。w
(l)
表示第l层的多层级深度学习神经网络的权重系数集合,l层为多层级深度学习神经网络的最后一层。b
(l)
表示第l层的多层级深度学习神经网络的偏置,l可以为除一以外,任意一个数值,例如,可以为5,也可以为30。因而,多层级深度学习神经网络的参数集由多层级深度学习神经网络的各层级权重系数集合及各层级偏置组成。n
(l)
和n
(l-1)
表示多层级深度学习神经网络第l层和第l-1层神经元的个数,表示一个维度为n
(l)
的实数向量的集合。表示一个维度为n
(l)
行,n
(l-1)
列的实数矩阵集合。
[0067]
当多层级深度学习神经网络的输入为状态s时,多层级深度学习神经网络第l层的输出可以记为其中,l为总层数为l的多层级深度学习神经网络中的任意一层。
[0068]
可将多层级深度学习神经网络的最后一层即输出层的权重系数集合,记为wa,从上述记载中,可知对应于多层级深度学习神经网络(dqn)中的不同动作。而输出层使用线性激活,最终多层级深度学习神经网络的输出为动作价值的估计值:
[0069][0070]
其中,a为多层级深度学习神经网络的总执行动作,q
π
(si,a)为多层级深度学习神经网络的状态价值的准确值。表示使用多层级深度学习神经网络对状态价值进行估计的估计值。表示输入为si时,多层级深度学习神经网络第l层输出的转置。表示估计值的另一种表达形式,表明估计值为多层级深度学习神经网络第l层的输出转置和最后一层权重wa的乘积。
[0071]
具体地,可以将标注有标签的样本集输入至待压缩的多层级深度学习神经网络中,得到待压缩的多层级深度学习神经网络各层级的输出。随后,可以基于各层级的输出与各层级对应的样本集的标签,计算待压缩的多层级深度学习神经网络的整体损失,作为网络损失。
[0072]
为了获得多层级深度学习神经网络中准确的动作价值估计,可使用均方时间差误差来定义网络损失f,该网络损失f考虑了时间尺度上相邻状态之间的奖励差值,定义如下:
[0073][0074]
其中,r
t+1
表示t+1时刻的奖励,γ表示奖励衰减因子即折扣率,γ
t+1
表示t+1时刻的折扣率。γ
t+1
=0时,s
t
表示终止状态,l表示多层级深度学习神经网络的最后一层。
[0075]
表示输入为s
t
时,多层级深度学习神经网络第l层的输出。表示输入为s
t
时,多层级深度学习神经网络第l层的输出的转置,表示输入为s
t+1
时,多层级深度学习神经网络第l层的输出的转置。
[0076]
步骤s2、确定与所述多层级深度学习神经网络对应的稀疏编码及稀疏权重。
[0077]
具体地,可以将多层级深度学习神经网络中所有隐藏层的输出,即多层级深度学习神经网络中每一层级表示的分布约束为一个稀疏性分布集合g,以此确定稀疏编码。进一步地,通过集合参数β控制稀疏性分布集合g的稀疏程度,从而控制稀疏编码的稀疏性。因而,可以通过确定稀疏性分布集合g的定义式,实现确定多层级深度学习神经网络对应的稀疏编码。
[0078]
在本技术中,可以通过确定待压缩的多层级深度学习神经网络对应的稀疏编码,对多层级深度学习神经网络中的每一层级的输出进行约束,实现将多层级深度学习神经网络中的每一层级的输出分布变得稀疏,即,使得多层级深度学习神经网络每一层级的输出趋近为稀疏向量,去除多层级深度学习神经网络中的冗余参数。其中,输出分布是指多层级深度学习神经网络的每一层级的输出可以认为是一个随机变量,且该随机变量是符合某一种分布规律的,该分布规律中包含该随机变量的数据范围。
[0079]
具体地,可以通过多种方式确定多层级深度学习神经网络对应的稀疏权重。例如,
可以通过设定阈值,对多层级深度学习神经网络进行训练,从而确定稀疏权重,又如,可以通过对多层级深度学习神经网络的权重系数集合进行剪枝,从而确定稀疏权重。
[0080]
多层级深度学习神经网络中每一层级的权重系数集合可以看作一个矩阵,可以通过将多层级深度学习神经网络中的每一层级的权重系数集合趋近为稀疏矩阵,实现将该矩阵变得稀疏,以此确定待压缩的多层级深度学习神经网络对应的稀疏权重,实现去除多层级深度学习神经网络的冗余权重。
[0081]
参照图2,图2中的双重稀疏是指稀疏权重及稀疏编码。s
t
是指多层级深度学习神经网络的输入,q(s
t
)为多层级深度学习神经网络的输出。图2中的圆圈表明该层级输出向量在某个维度上的值,虚线圆圈表明该维度的值为零。未压缩前,各层的输出向量在各个维度上皆存在数值,即,各层中皆不包含虚线圆圈,通过稀疏编码压缩后,各层输出向量在部分维度上的值为零,即,各层中出现了虚线圆圈如图2所示。
[0082]
图2中的w
(1)
、w
(2)
及w
(3)
分别为第一层级深度学习神经网络的权重系数集合、第二层级深度学习神经网络的权重系数集合及第三层级深度学习神经网络的权重系数集合。各层级的权重系数集合皆为系数矩阵,在图2中,利用三个大方框表示第一层级、第二层级及第三层级的三个系数矩阵,而三个大方框中的每一小方框表示系数矩阵中的每一系数。且输入与第一层级连接的线段、第一层级与第二层级连接的线段及第二层级与第三层级连接的线段也表示各个系数矩阵中的系数。各层级对应的大方框中的小方框与各层级之间的线段一一对应,即大方框中的白色的小方框表明该系数为零,该系数对应的各层级之间的线段为虚线。未进行压缩时,各层级之间的线段为实线,因而各层级对应的系数矩阵较为复杂,通过对各层级的权重系数集合进行处理后,可以得到稀疏权重,如图2所示,表示系数矩阵的大方框变得稀疏。基于此,多层级深度学习神经网络的计算过程变得简单。
[0083]
步骤s3、确定所述稀疏编码对应的稀疏编码损失及所述稀疏权重对应的稀疏权重损失。
[0084]
具体地,可以将多层级深度学习神经网络的各层级增加稀疏编码后所导致的损失,确定为稀疏编码损失。可以将多层级深度学习神经网络的各层级增加稀疏权重后所导致的损失,确定为稀疏权重损失。
[0085]
步骤s4、将所述网络损失、所述稀疏编码损失及所述稀疏权重损失进行融合,得到融合后的压缩损失。
[0086]
具体地,可以将网络损失f、稀疏编码损失及稀疏权重损失相加,将相加后的结果作为压缩损失;也可以根据实际训练过程中,网络损失f、稀疏编码及稀疏权重的重要程度,确定网络损失f的表现权重、稀疏编码的表现权重及稀疏权重的表现权重。随后,按照网络损失f的表现权重、稀疏编码的表现权重及稀疏权重的表现权重进行加权,得到压缩损失。
[0087]
步骤s5、利用所述压缩损失对所述多层级深度学习神经网络的各层级输出过程中的参数进行压缩,得到压缩后的多层级深度学习神经网络。
[0088]
具体地,可以参照压缩损失,对多层级深度学习神经网络的各层级的参数进行更改修订,得到压缩后的多层级深度学习神经网络。
[0089]
从上述的技术方案可以看出,本技术提供的神经网络压缩方法通过获取待压缩的多层级深度学习神经网络及其对应的网络损失;随后,可以确定与所述多层级深度学习神经网络对应的稀疏编码及稀疏权重,如此,通过稀疏编码及稀疏权重,可以实现去除多层级
深度学习神经网络中冗余参数及冗余权重;接着,可以确定所述稀疏编码对应的稀疏编码损失及所述稀疏权重对应的稀疏权重损失;然后,可以将所述网络损失、所述稀疏编码损失及稀疏权重损失进行融合,得到融合后的压缩损失;最后,可以利用所述压缩损失对所述多层级深度学习神经网络的各层级输出过程中的参数进行压缩,得到压缩后的多层级深度学习神经网络,实现即使对多层级深度学习神经网络进行压缩,也可以实现该多层级深度学习神经网络的分析功能。可见,本技术可以实现去除多层级深度学习神经网络中冗余参数及去除多层级深度学习神经网络中的冗余权重,即实现对该待压缩的多层级深度学习神经网络进行双重压缩,减少多层级深度学习神经网络中不必要的参数,以降低神经网络的计算性能损耗。
[0090]
此外,本技术对多层级深度学习神经网络的各层级进行稀疏编码及稀疏权重,且本技术压缩后的多层级深度学习神经网络的各层级中都进行稀疏编码及稀疏权重,进行了双重稀疏,具有较大的稀疏性。在此基础上,本技术压缩后的多层级深度学习神经网络可以有效地避免多层级深度学习神经网络中的强串扰,有效降低了非局部输入之间的重叠,提高了正交性,这使得多层级深度学习神经网络对不同输入的区分度提高。因此,本技术压缩后的多层级深度学习神经网络可以有效地捕获深度学习中状态或实例的重要属性,并简化多层级深度学习神经网络的分析过程,从而提高多层级深度学习神经网络的分析性能。
[0091]
进一步地,在本技术的一些实施例中,对步骤s2中确定与所述多层级深度学习神经网络对应的稀疏编码的过程进行详细说明,具体步骤如下:
[0092]
s10、确定所述多层级深度学习神经网络中各层级的输出分布及与所述稀疏编码对应的编码期望值。
[0093]
具体地,可以通过确定所述多层级深度学习神经网络中各层级对应的输出分布函数,从而确定多层级深度学习神经网络中各层级的输出分布。该输出分布函数可以用g表示,且可以通过集合参数β控制g的稀疏程度。β即为调节编码期望值的参数值。
[0094]
s11、利用skl散度,并基于输出分布及编码期望值,得到分布差值。
[0095]
具体地,可以先确定压缩后的多层级深度学习神经网络中各个层级的目标输出分布作为编码期望值。随后,利用skl散度,确定压缩前后的多层级深度学习神经网络中各个层级的分布差值。
[0096]
s12、基于所述分布差值与所述输出分布,得到所述多层级深度学习神经网络的稀疏编码。
[0097]
具体地,将标注有标签的样本集输入至多层级深度学习神经网络后,得到输出分布。
[0098]
利用分布差值与输出分布进行计算,可以得到所述多层级深度学习神经网络的稀疏编码。
[0099]
由上述的技术方案可以看出,相比于上一个实施例,本实施例提供了一种确定多层级深度学习神经网络中各层级的稀疏编码的可选的方式,具体方式为利用skl散度,确定各层级的稀疏编码。可见,通过上述步骤可以很好地确定各层级的稀疏编码,从而实现对多层级深度学习神经网络进行压缩。
[0100]
进一步地,在本技术的一些实施例中,对s11、利用skl散度,并基于输出分布及编码期望值,得到分布差值的过程进行详细说明,具体步骤如下:
[0101]
s110、利用skl散度的定义,确定分布差值计算式。
[0102]
p
η
和pb分别为多层级深度学习神经网络中某一层级的输出分布和该层级的目标输出分布,p
η
和pb为分布集合,η的取值可以根据该层级的输出均值进行确定。对于属于指数分布族的p
η
和pb之间的skl散度即分布差值可以被定义为d
skl
(p
η
||pb),则该skl散度表达式如下所示:
[0103][0104]
其中,b=[η1,η2],pb={pb:b∈b}。η1和η2是描述pb性质的自然参数,用于确定输出分布的拟合目标,随着pb的不同而不同。b指的是实数区间。pb={pb:b∈b}表明在pb中的每一个元素pb都是一个指数分布,该指数分布的均值b位于区间b中。p和q是两个不同的概率分布函数,用于解释kl散度的计算公式。p是目标输出分布中的任意一个元素。
[0105]
而对于指数族,kl散度具有布雷格曼散度(bregman divergence)的广义形式:
[0106][0107]
其中,pi为p分布的均值,qi为q分布的均值。
[0108]
基于此,公示(3)中的skl散度的非负且凸的形式可以改写为如下形式:
[0109][0110]
其中,β=-η-1
为调节编码期望值的参数值。而为多层级深度学习神经网络中各层级对应的输出分布,该输出分布为指数分布。b=(0,β],为多层级深度学习神经网络中各层级的稀疏编码对应的编码期望值。为分布差值。
[0111]
基于此,β可以决定一个指数分布的性质,当β值比较小的时候,指数分布会随机出更多的0值,即,各层级的输出会出现更多的0值。因此把一个β比较小的指数分布b作为多层级深度学习神经网络的某一层级的目标输出分布,在对多层级深度学习神经网络的训练过程中使用skl正则化的手段让该层级的输出分布趋近于指数分布b,训练完成后,该层级的输出分布就可认为是符合指数分布b的,能够让该层级的输出为稀疏向量,得到了该层级的稀疏编码。
[0112]
s111、基于输出分布、编码期望值及所述分布差值计算式,计算得到多层级深度学习神经网络各层级的分布差值。
[0113]
具体地,多层级深度学习神经网络第l层的输出分布可以设置为其中,第l层可以为多层级深度学习神经网络的任意一层。基于上述所确定的分布差值,多层级深度学习神经网络的分布函数g即实现稀疏编码的表达式如下所示:
[0114][0115]
其中,为多层级深度学习神经网络中第l层对应的输出分布,计算式如下所示:
[0116][0117]
由上文中已证明,通过分布差值可以让多层级深度学习神经网络中某一层级的输出分布趋近于指数分布b,训练完成后,能够让该层级的输出为稀疏向量,得到了该层级的稀疏编码。通过公式(5)可以实现让多层级深度学习神经网络中的每一层级的输出分布趋近于对应的指数分布b,训练完成后,能够让多层级的输出皆为稀疏向量,得到了多层级的稀疏编码。
[0118]
需要注意的是,每一层级对应的指数分布b可以是相同的,也可以是不同的。
[0119]
由上述的技术方案可以看出,相比于上一个实施例,本实施例提供了一种利用skl散度、输出分布及编码期望值,确定多层级深度学习神经网络中各层级的稀疏编码的可选的方式,具体方式为利用skl散度的定义、输出分布及编码期望值,确定各层级的稀疏编码。可见,通过上述步骤可以很好地实现对多层级深度学习神经网络进行压缩。
[0120]
进一步地,在本技术的一些实施例中,对步骤s2中确定与所述多层级深度学习神经网络对应的稀疏权重的过程进行详细说明,具体步骤如下:
[0121]
s20、获取所述多层级深度学习神经网络每一层级对应的权重系数集合。
[0122]
具体地,多层级深度学习神经网络中的各层级都有对应的权重系数集合,提取每一层级对应的权重系数集合,该权重系数集合为系数矩阵。
[0123]
s21、确定与所述稀疏权重对应的权重调节参数。
[0124]
具体地,权重调节参数是调节稀疏权重的稀疏性的参数,即,权重调节参数的大小决定了稀疏权重的整体的稀疏性。
[0125]
s22、利用正则化技术及所述权重调节参数,对每一权重系数集合中的各权重系数进行缩小,得到与所述多层级深度学习神经网络对应的稀疏权重。
[0126]
具体地,正则化技术有多种,此处提供可选的三种,如l1范数正则化技术、l2范数正则化技术及对数正则化技术。
[0127]
可以根据选用的正则化技术的定义制定惩罚项,实现对各权重系数集合中的各权重系数进行缩小,得到与所述多层级深度学习神经网络对应的稀疏权重。
[0128]
参照图3a-图3c,图3a-图3c中记录了三种正则化技术缩小权重稀疏的速度。
[0129]
如图3a所示,l1范数正则化技术以相同的分速度缩小权重系数集合中各权重系数的值;如图3b所示,l2范数正则化技术以相同的合速度缩小权重系数集合中各权重系数的值;如图3c所示,对数正则化技术对小于阈值的权重系数的收缩速度快于l1范数正则化技术,而对大于阈值的权重系数的收缩速度较慢。
[0130]
从上述技术方案可以看出,本实施例提供了一种确定多层级深度学习神经网络对应的稀疏权重的可选的方式,具体为利用正则化技术对各权重系数进行缩小,实现稀疏权重。可见,本实施例可以更好地确定稀疏权重,实现压缩多层级深度学习神经网络。
[0131]
进一步地,在本技术的一些实施例中,对步骤s22中利用正则化技术及所述权重调节参数,对每一权重系数集合中的各权重系数进行缩小的过程进行详细说明,步骤如下:
[0132]
s220、利用对数正则化技术及所述权重调节参数,对每一权重系数集合中的各权重系数进行缩小。
[0133]
具体地,对数正则化技术对小于阈值的权重系数的收缩速度较快,而对大于阈值的权重系数的收缩速度较慢,小于阈值的权重稀疏可以认为是数值较小的权重系数,大于阈值的权重系数可以认为是数值较大的权重系数。因而,利用对数正则化技术可以尽可能缩小数值较小的权重系数,尽可能保留数值较大的权重系数。而数值较小的权重系数可以认为属于冗余权重,因而,可以实现去除冗余权重的目的。
[0134]
获知每一权重系数集合及权重调节参数后,可以设定惩罚项公式对多层级深度学习神经网络的参数进行调节,得到缩小后的权重系数集合,实现确定稀疏权重。其中,惩罚项公式如下所示:
[0135][0136]
其中,δ为权重调节参数,用于调节稀疏权重的稀疏性,即,各权重系数的缩小程度。随着δ的减小,稀疏权重的稀疏性随之提高。l为多层级深度学习神经网络的任意一层,w
(l)
为多层级深度学习神经网络的任意一层的权重系数集合。是w
(l)
中第k行j列的元素。w
(l)
一共有n
(l)
列,n
(l-1)
行。
[0137]
从上述技术方案可以看出,相比于上述实施例,本实施例提供了一种利用对数正则化技术确定稀疏权重的可选的方式。通过对数正则化技术可以缩小各权重系数集合中的各权重系数,且在缩小过程中,对小于阈值的权重系数的缩小程度较大,对大于阈值的权重系数的缩小程度较小,能够去除冗余权重系数,获得更为稀疏的权重系数集合,实现更好地确定多层级深度学习神经网络的稀疏权重。
[0138]
进一步地,在本技术的一些实施例中,对步骤s3、确定所述稀疏编码对应的稀疏编码损失及所述稀疏权重对应的稀疏权重损失的过程进行详细说明,具体步骤如下所示:
[0139]
s30、确定与所述稀疏编码对应的编码系数。
[0140]
具体地,编码系数为确定了目标输出分布后,在目标输出分布的基础上,通过编码系数控制稀疏编码的稀疏性调节幅度。编码系数越大,稀疏编码的稀疏性调节幅度也越大,多层级深度学习神经网络对应的稀疏编码的稀疏性也愈大。
[0141]
s31、确定与所述稀疏权重对应的权重参数。
[0142]
具体地,权重参数是在确定惩罚项之后,在利用惩罚项对多层级深度学习神经网络的权重系数集合进行剪枝的基础上,通过权重参数控制稀疏权重的稀疏性调节幅度。权重参数越大,多层级深度学习神经网络的权重系数被修剪得越多,多层级深度学习神经网络对应的稀疏权重的稀疏性也愈大。
[0143]
s32、将所述编码系数与各层级的稀疏编码相乘,得到稀疏编码损失。
[0144]
具体地,可以用λ表示编码系数,将λ与多层级深度学习神经网络的每一层级的稀疏编码相乘,并将每一层级相乘后的结果相加,相加后的结果为稀疏编码损失。
[0145]
s33、将所述权重参数与各层级的稀疏权重相乘,得到稀疏权重损失。
[0146]
具体地,可以用μ表示权重参数,将μ与多层级深度学习神经网络的每一层级的稀疏权重相乘,并将每一层级相乘后的结果相加,相加后的结果为稀疏权重损失。
[0147]
在此基础上,对步骤s4、将所述网络损失、所述稀疏编码损失及稀疏权重损失进行
融合,得到融合后的压缩损失的过程进行详细说明,步骤如下:
[0148]
s34、将所述网络损失、所述稀疏编码损失及稀疏权重损失进行求和,得到压缩损失。
[0149]
具体地,由上文中的网络损失f的表达式、多层级深度学习神经网络各层级的稀疏编码及稀疏权重惩罚项的表达式,可以得到压缩损失的表达式如下所示:
[0150][0151]
可见,压缩损失由整个时间段内的网络损失、多层级深度学习神经网络中各层级的稀疏编码损失之和及各层级的稀疏权重损失之和组成。
[0152]
从上述技术方案可以看出,本实施例提供了一种融合压缩损失的可选的方式,通过上述的步骤可以很好地融合网络损失、稀疏编码损失及稀疏权重损失,从而对多层级深度学习神经网络进行压缩。
[0153]
在本技术的一些实施例中,对步骤s4中利用所述压缩损失对所述多层级深度学习神经网络的各层级输出过程中的参数进行压缩的过程进行详细说明,其中,步骤s40多层级深度学习神经网络的各层级的参数集合中的各权重系数集合及偏置集合的更新过程,和步骤s41所述多层级深度学习神经网络的各层级对应的权重系数集合的修剪过程交替迭代。步骤s40和步骤s41的具体过程如下:
[0154]
s40、基于所述压缩损失,并利用随机梯度下降法,更新所述多层级深度学习神经网络的各层级的参数集合中的各权重系数集合及偏置集合。
[0155]
具体地,可以利用标注有标签的样本集的前向传播,获取多层级深度学习神经网络中所有隐藏层的输出及多层级深度学习神经网络的最终输出结果后,得到压缩损失。随后,可以利用反向传播随机梯度下降法及更新多层级深度学习神经网络的各层级的参数集合中的各权重系数集合及偏置集合。
[0156]
压缩损失中的网络损失的偏导如下所示:
[0157][0158]
隐藏层神经元的梯度由两部分组成,一部分是来着网络损失f,它只在l层深度学习神经网络的l个隐藏层神经元中产生梯度,该梯度的计算表达式如下所示:
[0159]
[0160]
隐藏层神经元的另一部分梯度来自于压缩损失中的稀疏编码损失,该梯度的计算表达式如下所示:
[0161][0162]
其中,是指取的符号,若是该那么
[0163]
通过表达式(9)和(10)获取隐藏层神经元的梯度后,可以利用随机梯度下降法,更新所述多层级深度学习神经网络的各层级的参数集合中的各权重系数集合及偏置集合。
[0164]
s41、基于所述压缩损失,并利用正则化器的近端算子,修剪所述多层级深度学习神经网络的各层级对应的权重系数集合。
[0165]
具体地,仅关注多层级深度学习神经网络的权重系数集合时,压缩损失表达式如下所示:
[0166][0167]
其中,w为修剪后的多层级深度学习神经网络的每一权重系数集合,u为利用随机梯度下降法更新后的多层级深度学习神经网络的每一层级的参数集合中的每一权重系数集合。
[0168]
基于此,可以利用正则化器的近端算子,得到修剪后的多层级深度学习神经网络的所有权重系数集合,计算方式如下所示:
[0169][0170]
其中,u=u
kj
是u中第k行j列的元素。是w
(l)
中第k行j列的元素。近端算子prox
log
给出了对数正则化器的原子化封闭解,其处理高效,针对不同的权重系数,其缩小程度不同,能够保持数值大于阈值的权重系数几乎不变,即,数值较大的权重系数几乎不变,尽可能的缩小数值小于阈值的权重系数,即,数值较小的权重系数。基于此,可以诱导出具有更高稀疏性的稀疏权重。此外,μ是稀疏权重的关键,可以控制每一次迭代过程中权重系数减小的速度。
[0171]
下面对本技术提供的神经网络压缩装置进行描述,下文描述的神经网络压缩装置与上文描述的神经网络压缩方法可相互对应参照。
[0172]
首先,结合图4,对神经网络压缩装置进行介绍,如图4所示,该神经网络压缩装置可以包括:
[0173]
网络损失获取单元1,用于获取待压缩的多层级深度学习神经网络及其对应的网络损失;
[0174]
稀疏确定单元2,用于确定与所述多层级深度学习神经网络对应的稀疏编码及稀疏权重;
[0175]
稀疏损失确定单元3,用于确定所述稀疏编码对应的稀疏编码损失及所述稀疏权重对应的稀疏权重损失;
[0176]
损失融合单元4,用于将所述网络损失、所述稀疏编码损失及稀疏权重损失进行融合,得到融合后的压缩损失;
[0177]
网络压缩单元5,用于利用所述压缩损失对所述多层级深度学习神经网络的各层级输出过程中的参数进行压缩,得到压缩后的多层级深度学习神经网络。
[0178]
进一步地,该稀疏确定单元2可以包括:
[0179]
编码确定单元,用于确定所述多层级深度学习神经网络中各层级的输出分布及与所述稀疏编码对应的编码期望值;
[0180]
散度利用单元,用于利用skl散度,并基于输出分布及编码期望值,得到分布差值;
[0181]
编码得到单元,用于基于所述分布差值与所述输出分布,得到所述多层级深度学习神经网络的稀疏编码。
[0182]
进一步地,该散度利用单元可以包括:
[0183]
计算式确定单元,用于利用skl散度的定义,确定分布差值计算式;
[0184]
分布计算单元,用于基于输出分布、编码期望值及所述分布差值计算式,计算得到多层级深度学习神经网络各层级的分布差值。
[0185]
进一步地,该稀疏确定单元2可以包括:
[0186]
集合获取单元,用于获取所述多层级深度学习神经网络每一层级对应的权重系数集合;
[0187]
参数确定单元,用于确定与所述稀疏权重对应的权重调节参数;
[0188]
权重得到单元,用于利用正则化技术及所述权重调节参数,对每一权重系数集合中的各权重系数进行缩小,得到与所述多层级深度学习神经网络对应的稀疏权重。
[0189]
进一步地,该权重得到单元可以包括:
[0190]
系数缩小单元,用于利用对数正则化技术及所述权重调节参数,对每一权重系数集合中的各权重系数进行缩小。
[0191]
进一步地,该稀疏损失确定单元3可以包括:
[0192]
第一确定单元,用于确定与所述稀疏编码对应的编码系数;
[0193]
第二确定单元,用于确定与所述稀疏权重对应的权重参数;
[0194]
第三确定单元,用于将所述编码系数与各层级的稀疏编码相乘,得到稀疏编码损失;
[0195]
第四确定单元,用于将所述权重参数与各层级的稀疏权重相乘,得到稀疏权重损失;
[0196]
在此基础上,损失融合单元4可以包括:
[0197]
第一损失融合单元,用于将所述网络损失、所述稀疏编码损失及稀疏权重损失进行求和,得到压缩损失。
[0198]
进一步地,该网络压缩单元5可以包括:
[0199]
参数更新单元,用于基于所述压缩损失,并利用随机梯度下降法,更新所述多层级
深度学习神经网络的各层级的参数集合中的各权重系数集合及偏置集合;
[0200]
权重更新单元,用于基于所述压缩损失,并利用正则化器的近端算子,修剪所述多层级深度学习神经网络的各层级对应的权重系数集合;
[0201]
其中,所述多层级深度学习神经网络的各层级的参数集合中的各权重系数集合及偏置集合的更新过程,和所述多层级深度学习神经网络的各层级对应的权重系数集合的修剪过程交替迭代。
[0202]
本技术实施例提供的神经网络压缩装置可应用于神经网络压缩设备,如手机、ipad、pc终端等。可选的,图5示出了神经网络压缩设备的硬件结构框图,参照图5,神经网络压缩设备的硬件结构可以包括:至少一个处理器1,至少一个通信接口2,至少一个存储器3和至少一个通信总线4;
[0203]
在本技术实施例中,处理器1、通信接口2、存储器3、通信总线4的数量为至少一个,且处理器1、通信接口2、存储器3通过通信总线4完成相互间的通信;
[0204]
处理器1可能是一个中央处理器cpu,或者是特定集成电路asic(application specific integrated circuit),或者是被配置成实施本发明实施例的一个或多个集成电路等;
[0205]
存储器3可能包含高速ram存储器,也可能还包括非易失性存储器(non-volatile memory)等,例如至少一个磁盘存储器;
[0206]
其中,存储器存储有程序,处理器可调用存储器存储的程序,所述程序用于:
[0207]
获取待压缩的多层级深度学习神经网络及其对应的网络损失;
[0208]
确定与所述多层级深度学习神经网络对应的稀疏编码及稀疏权重;
[0209]
确定所述稀疏编码对应的稀疏编码损失及所述稀疏权重对应的稀疏权重损失;
[0210]
将所述网络损失、所述稀疏编码损失及稀疏权重损失进行融合,得到融合后的压缩损失;
[0211]
利用所述压缩损失对所述多层级深度学习神经网络的各层级输出过程中的参数进行压缩,得到压缩后的多层级深度学习神经网络。
[0212]
可选的,所述程序的细化功能和扩展功能可参照上文描述。
[0213]
本技术实施例还提供一种存储介质,该存储介质可存储有适于处理器执行的程序,所述程序用于:
[0214]
获取待压缩的多层级深度学习神经网络及其对应的网络损失;
[0215]
确定与所述多层级深度学习神经网络对应的稀疏编码及稀疏权重;
[0216]
确定所述稀疏编码对应的稀疏编码损失及所述稀疏权重对应的稀疏权重损失;
[0217]
将所述网络损失、所述稀疏编码损失及稀疏权重损失进行融合,得到融合后的压缩损失;
[0218]
利用所述压缩损失对所述多层级深度学习神经网络的各层级输出过程中的参数进行压缩,得到压缩后的多层级深度学习神经网络。
[0219]
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那
些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0220]
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。
[0221]
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本技术。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本技术的精神或范围的情况下,在其它实施例中实现。本技术的各个实施例之间可以相互结合。因此,本技术将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1