CN110880036B - 神经网络压缩方法、装置、计算机设备及存储介质 - Google Patents

神经网络压缩方法、装置、计算机设备及存储介质 Download PDF

Info

Publication number
CN110880036B
CN110880036B CN201911142056.XA CN201911142056A CN110880036B CN 110880036 B CN110880036 B CN 110880036B CN 201911142056 A CN201911142056 A CN 201911142056A CN 110880036 B CN110880036 B CN 110880036B
Authority
CN
China
Prior art keywords
network
model parameter
data
teacher
student
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201911142056.XA
Other languages
English (en)
Other versions
CN110880036A (zh
Inventor
柏昊立
吴家祥
侯金龙
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201911142056.XA priority Critical patent/CN110880036B/zh
Publication of CN110880036A publication Critical patent/CN110880036A/zh
Application granted granted Critical
Publication of CN110880036B publication Critical patent/CN110880036B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/082Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections

Abstract

本申请是关于一种神经网络压缩方法、装置、计算机设备及存储介质,涉及神经网络技术领域。该方法包括:将训练样本分别输入教师网络和学生网络;获取教师网络中包含第i层的第一模型参数和第一特征图的第一网络数据,以及学生网络中包含第i层的第二模型参数和第二特征图的第二网络数据,将第一网络数据和第二网络数据进行交叉计算,获得损失函数值,再根据损失函数值对学生网络中的第i层的第二模型参数进行更新。该方案能够在通过少量的训练数据对已经训练好的神经网络进行压缩的场景下,提高压缩后的神经网络的准确性。

Description

神经网络压缩方法、装置、计算机设备及存储介质
技术领域
本申请实施例涉及神经网络技术领域,特别涉及一种神经网络压缩方法、装置、计算机设备及存储介质。
背景技术
近年来,随着神经网络压缩中数据隐私问题的日渐突出,基于无训练数据或者少量训练数据对原始模型进行压缩的算法研究也越来越得到业界的重视。
在相关技术中,无训练数据或者基于少量训练数据进行神经网络模型的压缩算法主要通过知识蒸馏的框架来实现。例如,以训练完成的待压缩的神经网络模型作为教师网络,并另外设置一个结构相同且模型规模小于教师网络的神经网络作为学生网络,通过少量样本分别输出教师网络和学生网络,并将教师网络中的中间层的结果作为监督信号,通过逐层贪心算法对学生网络进行训练,以达到模型压缩的目的。
然而,上述相关技术所示的方案,由于训练数据过少,学生网络容易出现过拟合,从而导致模型压缩得到学生网络的准确率较低。
发明内容
本申请实施例提供了一种神经网络压缩方法、装置、计算机设备及存储介质,可以神经网络压缩,技术方案如下:
一方面,提供了一种神经网络压缩方法,所述方法包括:
将训练样本分别输入教师网络和学生网络;所述教师网络是已经训练完成的神经网络,所述学生网络的层级结构与所述教师网络是层级结构相同,且所述学生网络的模型参数规模小于所述教师网络的模型参数规模;
获取教师网络的第一网络数据,所述第一网络数据包括所述教师网络中的第i层的第一模型参数和所述教师网络中的第i层的第一特征图;1≤i≤N,且i为整数,N是所述教师网络的网络层数;
获取学生网络的第二网络数据,所述第二网络数据包括所述学生网络中的第i层的第二模型参数和所述学生网络中的第i层的第二特征图;
将所述第一网络数据和所述第二网络数据进行交叉计算,获得损失函数值;
根据所述损失函数值对所述学生网络中的第i层的第二模型参数进行更新。
另一方面,提供了一种神经网络压缩装置,所述装置包括:
输入模块,用于将训练样本分别输入教师网络和学生网络;所述教师网络是已经训练完成的神经网络,所述学生网络的层级结构与所述教师网络是层级结构相同,且所述学生网络的模型参数规模小于所述教师网络的模型参数规模;
第一数据获取模块,用于获取教师网络的第一网络数据,所述第一网络数据包括所述教师网络中的第i层的第一模型参数和所述教师网络中的第i层的第一特征图;1≤i≤N,且i为整数,N是所述教师网络的网络层数;
第二数据获取模块,用于获取学生网络的第二网络数据,所述第二网络数据包括所述学生网络中的第i层的第二模型参数和所述学生网络中的第i层的第二特征图;
交叉计算模块,用于将所述第一网络数据和所述第二网络数据进行交叉计算,获得损失函数值;
参数更新模块,用于根据所述损失函数值对所述学生网络中的第i层的第二模型参数进行更新。
可选的,所述交叉计算模块,包括:
第一交叉单元,用于通过软连接的方式对所述第一特征图和所述第二特征图进行交叉计算,得到交叉后的第一特征图以及交叉后的第二特征图;
第一计算单元,用于通过所述第一模型参数、所述交叉后的第一特征图、所述第二模型参数以及所述交叉后的第二特征图计算所述损失函数值。
可选的,所述通过所述第一模型参数、所述第一计算单元,用于根据所述第一模型参数、所述交叉后的第一特征图、所述第二模型参数以及所述交叉后的第二特征图进行F范数距离计算,得到所述损失函数值。
可选的,所述交叉计算模块,包括:
第二计算单元,用于通过所述第一模型参数、所述第二模型参数以及所述第一特征图进行F范数距离计算,得到第一损失;
第三计算单元,用于通过所述第一模型参数、所述第二模型参数以及所述第二特征图进行F范数距离计算,得到第二损失;
第四计算单元,用于根据所述第一损失和所述第二损失获取所述损失函数值。
可选的,所述第四计算单元,用于对所述第一损失和所述第二损失进行凸组合,获得所述损失函数值。
可选的,所述交叉计算模块,用于通过所述第一模型参数、所述第二模型参数以及所述第二特征图进行F范数距离计算,得到所述损失函数值。
可选的,所述交叉计算模块,用于通过所述第一模型参数、所述第二模型参数以及所述第一特征图进行F范数距离计算,得到所述损失函数值。
可选的,所述学生网络中的第i层是所述学生网络的各个网络层中,未通过所述训练样本进行更新的最上一层网络层。
可选的,所述教师网络和所述学生网络是卷积神经网络;
所述第一模型参数是所述教师网络中的第i层的卷积核;
所述第二模型参数是所述学生网络中的第i层的卷积核。
可选的,所述参数更新模块,用于根据所述损失函数值,通过近端梯度下降算法对所述学生网络中的第i层的第二模型参数进行更新。
又一方面,提供了一种计算机设备,所述计算机设备包含处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如上所述的神经网络压缩方法。
又一方面,提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现如上所述的神经网络压缩方法。
本申请提供的技术方案可以包括以下有益效果:
通过将训练样本分别输入教师网络和学生网络;获取教师网络中包含第i层的第一模型参数和第一特征图的第一网络数据,以及学生网络中包含第i层的第二模型参数和第二特征图的第二网络数据,将第一网络数据和第二网络数据进行交叉计算,获得损失函数值,再根据损失函数值对学生网络中的第i层的第二模型参数进行更新,这样既可以将教师网络中没有误差传播的特征图引入学生网络,以对学生网络进行矫正,也可以将学生网络中的特征图引入教师网络,让教师网络感知到学生网络上目前累计的估计误差,从而在于学生网络基于相同输入的情况下,给出更好的反馈来指导学生网络的训练,可以在仅使用少量训练数据的情况下,抑制学生网络的训练过拟合现象,从而减小学生网络与教师网络之间的估计误差,抑制该误差逐级扩大,从而提高通过对教师网络压缩得到的学生网络的准确性。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
图1是本申请各个实施例涉及的一种神经网络压缩系统的系统构成图;
图2是图1所示实施例涉及的神经网络压缩流程框架图;
图3是根据一示例性实施例实施例示出的一种神经网络压缩流程示意图;
图4是根据一示例性实施例实施例示出的一种神经网络压缩流程示意图;
图5是图3所示实施例涉及的一种交叉计算原理图;
图6是图3所示实施例涉及的另一种交叉计算原理图;
图7是图3所示实施例涉及的又一种交叉计算原理图;
图8是根据一示例性实施例示出的一种基于神经网络压缩的流程示意图;
图9是VGG-16在CIFAR-10上不同训练数据大小情况下的准确率示意图;
图10是ResNet-34在ImageNet上不同训练数据大小情况下的top-5准确率示意图;
图11是VGG-16在CIFAR-10上不同稀疏度下的准确度示意图;
图12是ResNet-34在ImageNet上不同稀疏度下的准确度示意图;
图13是本申请一个示例性实施例提供的神经网络压缩装置的方框图;
图14是根据一示例性实施例示出的一种计算机设备的结构示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
本申请提出了一种神经网络压缩方案,该方案能够基于少量的训练数据获得准确性较高的压缩后的神经网络模型,从而能够实现对各种场景,比如各种人工智能(Artificial Intelligence,AI)场景中使用的神经网络进行有效压缩。为了便于理解,下面对本申请涉及到的一些概念进行解释。
(1)人工智能AI
人工智能是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。换句话说,人工智能是计算机科学的一个综合技术,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器。人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。
人工智能技术是一门综合学科,涉及领域广泛,既有硬件层面的技术也有软件层面的技术。人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互系统、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。本申请实施例提供的方案主要涉及人工智能中的机器学习/深度学习等技术。
(2)机器学习(Machine Learning,ML)
机器学习是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。机器学习是人工智能的核心,是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。机器学习和深度学习通常包括人工神经网络、置信网络、强化学习、迁移学习、归纳学习、式教学习等技术。
(3)神经网络
神经网络也称为人工神经网络(Artificial Neural Networks,ANNs)或者连接模型(Connection Model),是一种模仿人类等动物神经网络行为特征,进行分布式并行信息处理的算法数学模型。这种网络依靠系统的复杂程度,通过调整内部大量节点之间相互连接的关系,从而达到处理信息的目的。
(4)网络模型压缩
一个网络模型(比如神经网络模型)通常包含数以百万计甚至千万计的参数和十几层甚至几十层的网络,通常需要非常大的计算代价和存储空间。而网络模型压缩是指通过利用量化、近似等方法来减少网络的参数或存储空间,在不影响神经网络性能的情况下,降低网络计算代价和存储空间。
目前,在考虑数据隐私的情况下,网络压缩可以分为无训练数据的压缩以及基于少量训练数据的压缩这两种。
(5)基于少量训练数据以及知识蒸馏的神经网络压缩
基于少量训练数据以及知识蒸馏的神经网络压缩算法,是一种依赖于极少量训练样本进行微调,通过充分利用少量样本里的监督信息来提高压缩后的神经网络模型的准确率的算法。该类方法可以视作数据隐私性和模型准确率上的折中。该类方法主要延续知识蒸馏的框架,但训练方式从梯度反向传播更新替换为逐层贪心训练。例如,通过逐层求解最小二乘问题,教师网络可以把中间层的结果作为额外监督信号去指导学生网络,从而有效利用小样本下的监督信息。
在本申请中,教师网络是指预先训练好的,待压缩的神经网络;而学生网络是模型结构与教师网络相同,且模型参数规模小于教师网络的模型参数规模的神经网络。
本申请中的神经网络压缩的目的是把预训练好的神经网络模型FT当作教师网络,从中得到一个轻量化的学生模型FS。这里以卷积神经网络为例,假设教师网络第m层的特征图其中,/>为教师网络的卷积核,N,co,ci,k分别代表数据样本数目,输出通道数,输入通道数和卷积核尺寸。类似的,WS为学生网络卷积核,hS为学生网络特征图。
不同于传统使用梯度更新的知识蒸馏方法,由于可利用的样本数目有限,相关技术中通常采取逐层回归的方式对学生网络进行训练,并加以正则化项,即:
其中,Lr(WS)的计算公式用于衡量教师网络和学生网络之间的特征图的弗罗贝尼乌斯(Frobenius)范数距离(简称F范数,F代表Frobenius)。R(WS)是某种被λ控制的正则惩罚项,可用于在学生网络的卷积核WS上引入其它特性,如稀疏等。在训练数据充足时,直接优化上式可以得到一个表现尚可的学生网络,但是在训练数据匮乏时,该方法容易过拟合,与教师网络之间产生较大的估计误差,并且,该误差将随着网络逐级传播,放大,导致最终模型表现力大幅下降。
相比于无训练数据的压缩方法,通过少量训练数据可以明显提升压缩后模型的准确性,但少量训练数据本身会引入新的训练问题:在相关技术中,基于少量数据的知识蒸馏的算法,简单的通过教师网络的中间层的结果对学生网络的中间层的结果进行监督,当训练数据过少时,学生网络容易过拟合,从而在测试时与教师网络之间存在更大的误差,并且,随着神经网络前向传播,该误差会逐级扩大,从而对学生网络的输出层产生巨大扰动,影响其准确率。
本申请后续各个实施例所示的方案,主要是针对基于少量训练数据以及知识蒸馏的神经网络压缩的场景,提高一种新的神经网络压缩算法,以通过少量的训练数据,对已经训练好的神经网络进行压缩,得到准确的压缩后的神经网络。
图1是本申请各个实施例涉及的一种神经网络压缩系统的系统构成图。如图1所示,该系统包括网络压缩请求方设备120、以及网络压缩服务方设备140。
网络压缩请求方设备120可以是台式计算机、膝上型便携计算机、个人工作站等个人计算机设备。
网络压缩服务方设备140可以是一台服务器,或者由若干台服务器,或者是一个虚拟化平台,或者是一个云计算服务中心。
网络压缩请求方设备120和网络压缩服务方设备140之间可以通信网络相连。可选的,该通信网络是有线网络或无线网络。
可选的,上述的无线网络或有线网络使用标准通信技术和/或协议。网络通常为因特网、但也可以是任何网络,包括但不限于局域网(Local Area Network,LAN)、城域网(Metropolitan Area Network,MAN)、广域网(Wide Area Network,WAN)、移动、有线或者无线网络、专用网络或者虚拟专用网络的任何组合)。在一些实施例中,使用包括超文本标记语言(Hyper Text Mark-up Language,HTML)、可扩展标记语言(Extensible MarkupLanguage,XML)等的技术和/或格式来代表通过网络交换的数据。此外还可以使用诸如安全套接字层(Secure Socket Layer,SSL)、传输层安全(Transport Layer Security,TLS)、虚拟专用网络(Virtual Private Network,VPN)、网际协议安全(Internet ProtocolSecurity,IPsec)等常规加密技术来加密所有或者一些链路。在另一些实施例中,还可以使用定制和/或专用数据通信技术取代或者补充上述数据通信技术。
在图1所示的系统中,上述网络压缩请求方设备120可以向网络压缩服务方设备140提供待压缩的神经网络模型以及少量的训练数据,网络压缩服务方设备140通过少量的训练数据对待压缩的神经网络模型进行压缩,得到压缩后的神经网络模型,并将压缩后的神经网络模型返回给网络压缩请求方设备120。
例如,请参考图2,其示出了本申请实施例涉及的神经网络压缩流程框架图。如图2所示,在网络压缩请求方设备120中,网络压缩请求方的开发人员通过大量训练数据对神经网络进行训练,得到训练好的神经网络模型,然后,通过网络压缩服务方设备140提供的接口,将训练好的神经网络模型与少量训练数据发送给网络压缩服务方设备140。在网络压缩服务方设备140中,根据该少量训练数据,通过压缩算法对训练好的神经网络模型进行压缩处理,得到轻量化的,压缩后的神经网络模型。之后,网络压缩服务方设备140将压缩得到的轻量化的神经网络模型返回给网络压缩请求方设备120,由网络压缩请求方设备120对应的网络压缩请求方将该轻量化的神经网络模型应用在计算性能较低的场景中。
从通用的角度而言(如图3所示),考虑用户已经训练好其所需的神经网络,但是由于模型尺寸和计算量过大,需要对模型进行裁剪压缩。由于部分用户不懂得如何裁剪模型,可能会将这部分工作诉诸于提供模型压缩服务的第三方。作为第三方而言,要对模型进行裁剪,通常需要用户同时提供模型和训练数据,以保证裁剪后模型的准确度。由于数据安全和隐私问题,用户通常只愿意提供训练好的模型以及少量的训练数据。本申请所示的方案可以应用的少量训练数据的场景包括但不限于以下场景:
1、车载系统。
对于车载系统而言,由于平台的计算和存储能力受限,并且通常需要集合多种智能技术,如语音识别与控制,地理定位等,轻量化的神经网络通常是该类系统的首选。语音识别等系统的训练数据往往属于车载系统企业的隐私数据,是企业用于打造核心竞品的基础。因此该类训练数据往往比较敏感,难以从企业处获取。
2、手机端离线智能系统。
当下手机端的智能系统通常是经过互联网传输来进行上传与反馈,从而存在隐私泄露,手机信号受限等多种问题。一种常用的解决方案是离线部署手机智能系统,由于手机计算和存储能力受限,往往需要轻量化的模型。该类轻量化模型往往需要利用用户数据进行微调,而手机端的用户数据往往涉及多类应用,如照片,语音,聊天数据等,因此,释放用户数据存在较大的隐私问题。
3、现场可编程逻辑门阵列(Field Programmable Gate Array,FPGA)片上智能系统。
FPGA芯片作为边缘计算的另一重要平台,在嵌入式设备里已经获得广泛应用,如无人机,智能家居,可穿戴设备等。FPGA芯片往往具有低功耗,低延迟的特点,因此直接部署大规模神经网络难以取得理想的特性。为了部署轻量级模型在FPGA端,常常需要依赖于FPGA端的数据进行微调。FPGA端数据获取往往与终端传感设备相关联,该类数据采集成本较高,获取难度较大,有较大的商业成本。
而利用本申请后续实施例提出的方法,用户(即网络压缩请求方)只需提供极少量的训练数据(如每类一张图片),即可以在尽可能地保证用户数据隐私性的同时,大幅提升压缩后的模型的准确度。
图3是根据一示例性实施例实施例示出的一种神经网络压缩流程示意图。其中,该神经网络压缩流程可以由计算机设备执行,比如,该计算机设备可以是上述图1所示的网络压缩服务方设备140。上述神经网络压缩流程可以如下:
S31,将训练样本分别输入教师网络和学生网络。
其中,该教师网络是已经训练完成的神经网络,该学生网络的层级结构与该教师网络是层级结构相同,且该学生网络的模型参数规模小于该教师网络的模型参数规模。
在本申请实施例中,上述教师网络和学生网络可以是网络结构和网络层数相同,但是模型参数不同的两个神经网络模型。也就是说,上述教师网络和学生网络的网络深度相同,但是网络宽度不同。
可选的,其中,上述教师网络可以是已经训练完成的,待压缩的神经网络;而上述学生网络可以是通过教师网络进行参数简化处理得到的神经网络。学生网络初始创建后,其尚未达到准确可用的状态,需要通过后续步骤对其模型参数进行更新。
S32,获取教师网络的第一网络数据,该第一网络数据包括该教师网络中的第i层的第一模型参数和该教师网络中的第i层的第一特征图。
其中,1≤i≤N,且i为整数,N是该教师网络的网络层数。
S33,获取学生网络的第二网络数据,该第二网络数据包括该学生网络中的第i层的第二模型参数和该学生网络中的第i层的第二特征图。
S34,将该第一网络数据和该第二网络数据进行交叉计算,获得损失函数值。
S35,根据该损失函数值对该学生网络中的第i层的第二模型参数进行更新。
通过本申请实施例所示的方案,计算机设备对于学生网络中的各个网络层进行逐层更新,即可以得到压缩后的神经网络模型。
在本申请实施例中,计算机设备并不仅仅将第一网络数据作为监督信号来对学生网络中的模型参数进行调整,而是通过第一网络数据和该第二网络数据进行交叉计算来得到损失函数,这样既可以将教师网络中没有误差传播的特征图引入学生网络,以对学生网络进行矫正,也可以将学生网络中的特征图引入教师网络,让教师网络感知到学生网络上目前累计的估计误差,从而在于学生网络基于相同输入的情况下,给出更好的反馈来指导学生网络的训练,通过上述原理,本申请实施例所示的方案,通过第一网络数据和该第二网络数据进行交叉计算得到的损失函数值进行模型参数更新,可以在仅使用少量训练数据的情况下,抑制学生网络的训练过拟合现象,从而减小学生网络与教师网络之间的估计误差,抑制该误差逐级扩大。
综上所述,本申请实施例所示的方案,通过将训练样本分别输入教师网络和学生网络;获取教师网络中包含第i层的第一模型参数和第一特征图的第一网络数据,以及学生网络中包含第i层的第二模型参数和第二特征图的第二网络数据,将第一网络数据和第二网络数据进行交叉计算,获得损失函数值,再根据损失函数值对学生网络中的第i层的第二模型参数进行更新,该方案能够在通过少量的训练数据对已经训练好的神经网络进行压缩的场景下,提高通过对教师网络压缩得到的神经网络(即学生网络)的准确性。
图4是根据一示例性实施例示出的一种神经网络压缩方法的流程图,该神经网络压缩方法可以用于计算机设备,比如上述图1所示的网络压缩服务方设备140中,通过少量的训练数据对待压缩的神经网络进行压缩处理。如图4所示,该神经网络压缩方法可以包括如下步骤:
步骤401,将训练样本分别输入教师网络和学生网络。
其中,该教师网络是已经训练完成的神经网络,该学生网络的层级结构与该教师网络是层级结构相同,且该学生网络的模型参数规模小于该教师网络的模型参数规模。
在本申请实施例中,计算机设备在进行神经网络压缩时,可以将相同的训练数据分别输入教师网络和学生网络,对于神经网络来说,教师网络和学生网络中的各层可以输出各自的特征图。
步骤402,获取教师网络的第一网络数据,该第一网络数据包括该教师网络中的第i层的第一模型参数和该教师网络中的第i层的第一特征图。
其中,1≤i≤N,且i为整数,N是该教师网络的网络层数。
可选的,当教师网络和学生网络是卷积神经网络时,上述第一模型参数可以是教师网络中的第i层的卷积核。
步骤403,获取学生网络的第二网络数据,该第二网络数据包括该学生网络中的第i层的第二模型参数和该学生网络中的第i层的第二特征图。
可选的,当教师网络和学生网络是卷积神经网络时,上述第二模型参数可以是学生网络中的第i层的卷积核。
在本申请实施例中,计算机设备进行网络压缩时,可以通过逐层训练的方式对学生网络进行训练,也就是说,上述学生网络中的第i层是学生网络的各个网络层中,未通过训练样本进行更新的最上一层网络层。
在本申请实施例中,在获得上述第一网络数据和第二网络数据之后,计算机设备即可以将该第一网络数据和该第二网络数据进行交叉计算,获得损失函数值。该过程请参考后续步骤中的描述。
步骤404,通过所述第一模型参数、所述第二模型参数以及所述第一特征图进行F范数距离计算,得到第一损失。
由于估计误差是在学生网络上逐级传播,为了减小估计误差,本申请实施例提出将教师网络的特征图引入学生网络,作为对学生网络估计的矫正(correction),请参考图5,其输出了本申请实施例涉及的一种交叉计算原理图,如图5所示,定义矫正误差如下:
该设计的原理在于,由于学生网络上的误差在逐级传播放大,而本申请所示的方案希望把没有误差传播的教师网络特征图引入学生网络,对学生网络后续层的输入进行校正,达到更好的监督效果。因此,通过把公式1中的Lr替换为Lc,可以得到一个估计误差更小的学生网络。
步骤405,通过所述第一模型参数、所述第二模型参数以及所述第二特征图进行F范数距离计算,得到第二损失。
类似的,另一种交叉的方法是把学生网络的特征图引入教师网络,请参考图6,其是本申请实施例涉及的另一种交叉计算原理图,如图6所示。该方法是为了让教师网络感知到学生网络上目前累计的估计误差,从而在于学生网络基于相同输入的情况下,给出更好的反馈来指导学生网络的训练。因此,本申请实施例定义该过程为学生模拟教师的行为,模拟损失为:
在本申请实施例中,通过将公式1中的Lr替换为Li,可以得到一个更符合教师网络行为的学生网络。
步骤406,根据第一损失和第二损失获取所述损失函数值。
可选的,在本申请实施例中,计算机设备可以对第一损失和第二损失进行凸组合,获得所述损失函数值。
在本申请实施例中,请参考图7,其是本申请实施例涉及的又一种交叉计算原理图,如图7所示,可以将以上两种蒸馏的损失Lc,Li各自取长补短,相互辅助。对于Lc而言,由于测试阶段和训练阶段前向传播方式存在差别εS,因此优化公式2可能会导致训练,测试目标不一致的问题。相反,时于Li而言,其在训练和测试阶段学生网络的前向传播一致,但是教师网络的监督信息存在误差εT,其中,
上述误差可能会随着网络的加深而逐级扩大,导致监督信号准确度受到影响。为了平衡Lc,Li,本申请实施例中,计算机设备可以对两种损失进行由μ控制的凸组合,即为以下公式:
L=μLc+(1-μ)Li,μ∈[0,1];(4)
理论分析表明,优化公式4可以看作优化学生网络与教师网络在最终模型输出差异的上界,即:
其中,定义Lce(OT;y)为教师网络输出OT与数据标签y的交叉熵损失函数,同理Lce(OS;y)为教师网络输出OS与数据标签y的交叉熵损失函数,Lm为第m层的交叉蒸馏损失函数,C和C’k(μ)分别是常数项和与交叉系数μ相关的常数项。
可选的,除了上述步骤404至步骤406所示的方案之外,计算机设备还可以通过以下方式将该第一网络数据和该第二网络数据进行交叉计算,以获得损失函数值:
计算机设备通过软连接的方式对该第一特征图和该第二特征图进行交叉计算,得到交叉后的第一特征图以及交叉后的第二特征图;
计算机设备通过该第一模型参数、该交叉后的第一特征图、该第二模型参数以及该交叉后的第二特征图获得该损失函数值。
可选的,在通过该第一模型参数、该交叉后的第一特征图、该第二模型参数以及该交叉后的第二特征图获得该损失函数值时,计算机设备也可以根据该第一模型参数、该交叉后的第一特征图、该第二模型参数以及该交叉后的第二特征图进行F范数距离计算,得到该损失函数值。
按照公式4给出的方法进行优化涉及到计算两项损失函数,从而会加倍训练时间。这里我们还给出了另一种经验性的做法,使用软连接进行交叉蒸馏,定义交叉后的特征图为教师和学生网络特征图的凸组合:
然后可以得到优化后的新的损失函数:
其中,L(WS)为该损失函数值,WT为该第一模型参数,为该交叉后的第一特征图,WS为该第二模型参数,/>为该交叉后的第二特征图。
实验表明,优化公式7可以取得与公式4类似的实际效果。
可选的,在将该第一网络数据和该第二网络数据进行交叉计算,获得损失函数值时,计算机设备可以通过该第一模型参数、该第二模型参数以及该第二特征图进行F范数距离计算,得到该损失函数值。
可选的,在将该第一网络数据和该第二网络数据进行交叉计算,获得损失函数值时,计算机设备可以通过该第一模型参数、该第二模型参数以及该第一特征图进行F范数距离计算,得到该损失函数值。
其中,上述步骤404至步骤406所示的方案,是将公式2和公式3所示的损失函数计算方法进行结合互补得到的方案。在可选的方案中,计算机设备也可以单独使用公式2来计算损失函数值,或者,单独通过公式3来计算损失函数值。
步骤407,根据该损失函数值对该学生网络中的第i层的第二模型参数进行更新。
可选的,计算机设备根据该损失函数值对该学生网络中的第i层的第二模型参数进行更新时,可以根据该损失函数值,通过近端梯度下降算法对该学生网络中的第i层的第二模型参数进行更新。
本申请给出上述交叉计算方法在稀疏正则化项R(WS)下的求解方法。例如,当对网络进行非结构化剪枝时,可取一范数R:
其中i,j,h,w分别表示第i个输入卷积核,第j个输出卷积核,卷积核横向第h位元素和纵向第w位元素。
类似的,当对网络进行结构化剪枝时,可取
R=||WS||2,1=∑i||Wi||2
其中,为第i个输入卷积核对应的所有参数。对于学生网络参数的更新,我们可采用常用的近端梯度下降法,
公式8中,ProxλR(u)定义为近端梯度下降算子,n为学习率,λ如公式1中的定义。
可选的,对于非结构剪枝而言,更新方式为:
对于结构剪枝而言,更新方式为:
为了更平滑得对进行剪枝,本申请实施例中计算机设备可以慢慢增大调节项λ,直到网络达到用户指定的稀疏率。
其中,本申请实施例涉及的方案的算法流程如下:
输入:
已经训练完成的教师网络FT
训练实例
目标稀疏度r’;
输出:
轻量化的学生网络FS
/>
对于极少数据下的网络压缩算法,除了上述步骤404至步骤406下提供的几种方案之外,还有一种可能的技术替代方案为:把交叉蒸馏的连接方法,替换为在学生网络和教师网络的隐含层特征图上进行数据增广,包括在特征图上添加高斯噪声,在不同输入对应的特征图上线性插值来得到更多的中间数据,对特征图进行旋转,缩放来得到多样化的中间信号,从增强模型的泛化能力。
综上所述,本申请实施例所示的方案,通过将训练样本分别输入教师网络和学生网络;获取教师网络中包含第i层的第一模型参数和第一特征图的第一网络数据,以及学生网络中包含第i层的第二模型参数和第二特征图的第二网络数据,将第一网络数据和第二网络数据进行交叉计算,获得损失函数值,再根据损失函数值对学生网络中的第i层的第二模型参数进行更新,该方案能够在通过少量的训练数据对已经训练好的神经网络进行压缩的场景下,提高压缩后的神经网络的准确性。
通过上述图3或图4所示实施例的方案,计算机设备对于学生网络中的各个网络层,从第1层开始进行逐层更新,即可以得到压缩后的神经网络模型。其中,上述图3或图4所示实施例中,对第一网络数据和第二网络数据进行交叉计算以得到损失函数值,并基于交叉计算得到的损失函数值对学生网络进行训练的过程可以称为交叉蒸馏。
请参考图8,其是根据一示例性实施例示出的一种基于神经网络压缩的流程示意图。如图8所示,计算机设备根据少量的训练数据对教师网络进行压缩的过程如下:
S81,计算机设备将训练数据分别输入教师网络和学生网络。
在一次参数更新过程中,计算机设备可以将同样的一份训练数据分别输入至教师网络和学生网络中。
S82,计算机设备获取教师网络中的第i层的第一网络数据,以及学生网络中的第i层的第二网络数据。
S83,计算机设备对第一网络数据中的第一模型参数和第一特征图,与第一网络数据中的第二模型参数和第二特征图进行交叉计算,获得损失函数值。
S84,计算机设备根据损失函数值对学生网络中的第i层的第二模型参数进行更新。
上述步骤S82至S84的执行过程,可以参考上述图4所示实施例中的步骤402至步骤407下的描述,此处不再赘述。
S85,计算机设备判断学生网络中各层是否根据该训练数据训练完成,若是,则进入步骤S86,否则,设置i=i+1,并返回S81。
在本申请实施例中,i的初始值为1,在对学生网络中的第i层的模型参数进行更新之后,如果学生网络中还有模型参数未更新的网络层,则计算机设备重新将上述训练数据输入第i层模型参数更新后的学生网络,并通过上述S82至S84的过程,对学生网络中的第i+1层的模型参数进行更新。
其中,对于教师网络,计算机设备只需要输入1次上述训练数据,即可以得到教师网络中每一网络层的网络数据。
S86,计算机设备判断是否有新的训练数据,若是,则设置i=1,并将上述训练数据替换为新的训练数据后,返回S81;否则将学生网络获取为压缩后的神经网络。
在本申请实施例中,在对学生网络中的第i层的模型参数进行更新之后,如果学生网络中没有模型参数未更新的网络层,则计算机设备可以进一步判断是否还有未使用的训练数据,若是,则将上述训练数据替换为新的训练数据,并按照上述步骤S82至S85的执行过程,从学生网络中的第1层网络层开始,逐层进行模型参数的更新,直至分别通过所有的训练数据对学生网络训练完成后,将学生网络获取为压缩后的神经网络。
经过一系列的实验,本申请上述各个实施例涉及的交叉计算方法(可以称为交叉蒸馏算法)在极少量数据下进行模型压缩具有较好的优越性。
例如,以使用VGG和ResNet两种常用的网络架构,在CIFAR-10和ImageNet-2012数据集上进行了验证,对于训练数据,对每个类别随机采样K个样本点为例,下面罗列在结构化剪枝上的实验效果,使用的对比算法包括:
算法1)L1,即L1-normpruning,一种免数据的压缩算法;
算法2)BP,即直接用反向梯度传播的微调;
算法3)FitNet,一种梯度反向传播更新的知识蒸馏方法;
算法4)FSKD,一种小样本下的逐层回归知识蒸馏算法;
算法5)ThiNet和算法6)CP是两种常用的逐层回归通道剪枝算法。
对于本申请提供的算法,对比逐层回归但是不交叉连接得到的结果(算法7)、利用公式4进行交叉蒸馏得到的结果(算法8),以及利用公式7得到的结果(算法9)。
首先固定模型稀疏度,改变训练样本的大小。在VGG-16在CIFAR-10上的实验结果和ResNet-34在ImageNet上的结果分别在图9和图10中展示。通过实验数据可以发现,本申请实施例提出的两种交叉蒸馏算法Ours和Ours-S普遍比其他对比方法有更高的准确度。同时,训练数据越少,本申请提供的方案提升越明显,训练数据越多,交叉蒸馏算法渐进趋向于其他对比算法结果。这表明本申请提供的方案在极少训练数据情况下可以取得更好的压缩效果。
其中,图9是VGG-16在CIFAR-10上不同训练数据大小情况下的准确率示意图。这里模型的目标稀疏度为50%。原始模型准确度为93.50%。
图10是ResNet-34在ImageNet上不同训练数据大小情况下的top-5准确率示意图。这里模型的目标稀疏度为50%。原始模型top-1准确度和top-5准确度分别为73.32%和91.40%。
随后固定训练数据大小,测试不同压缩率下的算法表现,如图11和图12所示。实验数据表明本申请提供的方案提出的交叉蒸馏算法依旧在不同的稀疏度下取得最好的结果。同时,模型稀疏度越大,提升越高。这表明本申请提供的方案在更加稀疏的模型上也可以取得更好结果。
其中,图11是VGG-16在CIFAR-10上不同稀疏度下的准确度示意图,这里训练数据大小设置为K=10。
图12是ResNet-34在ImageNet上不同稀疏度下的准确度示意图,这里训练数据大小设置为K=1。
请参考图13,其示出了本申请一个示例性实施例提供的神经网络压缩装置的方框图,该神经网络压缩装置可以通过硬件或者软硬结合的方式实现为计算机设备的全部或者部分,以实现如上述图3、图4或者图8所示实施例中的全部或者部分步骤。比如,该计算机设备可以是如图1所示的网络压缩服务方设备140。如图13所示,该神经网络压缩装置包括:
输入模块1301,用于将训练样本分别输入教师网络和学生网络;所述教师网络是已经训练完成的神经网络,所述学生网络的层级结构与所述教师网络是层级结构相同,且所述学生网络的模型参数规模小于所述教师网络的模型参数规模;
第一数据获取模块1302,用于获取教师网络的第一网络数据,所述第一网络数据包括所述教师网络中的第i层的第一模型参数和所述教师网络中的第i层的第一特征图;1≤i≤N,且i为整数,N是所述教师网络的网络层数;
第二数据获取模块1303,用于获取学生网络的第二网络数据,所述第二网络数据包括所述学生网络中的第i层的第二模型参数和所述学生网络中的第i层的第二特征图;
交叉计算模块1304,用于将所述第一网络数据和所述第二网络数据进行交叉计算,获得损失函数值;
参数更新模块1305,用于根据所述损失函数值对所述学生网络中的第i层的第二模型参数进行更新。
可选的,所述交叉计算模块1304,包括:
第一交叉单元,用于通过软连接的方式对所述第一特征图和所述第二特征图进行交叉计算,得到交叉后的第一特征图以及交叉后的第二特征图;
第一计算单元,用于通过所述第一模型参数、所述交叉后的第一特征图、所述第二模型参数以及所述交叉后的第二特征图计算所述损失函数值。
可选的,所述通过所述第一模型参数、所述第一计算单元,用于根据所述第一模型参数、所述交叉后的第一特征图、所述第二模型参数以及所述交叉后的第二特征图进行F范数距离计算,得到所述损失函数值。
可选的,所述交叉计算模块1304,包括:
第二计算单元,用于通过所述第一模型参数、所述第二模型参数以及所述第一特征图进行F范数距离计算,得到第一损失;
第三计算单元,用于通过所述第一模型参数、所述第二模型参数以及所述第二特征图进行F范数距离计算,得到第二损失;
第四计算单元,用于根据所述第一损失和所述第二损失获取所述损失函数值。
可选的,所述第四计算单元,用于对所述第一损失和所述第二损失进行凸组合,获得所述损失函数值。
可选的,所述交叉计算模块1304,用于通过所述第一模型参数、所述第二模型参数以及所述第二特征图进行F范数距离计算,得到所述损失函数值。
可选的,所述交叉计算模块1304,用于通过所述第一模型参数、所述第二模型参数以及所述第一特征图进行F范数距离计算,得到所述损失函数值。
可选的,所述学生网络中的第i层是所述学生网络的各个网络层中,未通过所述训练样本进行更新的最上一层网络层。
可选的,所述教师网络和所述学生网络是卷积神经网络;
所述第一模型参数是所述教师网络中的第i层的卷积核;
所述第二模型参数是所述学生网络中的第i层的卷积核。
可选的,所述参数更新模块1305,用于根据所述损失函数值,通过近端梯度下降算法对所述学生网络中的第i层的第二模型参数进行更新。
综上所述,本申请实施例所示的方案,通过将训练样本分别输入教师网络和学生网络;获取教师网络中包含第i层的第一模型参数和第一特征图的第一网络数据,以及学生网络中包含第i层的第二模型参数和第二特征图的第二网络数据,将第一网络数据和第二网络数据进行交叉计算,获得损失函数值,再根据损失函数值对学生网络中的第i层的第二模型参数进行更新,该方案能够在通过少量的训练数据对已经训练好的神经网络进行压缩的场景下,提高压缩后的神经网络的准确性。
图14是根据一示例性实施例示出的一种计算机设备的结构示意图。所述计算机设备1400包括中央处理单元(CPU)1401、包括随机存取存储器(RAM)1402和只读存储器(ROM)1403的系统存储器1404,以及连接系统存储器1404和中央处理单元1401的系统总线1405。所述计算机设备1400还包括帮助计算机内的各个器件之间传输信息的基本输入/输出系统(I/O系统)1406,和用于存储操作系统1413、应用程序1414和其他程序模块1415的大容量存储设备1407。
所述基本输入/输出系统1406包括有用于显示信息的显示器1408和用于用户输入信息的诸如鼠标、键盘之类的输入设备1409。其中所述显示器1408和输入设备1409都通过连接到系统总线1405的输入输出控制器1410连接到中央处理单元1401。所述基本输入/输出系统1406还可以包括输入输出控制器1410以用于接收和处理来自键盘、鼠标、或电子触控笔等多个其他设备的输入。类似地,输入输出控制器1410还提供输出到显示屏、打印机或其他类型的输出设备。
所述大容量存储设备1407通过连接到系统总线1405的大容量存储控制器(未示出)连接到中央处理单元1401。所述大容量存储设备1407及其相关联的计算机可读介质为计算机设备1400提供非易失性存储。也就是说,所述大容量存储设备1407可以包括诸如硬盘或者CD-ROM驱动器之类的计算机可读介质(未示出)。
不失一般性,所述计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括RAM、ROM、EPROM、EEPROM、闪存或其他固态存储其技术,CD-ROM、DVD或其他光学存储、磁带盒、磁带、磁盘存储或其他磁性存储设备。当然,本领域技术人员可知所述计算机存储介质不局限于上述几种。上述的系统存储器1404和大容量存储设备1407可以统称为存储器。
计算机设备1400可以通过连接在所述系统总线1405上的网络接口单元1411连接到互联网或者其它网络设备。
所述存储器还包括一个或者一个以上的程序,所述一个或者一个以上程序存储于存储器中,中央处理器1401通过执行该一个或一个以上程序来实现图2、图3、图4或图8所示的方法中的全部或者部分步骤。
在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括计算机程序(指令)的存储器,上述程序(指令)可由计算机设备的处理器执行以完成本申请各个实施例所示的方法的全部或者部分步骤。例如,所述非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求指出。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制。

