本公开涉及机器学习,具体涉及一种基于逆时针逐块知识蒸馏的神经网络模型压缩方法及系统。
背景技术:
1、本部分的陈述仅仅是提供了与本公开相关的背景技术信息,不必然构成在先技术。
2、深度学习是人工智能领域中极其重要的一个方向,它的出现使得人工智能领域产生了革命性的变化,它成功的促进了各种真实场景任务的发展,比如图像分类、图像生成、目标检测、文本分类。深度学习模型强大的功能往往受益于其庞大的参数量,而在工业界很多领域需要的却是轻量级的深度学习模型,因此如何有效地降低深度学习模型大小和计算量并且不会造成模型性能的过多损失是目前的研究热点。
3、模型压缩是一种将大型神经网络模型转变为更轻量级神经网络的方法,逐块知识蒸馏方法属于模型压缩方法的一种,它通过逐块优化的方式,将教师模型子网块序列替换成学生模型子网块序列从而获得轻量级且高效的学生模型。
4、教师和学生模型由于容量的巨大差异导致它们存在着“代沟”,性能更强的教师模型在有时候反而会得到更差的学生模型。
5、之前基于逐块知识蒸馏的方法忽视了神经网络模型中位于不同层次的子网块之间具有的功能和结构差异性而对这些子网块采用同样的处理,也并未针对教师模型和学生模型之间存在的代沟做出对应措施而是迫使学生子网块去恢复教师子网块的输出。
技术实现思路
1、本公开为了解决上述问题,提出了基于逆时针逐块知识蒸馏的神经网络模型压缩方法及系统,采用逆时针逐块知识蒸馏方法来应对教师模型和学生模型之间的代沟问题,并设计一种对神经网络内部不同子网块采取不同处理的学生子网块设计方法。
2、根据一些实施例,本公开采用如下技术方案:
3、基于逆时针逐块知识蒸馏的神经网络模型压缩方法,包括:
4、获取构建并训练好的教师模型,并保存训练教师模型时所使用的损失函数;
5、将所述教师模型由浅到深划分n个子网块,教师模型最浅层的子网块直接作为学生模型最浅层子网块,并以教师模型最浅层子网块之外的n-1个子网块为基础分别构造n-1个学生模型子网块;
6、利用所述损失函数,将获得的n-1个学生模型子网块按照自顶向下的顺序依次替换教师模型中最浅层子网块之外的n-1个子网块获取到中间模型;
7、利用损失函数将中间模型进行训练至收敛得到压缩后的目标学生模型。
8、根据一些实施例,本公开采用如下技术方案:
9、基于逆时针逐块知识蒸馏的神经网络模型压缩系统,包括:
10、数据加载模块,用于获取构建并训练好的教师模型,并保存训练教师模型时所使用的损失函数;
11、压缩模块,用于将所述教师模型由浅到深划分n个子网块,教师模型最浅层的子网块直接作为学生模型最浅层子网块,并以教师模型最浅层子网块之外的n-1个子网块为基础分别构造n-1个学生模型子网块;利用所述损失函数,将获得的n-1个学生模型子网块按照自顶向下的顺序依次替换教师模型中最浅层子网块之外的n-1个子网块获取到中间模型;利用损失函数将中间模型进行训练至收敛得到压缩后的目标学生模型。
12、根据一些实施例,本公开采用如下技术方案:
13、一种计算机可读存储介质,其中存储有多条指令,所述指令适于由终端设备的处理器加载并执行所述的基于逆时针逐块知识蒸馏的神经网络模型压缩方法。
14、根据一些实施例,本公开采用如下技术方案:
15、一种终端设备,包括处理器和计算机可读存储介质,处理器用于实现各指令;计算机可读存储介质用于存储多条指令,所述指令适于由处理器加载并执行所述的基于逆时针逐块知识蒸馏的神经网络模型压缩方法。
16、与现有技术相比,本公开的有益效果为:
17、本公开在逐块知识蒸馏中增加解冻训练过程,这有利于减少学生模型对教师模型的依赖性并使得学生模型找到更适合自己的参数分布。
18、本公开在逐块知识蒸馏过程中不使用任何中间层损失函数而以中间模型的最终输出和真实值的差异作为损失函数,这使学生模型关注教师模型中更高级的信息,而不是一味去还原教师模型的输出从而缓解学生模型和教师模型之间的代沟问题。
19、本公开逐块知识蒸馏在每个替换阶段,都试图让学生子网块去代替教师子网块,然而由于教师和学生之间代沟的存在,每次替换过程都会产生信息的损失,这和dropout随机丢弃子节点造成的影响类似,使用dropout的神经网络通常会在深层使用更大的压缩比例,此外神经网络模型浅层往往蕴含大量输入信息,因此本发明由浅到深增加对教师模型子网块的缩减程度,这有利于减小输入信息的损失。
1.基于逆时针逐块知识蒸馏的神经网络模型压缩方法,其特征在于,包括:
2.如权利要求1所述的基于逆时针逐块知识蒸馏的神经网络模型压缩方法,其特征在于,所述损失函数为模型的预测值与真实值的差异程度,根据具体任务而定。
3.如权利要求1所述的基于逆时针逐块知识蒸馏的神经网络模型压缩方法,其特征在于,所述划分的子网块的数量至少占其所在模型总参数量的2%。
4.如权利要求1所述的基于逆时针逐块知识蒸馏的神经网络模型压缩方法,其特征在于,构造学生模型子网块的方法包括:
5.如权利要求4所述的基于逆时针逐块知识蒸馏的神经网络模型压缩方法,其特征在于,对于包含输出层的教师模型子网块,保持输出层大小不变,只缩减其余网络层的通道数,由浅到深的增加对教师模型子网块的压缩程度。
6.如权利要求1所述的基于逆时针逐块知识蒸馏的神经网络模型压缩方法,其特征在于,所述学生模型与教师模型用于同一任务中。
7.如权利要求1所述的基于逆时针逐块知识蒸馏的神经网络模型压缩方法,其特征在于,所述利用损失函数,将获得的n-1个学生模型子网块按照自顶向下的顺序依次替换教师模型中最浅层子网块之外的n-1个子网块的具体过程为:
8.基于逆时针逐块知识蒸馏的神经网络模型压缩系统,其特征在于,包括:
9.一种计算机可读存储介质,其特征在于,其中存储有多条指令,所述指令适于由终端设备的处理器加载并执行权利要求1-7中任一项所述的基于逆时针逐块知识蒸馏的神经网络模型压缩方法。
10.一种终端设备,其特征在于,包括处理器和计算机可读存储介质,处理器用于实现各指令;计算机可读存储介质用于存储多条指令,所述指令适于由处理器加载并执行如权利要求1-7中任一项所述的基于逆时针逐块知识蒸馏的神经网络模型压缩方法。