首页 / 专利库 / 人工智能 / 人工智能 / 机器学习 / 人工神经网络 / 前馈神经网络 / 深度神经网络 / 卷积神经网络 / 基于剪枝和蒸馏的卷积神经网络压缩方法

基于剪枝和蒸馏的卷积神经网络压缩方法

阅读:649发布:2024-02-09

专利汇可以提供基于剪枝和蒸馏的卷积神经网络压缩方法专利检索,专利查询,专利分析的服务。并且本公开提供一种基于 剪枝 和蒸馏的 卷积神经网络 压缩方法(400),包括:对原始卷积神经网络模型进行剪枝操作,得到剪枝后的模型(S401);对剪枝后的模型进行参数微调(S403);利用原始卷积神经网络模型作为蒸馏 算法 的老师网络,将经过参数微调的剪枝后的模型作为蒸馏算法的学生网络,根据蒸馏算法,通过老师网络来指导学生网络进行训练(S405);将经过蒸馏算法训练的学生网络作为压缩后的卷积神经网络模型(S407)。本公开的方法通过将两个传统的网络压缩方法联合使用,更有效地压缩了卷积神经网络模型。,下面是基于剪枝和蒸馏的卷积神经网络压缩方法专利的具体信息内容。

1.一种卷积神经网络压缩方法,包括:
对原始卷积神经网络模型进行剪枝操作,得到剪枝后的模型;
对剪枝后的模型进行参数微调;
利用原始卷积神经网络模型作为蒸馏算法的老师网络,将经过参数微调的剪枝后的模型作为蒸馏算法的学生网络,根据蒸馏算法,通过老师网络来指导学生网络进行训练;
将经过蒸馏算法训练的学生网络作为压缩后的卷积神经网络模型。
2.根据权利要求1所述的方法,其中,所述的剪枝操作包括:保留原始卷积神经网络模型中重要的连接或模,删除其余的连接或模块。
3.根据权利要求2所述的方法,其中,基于剪枝准则来确定保留或删除哪些连接或模块。
4.根据权利要求3所述的方法,其中,所述剪枝准则是网络模型的元素的绝对值的大小,所述绝对值大于阈值的元素得以保留,所述绝对值小于阈值的元素被设置为0。
5.根据权利要求3所述的方法,其中,所述剪枝准则是网络模型的卷积核中的元素绝对值之和的大小,所述绝对值之和大于阈值的卷积核得以保留,所述绝对值之和小于阈值的卷积核被删除。
6.根据权利要求1所述的方法,其中,所述的根据蒸馏算法,通过老师网络来指导学生网络进行训练包括:通过用学生网络的输出去拟合老师网络的输出,对学生网络的参数进行调整。

说明书全文

基于剪枝和蒸馏的卷积神经网络压缩方法

技术领域

[0001] 本发明涉及卷积神经网络,更具体涉及基于剪枝和蒸馏的卷积神经网络压缩方法。

背景技术

[0002] 卷积神经网络(Convolutional Neural Network,CNN)目前被广泛地应用在计算机视觉的各个领域,如图像识别、物体检测、图像分割等等,是计算机视觉和多媒体领域的研究热点和关键技术,具有重要的研究意义和实用价值。卷积神经网络是深度学习技术中具有代表性的网络结构之一,在图像处理领域取得了很大的成功,在国际标准的ImageNet数据集上,许多成功的模型都是基于卷积神经网络。相较于传统的图像处理算法,卷积神经网络避免了对图像复杂的前期预处理过程(提取人工特征等),可以直接输入原始的图像,是一种端到端的模型。
[0003] 卷积神经网络虽然取得了较好的效果,但由于卷积神经网络模型的参数量较大,运算次数较多,目前卷积神经网络的运算一般采用GPU进行加速,卷积神经网络的应用也多在端,在终端落地面临巨大的挑战。
[0004] 为了减少网络模型的冗余,科研人员提出对模型进行剪枝的压缩。例如,参见S.Han,J.Pool,J.Tran,W.J.DalIy(2015)Learning both Weights and Connections for Efficient Neural Network.In Advances in Neural Information Processing Systems,其公开的全部内容通过援引加入进来。另外,也可以参见和S.Han,H.Mao,W.J.Dally(2016)Deep compression:Compressing deep neural network with pruning,trained quantization and huffman coding.In International Conference on Learning Representations,其公开的全部内容通过援引加入进来。在剪枝中,通过一定的准则,保留比较重要的连接或元素,并将其余的连接或者元素删除,得到压缩的网络。然后,对压缩后的网络进行参数微调。图1是对卷积神经网络进行剪枝的示意图。该剪枝方法能够有效地减小模型的参数和运算量,但由于删除了原始模型中的部分元素和模,压缩后模型的准确率也有一定程度的损失。
[0005] 另一类模型压缩方法被称为蒸馏算法。例如,参见G.Hinton,O.Vinyals,J.Dean(2015)Distilling the knowledge in a neural network.arXiv preprint arXiv:1503.02531,其公开的全部内容通过援引加入进来。在蒸馏算法中,将复杂模型的“知识”提炼或者蒸馏到小模型,指导小模型的训练,从而也实现了对大模型的压缩。该类方法能够提升小模型的性能,减小大模型的运算量,但蒸馏后的小模型的性能往往不够理想。
[0006] 考虑到针对卷积神经网络应用的现状,希望提出一种新型的卷积神经网络压缩方法。