Claims (15)

1.一种神经网络压缩方法,其特征在于,所述方法由网络压缩服务方设备执行,所述网络压缩服务方设备提供有接口,所述方法包括:
接收网络压缩请求方设备通过所述接口发送的训练样本和教师网络,将所述训练样本分别输入所述教师网络和学生网络;所述教师网络是已经训练完成的神经网络,所述学生网络的层级结构与所述教师网络是层级结构相同,且所述学生网络的模型参数规模小于所述教师网络的模型参数规模;所述训练样本的数据量少于所述教师网络的训练数据的数据量;所述训练样本包括每个类别对应的一张图片,或者,所述训练样本包括语音识别系统的训练数据;
获取教师网络的第一网络数据,所述第一网络数据包括所述教师网络中的第i层的第一模型参数和所述教师网络中的第i层的第一特征图;1≤i≤N,且i为整数,N是所述教师网络的网络层数;
获取学生网络的第二网络数据,所述第二网络数据包括所述学生网络中的第i层的第二模型参数和所述学生网络中的第i层的第二特征图;
将所述第一网络数据和所述第二网络数据进行交叉计算,获得损失函数值;
根据所述损失函数值对所述学生网络中的第i层的第二模型参数进行更新,获得对所述教师网络压缩后的神经网络,所述压缩后的神经网络是对所述学生网络中的各个网络层逐层更新得到的;
其中,对所述教师网络压缩后的神经网络用于所述网络压缩服务方设备返回给所述网络压缩请求方设备。
2.根据权利要求1所述的方法,其特征在于,所述将所述第一网络数据和所述第二网络数据进行交叉计算,获得损失函数值,包括:
通过软连接的方式对所述第一特征图和所述第二特征图进行交叉计算,得到交叉后的第一特征图以及交叉后的第二特征图;
通过所述第一模型参数、所述交叉后的第一特征图、所述第二模型参数以及所述交叉后的第二特征图获得所述损失函数值。
3.根据权利要求2所述的方法,其特征在于,所述通过所述第一模型参数、所述交叉后的第一特征图、所述第二模型参数以及所述交叉后的第二特征图获得所述损失函数值,包括:
根据所述第一模型参数、所述交叉后的第一特征图、所述第二模型参数以及所述交叉后的第二特征图进行F范数距离计算,得到所述损失函数值。
4.根据权利要求1所述的方法,其特征在于,所述将所述第一网络数据和所述第二网络数据进行交叉计算,获得损失函数值,包括:
通过所述第一模型参数、所述第二模型参数以及所述第一特征图进行F范数距离计算,得到第一损失;
通过所述第一模型参数、所述第二模型参数以及所述第二特征图进行F范数距离计算,得到第二损失;
根据所述第一损失和所述第二损失获取所述损失函数值。
5.根据权利要求4所述的方法,其特征在于,所述根据所述第一损失和所述第二损失获取所述损失函数值,包括:
对所述第一损失和所述第二损失进行凸组合,获得所述损失函数值。
6.根据权利要求1所述的方法,其特征在于,所述将所述第一网络数据和所述第二网络数据进行交叉计算,获得损失函数值,包括:
通过所述第一模型参数、所述第二模型参数以及所述第二特征图进行F范数距离计算,得到所述损失函数值。
7.根据权利要求1所述的方法,其特征在于,所述将所述第一网络数据和所述第二网络数据进行交叉计算,获得损失函数值,包括:
通过所述第一模型参数、所述第二模型参数以及所述第一特征图进行F范数距离计算,得到所述损失函数值。
8.根据权利要求1至7任一所述的方法,其特征在于,
所述学生网络中的第i层是所述学生网络的各个网络层中,未通过所述训练样本进行更新的最上一层网络层。
9.根据权利要求1至7任一所述的方法,其特征在于,所述教师网络和所述学生网络是卷积神经网络;
所述第一模型参数是所述教师网络中的第i层的卷积核;
所述第二模型参数是所述学生网络中的第i层的卷积核。
10.根据权利要求1至7任一所述的方法,其特征在于,所述根据所述损失函数值对所述学生网络中的第i层的第二模型参数进行更新,包括:
根据所述损失函数值,通过近端梯度下降算法对所述学生网络中的第i层的第二模型参数进行更新。
11.一种神经网络压缩装置,其特征在于,所述装置包括:
输入模块,用于接收网络压缩请求方设备通过网络压缩服务方设备提供的接口发送的训练样本和教师网络,将所述训练样本分别输入所述教师网络和学生网络;所述教师网络是已经训练完成的神经网络,所述学生网络的层级结构与所述教师网络是层级结构相同,且所述学生网络的模型参数规模小于所述教师网络的模型参数规模;所述训练样本的数据量少于所述教师网络的训练数据的数据量;所述训练样本包括每个类别对应的一张图片,或者,所述训练样本包括语音识别系统的训练数据;
第一数据获取模块,用于获取教师网络的第一网络数据,所述第一网络数据包括所述教师网络中的第i层的第一模型参数和所述教师网络中的第i层的第一特征图;1≤i≤N,且i为整数,N是所述教师网络的网络层数;
第二数据获取模块,用于获取学生网络的第二网络数据,所述第二网络数据包括所述学生网络中的第i层的第二模型参数和所述学生网络中的第i层的第二特征图;
交叉计算模块,用于将所述第一网络数据和所述第二网络数据进行交叉计算,获得损失函数值;
参数更新模块,用于根据所述损失函数值对所述学生网络中的第i层的第二模型参数进行更新,获得对所述教师网络压缩后的神经网络,所述压缩后的神经网络是对所述学生网络中的各个网络层逐层更新得到的;
其中,对所述教师网络压缩后的神经网络用于所述网络压缩服务方设备返回给所述网络压缩请求方设备。
12.根据权利要求11所述的装置,其特征在于,所述交叉计算模块,包括:
第一交叉单元,用于通过软连接的方式对所述第一特征图和所述第二特征图进行交叉计算,得到交叉后的第一特征图以及交叉后的第二特征图;
第一计算单元,用于通过所述第一模型参数、所述交叉后的第一特征图、所述第二模型参数以及所述交叉后的第二特征图计算所述损失函数值。
13.根据权利要求11所述的装置,其特征在于,所述交叉计算模块,包括:
第二计算单元,用于通过所述第一模型参数、所述第二模型参数以及所述第一特征图进行F范数距离计算,得到第一损失;
第三计算单元,用于通过所述第一模型参数、所述第二模型参数以及所述第二特征图进行F范数距离计算,得到第二损失;
第四计算单元,用于根据所述第一损失和所述第二损失获取所述损失函数值。
14.一种计算机设备,其特征在于,所述计算机设备包括处理器和存储器,所述存储器中存储有指令,所述指令由所述处理器执行,以实现如权利要求1至10任一所述的神经网络压缩方法。
15.一种计算机可读存储介质,其特征在于,所述存储介质中存储有指令,所述指令由计算机设备的处理器执行以实现如权利要求1至10任一所述的神经网络压缩方法。
CN201911142056.XA 2019-11-20 2019-11-20 神经网络压缩方法、装置、计算机设备及存储介质 Active CN110880036B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911142056.XA CN110880036B (zh) 2019-11-20 2019-11-20 神经网络压缩方法、装置、计算机设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911142056.XA CN110880036B (zh) 2019-11-20 2019-11-20 神经网络压缩方法、装置、计算机设备及存储介质

