基于层数采样的模型压缩方法、深度神经网络模型技术

技术编号:31015329 阅读:18 留言:0更新日期:2021-11-30 02:55
本发明专利技术提供分别从两个方面提供了两种基于层数采样的模型压缩方法,均基于若干级联子网络结构完全一致的神经网络,其中一种基于层数采样的模型压缩方法包括生成在预设区间均匀分布的随机正整数,所述区间的极值不大于所述子网络的总个数;选取所述随机正整数个所述子网络进行一次迭代;其中第二种基于层数采样的模型压缩方法包括评估神经网络模型的性能,确定n的理想值;使得所述神经网络中保留在前的n个所述子网络。能够实现在训练时、推理时加快运算速度、节约计算资源且兼顾保持模型的性能。本发明专利技术还提供的深度神经网络模型因采用本发明专利技术的模型压缩方法而具有相应优势,有利于更广泛的应用场景下的实现。广泛的应用场景下的实现。广泛的应用场景下的实现。

【技术实现步骤摘要】
基于层数采样的模型压缩方法、深度神经网络模型


[0001]本专利技术属于神经网络
,尤其涉及基于层数采样的神经网络的模型压缩方法及相应的神经网络模型。

技术介绍

[0002]随着人工智能,特别是深度学习技术的发展,各种基于神经网络的智慧任务已进入了普通人日常生活的方方面面。人工神经网络(artificial neural network, ANN),简称神经网络(neural network,NN),是一种包含多层隐层的机器学习模型。神经网络技术推动了各行各业的发展,提高了人们生活生产的便利性。
[0003]神经网络的应用一般有训练(Training)和推理(Inference)两个部分。所谓训练,通常是指用随机梯度下降等方法,依据给定数据样本和优化目标,不断迭代和优化神经网络参数的过程。所谓推理,是指将新得到的数据输入已经训练好的神经网络,得到预测结果的过程。例如,训练时,给定一百万张动物图片,要求神经网络学习对动物图片进行分类;在推理时,给定一张新的动物图片,并将其输入训练好的神经网络,获取预测的分类结果。具体来说,神经网络的训练是基于给定的数据的,例如“一亿张图片”就是给定的数据;神经网络的训练也需要给定的优化目标,例如“最小化分类错误率”,是在网络训练之前已经人为规定好的。如果说训练是制造神经网络的过程,那么推理可以理解为使用神经网络的过程,作为类比的,把神经网络比作缉毒犬,神经网络的应用就包括训练缉毒犬和要求缉毒犬在真实场景下找到毒品。推理结果即神经网络对于既定任务给出的判断,如,神经网络判断某一张动物图片是“狗”的概率为99%。
[0004]神经网络的训练和推理都对计算资源(Computational Resources)有较高的要求。所谓计算资源,是指可以对神经网络进行训练、推理的高性能计算机系统或集群的工作能力(主要是CPU/GPU的运算能力或称计算量)。在训练较大规模的神经网络时,常常占用高价值计算机平台长达数天乃至数周时间,此部分花费成为了神经网络训练中的主要成本;一般来说,使用神经网络进行一次推理需要的计算量最高可以达到千亿次浮点运算,即使是交给高性能计算机进行运算也需要较长的时间。同时,大规模的神经网络往往具有亿级别的参数,因此在推理时,神经网络模型处理一个请求的时间常常达到数百毫秒乃至数秒,且占据了计算机较大的存储空间。此部分成为了现有神经网络进行推理(或提供服务)中产生的主要成本。在线下处理数据,对时间要求不高的话,还能接受,能跑完就好。但是线上运行,对延迟要求高的话,像BERT模型这样的大模型,就需要巨大的计算资源而且由于其运算速度的限制并不能完全满足应用的需求。特别的,上述这些主要成本在智能家居的应用场景中尤其不利。出于经济和空间利用等方面的考虑,用户在智能家居中部署的终端设备通常是计算能力有限的小型终端设备,诸如智能音箱、智能网关和小型家用主机等等,神经网络训练或推理需要的成本难以负担,限制了神经网络技术在普通人生活中的进一步推广应用。
[0005]现有技术中为了减小神经网络在工作时占用的计算资源,业界投入了大量的人力
物力,目前已有一些训练或推理的方法被提出,一般统称此类方法为神经网络的模型压缩方法(或称压缩方法)。对于训练,现有技术中的压缩方法较好的有层丢弃(Layer Dropout,一种结构性丢弃法,在训练期间具有正则化效果,并允许在推断时的高效剪枝)等方法;对于推理,现有技术中有剪枝、量化、低秩 (逼近)近似、知识蒸馏(精炼)等做法。这些方法一定程度上减少推理时的耗时,减小存储空间占用。但如何在不影响或少影响神经网络精度的情况下,能够减小计算量和存储空间占用一直以来都是一个亟需攻克的技术难点。
[0006]因此目前十分需要研究神经网络的模型压缩方法及相应的深度神经网络模型,能够降低计算资源要求,兼顾模型性能不被减损,以此进一步推动神经网络技术的深入发展及广泛应用。