发明内容

[0007] 本发明提出了一种基于剪枝和蒸馏的卷积神经网络压缩方法,该方法在有效压缩模型的同时能达到较好的模型精度。对网络模型进行剪枝后,模型精度往往会有所降低,我们首先对该模型进行参数微调来恢复模型的精度。进一步地,我们采用蒸馏的方法将原始模型中的知识提炼到压缩模型中,提升压缩模型的性能。在蒸馏中,原始的模型作为大模型,剪枝后的模型作为小模型。训练时,我们使小网络的输出去拟合大网络的输出,从而达到蒸馏的目的。相对于剪枝方法和蒸馏方法,本发明将两个传统的网络压缩方法联合使用,更有效地压缩卷积神经网络模型。
[0008] 具体地说,根据本发明,提供了卷积神经网络压缩方法,包括:对原始卷积神经网络模型进行剪枝操作,得到剪枝后的模型;对剪枝后的模型进行参数微调;利用原始卷积神经网络模型作为蒸馏算法的老师网络,将经过参数微调的剪枝后的模型作为蒸馏算法的学生网络,根据蒸馏算法,通过老师网络来指导学生网络进行训练;将经过蒸馏算法训练的学生网络作为压缩后的卷积神经网络模型。
[0009] 优选地,所述的剪枝操作可以包括:保留原始卷积神经网络模型中重要的连接或模块,删除其余的连接或模块。
[0010] 在根据本发明的方法中,优选地,基于剪枝准则来确定保留或删除哪些连接或模块。
[0011] 优选地,所述剪枝准则可以是网络模型的元素的绝对值的大小,所述绝对值大于阈值的元素得以保留,所述绝对值小于阈值的元素被设置为0。
[0012] 优选地,所述剪枝准则可以是网络模型的卷积核中的元素绝对值之和的大小,所述绝对值之和大于阈值的卷积核得以保留,所述绝对值之和小于阈值的卷积核被删除。
[0013] 优选地,所述的根据蒸馏算法,通过老师网络来指导学生网络进行训练可以包括:通过用学生网络的输出去拟合老师网络的输出,对学生网络的参数进行调整。
附图说明
[0014] 下面参考附图结合实施例说明本发明。在附图中:
[0015] 图1是对卷积神经网络进行剪枝的示意图。
[0016] 图2是对卷积神经网络进行蒸馏算法的示意图。
[0017] 图3是根据本发明实施例的压缩方法的示意图。
[0018] 图4是根据本发明实施例的卷积神经网络压缩方法的流程图

具体实施方式