Publications (2)

Publication Number Publication Date
CN110880036A CN110880036A (zh) 2020-03-13
CN110880036B true CN110880036B (zh) 2023-10-13

Family

ID=69729801

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911142056.XA Active CN110880036B (zh) 2019-11-20 2019-11-20 神经网络压缩方法、装置、计算机设备及存储介质

Country Status (1)

Country Link
CN (1) CN110880036B (zh)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111461212B (zh) * 2020-03-31 2023-04-07 中国科学院计算技术研究所 一种用于点云目标检测模型的压缩方法
CN111598213B (zh) * 2020-04-01 2024-01-23 北京迈格威科技有限公司 网络训练方法、数据识别方法、装置、设备和介质
CN111639744B (zh) * 2020-04-15 2023-09-22 北京迈格威科技有限公司 学生模型的训练方法、装置及电子设备
CN111544855B (zh) * 2020-04-30 2021-08-31 天津大学 基于蒸馏学习和深度学习纯意念控制智能康复方法及应用
CN111563455B (zh) * 2020-05-08 2023-07-11 南昌工程学院 基于时间序列信号和压缩卷积神经网络的伤损识别方法
CN111882031A (zh) * 2020-06-30 2020-11-03 华为技术有限公司 一种神经网络蒸馏方法及装置
CN111554268B (zh) * 2020-07-13 2020-11-03 腾讯科技(深圳)有限公司 基于语言模型的语言识别方法、文本分类方法和装置
CN112052948B (zh) * 2020-08-19 2023-11-14 腾讯科技(深圳)有限公司 一种网络模型压缩方法、装置、存储介质和电子设备
CN111767711B (zh) * 2020-09-02 2020-12-08 之江实验室 基于知识蒸馏的预训练语言模型的压缩方法及平台
CN112132278A (zh) * 2020-09-23 2020-12-25 平安科技(深圳)有限公司 模型压缩方法、装置、计算机设备及存储介质
CN112529149A (zh) * 2020-11-30 2021-03-19 华为技术有限公司 一种数据处理方法及相关装置
CN112668716A (zh) * 2020-12-29 2021-04-16 奥比中光科技集团股份有限公司 一种神经网络模型的训练方法及设备
CN112819155B (zh) * 2021-01-22 2022-09-16 中国人民解放军国防科技大学 应用于边缘设备的深度神经网络模型分级压缩方法及装置
DE102021200643B3 (de) 2021-01-25 2022-03-31 Volkswagen Aktiengesellschaft Verfahren zur Umfelderkennung für teilautonome oder autonome Fahrfunktionen eines Kraftfahrzeugs mittels eines neuronalen Netzes
CN113033767A (zh) * 2021-02-19 2021-06-25 北京大学 基于知识蒸馏的神经网络的数据压缩恢复方法及系统
CN112801918A (zh) * 2021-03-11 2021-05-14 苏州科达科技股份有限公司 图像增强模型的训练方法、图像增强方法及电子设备
US11200497B1 (en) * 2021-03-16 2021-12-14 Moffett Technologies Co., Limited System and method for knowledge-preserving neural network pruning
CN113469324B (zh) * 2021-03-23 2024-03-22 中科创达软件股份有限公司 模型动态量化方法、装置、电子设备和计算机可读介质
CN113110550B (zh) * 2021-04-23 2022-09-23 南京大学 一种基于强化学习与网络模型蒸馏的无人机飞行控制方法
CN113327265B (zh) * 2021-06-10 2022-07-15 厦门市美亚柏科信息股份有限公司 一种基于指导学习策略的光流估计方法和系统
CN114358206B (zh) * 2022-01-12 2022-11-01 合肥工业大学 二值神经网络模型训练方法及系统、图像处理方法及系统
CN115082800B (zh) * 2022-07-21 2022-11-15 阿里巴巴达摩院(杭州)科技有限公司 图像分割方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106097355A (zh) * 2016-06-14 2016-11-09 山东大学 基于卷积神经网络的胃肠道肿瘤显微高光谱图像处理方法
CN107092962A (zh) * 2016-02-17 2017-08-25 阿里巴巴集团控股有限公司 一种分布式机器学习方法和平台
CN109784490A (zh) * 2019-02-02 2019-05-21 北京地平线机器人技术研发有限公司 神经网络的训练方法、装置和电子设备
CN109919299A (zh) * 2019-02-19 2019-06-21 西安交通大学 一种基于元学习器逐步梯度校正的元学习算法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107092962A (zh) * 2016-02-17 2017-08-25 阿里巴巴集团控股有限公司 一种分布式机器学习方法和平台
CN106097355A (zh) * 2016-06-14 2016-11-09 山东大学 基于卷积神经网络的胃肠道肿瘤显微高光谱图像处理方法
WO2017215284A1 (zh) * 2016-06-14 2017-12-21 山东大学 基于卷积神经网络的胃肠道肿瘤显微高光谱图像处理方法
CN109784490A (zh) * 2019-02-02 2019-05-21 北京地平线机器人技术研发有限公司 神经网络的训练方法、装置和电子设备
CN109919299A (zh) * 2019-02-19 2019-06-21 西安交通大学 一种基于元学习器逐步梯度校正的元学习算法

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
Few Shot Network Compression via Cross Distillation;Haoli Bai 等;《arXiv》;1-12 *
Knowledge Distillation with Feature Maps for Image Classification;Wei-Chun Chen 等;《arXiv》;1-17 *
基于知识蒸馏的超分辨率卷积神经网络压缩方法;高钦泉 等;《计算机应用》;第39卷(第10期);2802-2808 *
深度神经网络压缩与加速综述;纪荣嵘 等;《计算机研究与发展》;第55卷(第9期);1871-1888 *