技术实现思路

[0007]本专利技术是为解决上述现有技术的全部或部分问题,本专利技术第一方面提供基于层数采样的模型压缩方法,主要适用于在训练神经网络时减少在工作时占用的计算资源;本专利技术第二方面提供的基于层数采样的模型压缩方法主要用于神经网络进行推理时,减少内存空间占用,缩短推理耗时;相应的本专利技术第三方面提供了一种深度神经网络模型。
[0008]本专利技术第一方面提供的基于层数采样的模型压缩方法,基于若干级联子网络结构完全一致的神经网络,包括:步骤S1.生成在预设区间均匀分布的随机正整数,所述区间的极值不大于所述子网络的总个数;步骤S2.选取所述随机正整数个所述子网络进行一次迭代;重复所述步骤S1至所述步骤S2,完成每次迭代,直至模型收敛。
[0009]所述的一次迭代,指的是依照随机梯度下降算法进行一次参数更新的过程。级联是指上一层子网络的输出直接作为下一层神经网络的输入。完全一致的结构指的是若干相同结构的重复,子网络具有一致的计算规则。有的情况中子网络的结构一致,其中的可训练参数也可以不一致。子网络可以拆分为“结构”和“参数”来理解。示例的情况中,每一层子网络都会将输入数据乘以一个z
×
z的矩阵, z为固定的数,理解为结构;但这个矩阵的具体数值可以是不一样的,具体数值就是参数。设所述级联子网络总个数记为N,生成在预设区间(L,H)均匀分布的随机正整数,记为m,m满足均匀分布U(L,H),即m~U(L,H);其中L,H为不大于N的预先人工设置的正整数,即H≤N。训练所述神经网络时,一次迭代只选用m层进行训练,能够平均将每次迭代的层数从H减少到均匀分布的期望值,即平均每次迭代选用个子网络,相较于使用完整的N个所述子网络进行训练,平均而言,节省了所述神经网络最后层的计算资源,除了运算显著加快,训练得到的神经网络模型的性能相比使用完整的N个所述子网络训练得到的模型性能也没有明显的退化。
[0010]有的情况中,所述若干级联子网络使用的训练参数互不相同。
[0011]有的情况中,所述若干级联子网络使用的训练参数是同样的一组。参数相同是一种参数共享策略(PSS,Parameter Sharing Strategy),模型压缩方法中采用这种策略能够有效减少参数,相对于子网络的参数不同的一致性结构,层间的特征分布保持了更紧凑的布局,利于进一步提高运算速度。
[0012]本专利技术第二方面提供的基于层数采样的模型压缩方法,基于若干级联子网络结构
完全一致的神经网络,包括:步骤一.设定数值,记为n,n为正整数且小于所述子网络总个数;步骤二.使得所述神经网络中保留在前的n个所述子网络;步骤一中设定数值包括:评估神经网络模型的性能,确定n的理想值。
[0013]所述神经网络在推理时对于子网络数目的减少是不敏感的,即对层数的删减不敏感。即使舍弃一定数量的层数(子网络个数)后,神经网络模型的精度没有显著变差。而传统的剪枝方法,随着剪枝的进行,神经网络模型的精度将显著变差。
[0014]确定n的理想值包括:直接选取特定数量的子网络进行保留,测试神经网络本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.基于层数采样的模型压缩方法,其特征在于:基于若干级联子网络结构完全一致的神经网络,包括:步骤S1.生成在预设区间均匀分布的随机正整数,所述区间的极值不大于所述子网络的总个数;步骤S2.选取所述随机正整数个所述子网络进行一次迭代;重复所述步骤S1至所述步骤S2,完成每次迭代,直至模型收敛。2.根据权利要求1所述的基于层数采样的模型压缩方法,其特征在于:所述若干级联子网络使用的训练参数是同样的一组。3.基于层数采样的模型压缩方法,其特征在于:基于若干级联子网络结构完全一致的神经网络,包括:步骤一.设定数值,记为n,n为正整数且小于所述子网络总个数;步骤二.使得所述神经网络中保留在前的n个所述子网络;步骤一中设定数值包括:评估神经网络模型的性能,确定n的理想值。4.根据权利要求3所述的基于层数采样的模型压缩方法,其特征在于:“确定n的理想值”包括:直接选取特定数量的子网络进行保留,测试神经网络模型的性能是否下降,如无下降,则将所述特定数量确定为n的理想值。5.根据权利要求3所述的基于层数采样的模型压缩方法,其特征在于:确定n的理想值包括:选取一个正整数记为i, 保留前i个子网络后评估神经网...

【专利技术属性】
技术研发人员:黄羿衡陈桂兴
申请(专利权)人:江苏苏云信息科技有限公司
类型:发明
国别省市:

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

1