[0019] 附图仅用于示例说明,不能理解为对本专利的限制;下面结合附图和实施例对本发明的技术方案做进一步的说明。
[0020] 为了对卷积神经网络模型进行压缩,我们首先对网络进行剪枝操作。图1是对卷积神经网络进行剪枝的示意图。
[0021] 在剪枝时,我们设定一个剪枝准则,对模型的每一层的参数,满足剪枝准则的元素或者模块被删除掉。剪枝的目的是保留比较重要的连接或者元素。
[0022] 在对网络的元素剪枝时,剪枝准则一般是元素的绝对值的大小。绝对值大的元素被保留,绝对值小的元素被置为0。另一种剪枝方法是对网络的卷积核进行剪枝,将卷积核中的元素绝对值之和较大的卷积核保留,将其他的卷积核删除。
[0023] 前一种剪枝方法可以有效减小运算量以及模型的尺寸,后一种剪枝方法可以压缩模型尺寸,在特定硬件上可以加速运算。
[0024] 通过剪枝,我们得到了一个压缩后的小模型。由于原始模型的部分模块被删除,此时小模型的精度较差。我们对剪枝后的小模型进行参数微调。通常在参数微调后,模型的性能会得到较大的改善,但一般会低于原始网络模型的性能。在此基础上,我们通过蒸馏技术,进一步提升压缩模型的性能。
[0025] 蒸馏是一种将大网络中的“知识”提炼到小网络中的技术。图2是对卷积神经网络进行蒸馏算法的示意图。蒸馏算法中有两个网络,即老师网络和学生网络。老师网络为大网络模型,学生网络为小的网络模型,老师网络指导学生网络的训练。训练的目标是使学生网络的输出逼近教师网络的输出。由于老师网络的输出相对于图片的标签包含更多的信息,因此蒸馏技术相对于传统的网络训练方法能够更好地训练网络。在蒸馏时,我们利用完整的网络作为教师网络,剪枝后的网络作为学生模型。训练的损失函数为教师网络全连接层的输出与学生网络全连接层的输出的交叉熵损失或者二范数损失。蒸馏的收敛往往比从头训练要快很多。
[0026] 以上的过程可用图3来表示。图3是根据本发明实施例的压缩方法的示意图。
[0027] 如图3中所示,首先,对卷积神经网络模型(原始模型)进行剪枝操作,保留比较重要的连接或者模块,删除其余的连接或者模块,得到剪枝后的模型。剪枝后的模型尺寸得到压缩,但是性能较差。
[0028] 接下来,对剪枝后的模型进行参数微调,提升剪枝模型的性能,得到微调后的剪枝模型。微调后的剪枝模型性能有了较大的提升,但还是会略低于完整的模型。
[0029] 然后,利用原始的卷积神经网络作为蒸馏算法的老师网络,将上一步骤中得到的微调后的剪枝模型作为蒸馏中的学生模型,通过原始网络模型指导剪枝网络模型训练,对参数进行调整,进一步提升剪枝模型的性能。
[0030] 最后,蒸馏训练后的学生模型即为最终的压缩模型。
[0031] 为清楚起见,申请人绘制了该方法的流程图。图4是根据本发明实施例的卷积神经网络压缩方法的流程图。
[0032] 如图4中所示,根据本发明的卷积神经网络压缩方法400开始于步骤S401,在此步骤,对原始卷积神经网络模型进行剪枝操作,得到剪枝后的模型。
[0033] 根据本发明的优选实施例,步骤S401所述的剪枝操作可以包括:保留原始卷积神经网络模型中重要的连接或模块,删除其余的连接或模块。更具体地说,基于剪枝准则来确定保留或删除哪些连接或模块。
[0034] 根据本发明的一个优选实施例,所述剪枝准则可以是网络模型的元素的绝对值的大小,所述绝对值大于阈值的元素得以保留,所述绝对值小于阈值的元素被设置为0。
[0035] 根据本发明的另一优选实施例,所述剪枝准则可以是网络模型的卷积核中的元素绝对值之和的大小,所述绝对值之和大于阈值的卷积核得以保留,所述绝对值之和小于阈值的卷积核被删除。
[0036] 接下来,在步骤S403,对剪枝后的模型进行参数微调。
[0037] 然后,在步骤S405,利用原始卷积神经网络模型作为蒸馏算法的老师网络,将经过参数微调的剪枝后的模型作为蒸馏算法的学生网络,根据蒸馏算法,通过老师网络来指导学生网络进行训练。通过用学生网络的输出去拟合老师网络的输出,对学生网络的参数进行调整。
[0038] 在步骤S407,将经过蒸馏算法训练的学生网络作为压缩后的卷积神经网络模型。然后,方法400结束。
[0039] 综上所述,本发明提出了一种基于剪枝和蒸馏的神经网络模型的压缩方法。该方法中,首先利用剪枝压缩网络模型,然后利用蒸馏算法来对压缩模型的参数进行调整,提升压缩模型的性能。本发明将两种传统的剪枝方法联合使用,压缩后的模型性能可以与原始模型的性能相当。
[0040] 本领域普通技术人员通过以上的详细描述应该理解,本发明并非剪枝法与蒸馏法的简单组合。一方面,传统的剪枝法得到的模型精度往往有所降低,需要通过额外的手段来提升精度;另一方面,蒸馏算法中,通过使用剪枝后模型作为小网络,去拟合大网络的输出,蒸馏的收敛往往比从头训练要快得多。也就是说,通过本发明这样将剪枝法和蒸馏法的联合使用,不仅通过剪枝法大大压缩了网络模型的规模,提高了蒸馏算法的收敛速度,而且使得压缩后的网络模型的性能可以与原始模型的性能相当,从而充分达到了本领域技术人员压缩卷积神经网络的目标,更有利于在实践中应用。
[0041] 上面已经描述了本发明的各种实施例和实施情形。但是,本发明的精神和范围不限于此。本领域技术人员将能够根据本发明的教导而做出更多的应用,而这些应用都在本发明的范围之内。
[0042] 也就是说,本发明的上述实施例仅仅是为清楚说明本发明所做的举例,而非对本发明实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其他不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。凡在本发明的精神和原则之内所作的任何修改、替换或改进等,均应包含在本发明权利要求的保护范围之内。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