Also Published As

Publication number Publication date
CN110880036A (zh) 2020-03-13

Similar Documents

Publication Publication Date Title
CN110880036B (zh) 神经网络压缩方法、装置、计算机设备及存储介质
US11829874B2 (en) Neural architecture search
US10817805B2 (en) Learning data augmentation policies
JP7157154B2 (ja) 性能予測ニューラルネットワークを使用したニューラルアーキテクチャ探索
CN110366734B (zh) 优化神经网络架构
DE112021004908T5 (de) Computerbasierte systeme, rechenkomponenten und rechenobjekte, die eingerichtet sind, dynamische ausreisser-verzerrungs-verringerung bei maschinenlernmodellen zu implementieren
US20180247193A1 (en) Neural network training using compressed inputs
CN110766142A (zh) 模型生成方法和装置
CN111602148A (zh) 正则化神经网络架构搜索
JP7287397B2 (ja) 情報処理方法、情報処理装置及び情報処理プログラム
JPWO2019146189A1 (ja) ニューラルネットワークのランク最適化装置および最適化方法
KR20200089588A (ko) 전자 장치 및 이의 제어 방법
CN112561031A (zh) 基于人工智能的模型搜索方法、装置及电子设备
WO2022170360A1 (en) Graph neural diffusion
CN111325354B (zh) 机器学习模型压缩方法、装置、计算机设备和存储介质
CN115238909A (zh) 一种基于联邦学习的数据价值评估方法及其相关设备
WO2022246986A1 (zh) 数据处理方法、装置、设备及计算机可读存储介质
CN110782016A (zh) 用于优化神经网络架构搜索的方法和装置
CN116976461A (zh) 联邦学习方法、装置、设备及介质
WO2022127603A1 (zh) 一种模型处理方法及相关装置
US20220044109A1 (en) Quantization-aware training of quantized neural networks
CN116977885A (zh) 视频文本任务处理方法、装置、电子设备及可读存储介质
CN111062477B (zh) 一种数据处理方法、装置及存储介质
CN114861671A (zh) 模型训练方法、装置、计算机设备及存储介质
CN111310794B (zh) 目标对象的分类方法、装置和电子设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40021718

Country of ref document: HK

GR01 Patent grant
GR01 Patent grant