CN112668690A - 神经网络模型压缩的方法和计算机系统 - Google Patents

神经网络模型压缩的方法和计算机系统 Download PDF

Info

Publication number
CN112668690A
CN112668690A CN202011076138.1A CN202011076138A CN112668690A CN 112668690 A CN112668690 A CN 112668690A CN 202011076138 A CN202011076138 A CN 202011076138A CN 112668690 A CN112668690 A CN 112668690A
Authority
CN
China
Prior art keywords
weight coefficients
computer
neural network
network
deep neural
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.)
Pending
Application number
CN202011076138.1A
Other languages
English (en)
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 America LLC
Original Assignee
Tencent America LLC
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 America LLC filed Critical Tencent America LLC
Publication of CN112668690A publication Critical patent/CN112668690A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/70Type of the data to be coded, other than image and sound
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/211Selection of the most significant subset of features
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/214Generating training patterns; Bootstrap methods, e.g. bagging or boosting
    • G06F18/2155Generating training patterns; Bootstrap methods, e.g. bagging or boosting characterised by the incorporation of unlabelled data, e.g. multiple instance learning [MIL], semi-supervised techniques using expectation-maximisation [EM] or naïve labelling
    • 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
    • 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/084Backpropagation, e.g. using gradient descent
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/04Inference or reasoning models
    • G06N5/046Forward inferencing; Production systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/764Arrangements for image or video recognition or understanding using pattern recognition or machine learning using classification, e.g. of video objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/82Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/60General implementation details not specific to a particular type of compression

Abstract

提供了一种压缩深度神经网络的方法和计算机系统。对与深度神经网络关联的权重系数进行量化和熵编码。对经过量化和熵编码的所述权重系数进行局部平滑。通过对所述权重系数应用变分丢弃(variational dropout)来对平滑后的所述权重系数进行压缩。

Description

神经网络模型压缩的方法和计算机系统
相关技术
本申请要求2019年10月15日提交的第62/915,337号美国临时申请案、2019年11月22日提交的第62/939,060号美国临时申请案、及2020年9月28日提交的第17/034,739号美国申请案的优先权,所述申请以全文引用方式并入本申请。
技术领域
本公开总体涉及数据处理领域,具体涉及神经网络。
背景技术
国际标准化组织(International Organization for Standardization,ISO)/国际电工委员会(International Electrotechnical Commission,IEC)MPEG(MovingPicture Expert Group)(联合技术委员会(Joint Technical Committee,JTC)1/分技术委员会(Sub-technical Commission,SC)29/工作组(working group,WG)11)一直在积极地寻找对未来视频编解码技术标准化的潜在需要,以用于视觉分析和理解。ISO于2015年采用了用于视觉搜索的紧凑描述符(Compact Descriptors for Visual Search,CDVS)标准作为静态图像标准,其提取用于图像相似性匹配的特征表示。用于视觉分析的紧凑描述符(Compact Descriptors for Visual Analysis,CDVA)标准被列为MPEG 7的第15部分和ISO/IEC 15938-15,并且于2018年完成,其提取用于视频段的全局的和局部的、手动设计的和基于DNN的特征描述符。深度神经网络(DNN)在例如语义分类、目标检测/识别、目标跟踪、视频质量增强等各种视频应用中的成功催生了对DNN模型进行压缩的强烈需求。因此,MPEG正在积极地致力于神经网络标准(Neural Network standard,NNR)的编码表示,其对DNN模型进行编码以节省存储空间和计算资源。存在几种学习紧凑DNN模型的方法。目标是去除不重要的权重系数,假设权重系数的值越小,它们的重要性越低。
发明内容
各实施例涉及用于压缩深度神经网络模型的方法、系统和计算机可读介质。根据一个方面,提供了用于压缩深度神经网络模型的方法。该方法可以包括,对与深度神经网络相关联的权重系数进行量化和熵编码。与深度神经网络相关联的权重系数被量化和熵编码。被量化和熵编码的权重系数被局部平滑。通过对权重系数应用变分丢弃(variationaldropout)来对平滑后的权重系数进行压缩。
根据另一个方面,提供了用于压缩深度神经网络模型的计算机系统。该计算机系统可以包括至少一个处理器、至少一个计算机可读存储器、至少一个计算机可读有形存储设备,以及存储在至少一个存储设备中的至少一个存储设备上的程序指令。该程序指令用于由至少一个处理器中的至少一个处理器经由至少一个存储器中的至少一个存储器来执行,从而该计算机系统能够执行方法。该方法可以包括对与深度神经网络相关联的权重系数进行量化和熵编码。与深度神经网络相关联的权重系数被量化和熵编码。被量化和熵编码的权重系数被局部平滑。通过对权重系数应用变分丢弃来对平滑后的权重系数进行压缩。
根据又一个方面,提供了用于压缩深度神经网络模型的计算机可读介质。该计算机可读介质可以包括至少一个计算机可读存储设备以及被存储在至少一个有形存储设备中的至少一个存储设备上的可由处理器执行的程序指令。该程序指令可以由处理器执行,用于执行方法,相应地,该方法包括对与深度神经网络相关联的权重系数进行量化和熵编码。与深度神经网络相关联的权重系数被量化和熵编码。被量化和熵编码的权重系数被局部平滑。通过对权重系数应用变分丢弃来对平滑后的权重系数进行压缩。
附图说明
为了使这些以及其它目的、特征和优点更加明显,下面通过示意性实施例中结合附图进行详细描述。由于附图是用于结合详细描述来方便本领域技术人员清楚地理解本公开,因此附图的各种特征并非按比例绘制。在附图中:
图1示出至少一个实施例的联网计算机环境;
图2A-2C是至少一个实施例的变分计算系统的功能框图;
图3是至少一个实施例的由压缩深度神经网络的程序执行的步骤的操作流程图;
图4是至少一个实施例的图1中所示的计算机和服务器的内部组件和外部组件的框图;
图5是至少一个实施例的包括图1所示的计算机系统的云计算环境的示意性框图;及
图6是至少一个实施例的图5的示意性云计算环境的功能层的框图。
具体实施方式
本文公开了所要求保护的结构和方法的详细实施例;但是,可以理解,所公开的实施例仅仅是所要求保护的结构和方法的示例,这些结构和方法可以以各种形式实施。然而,本公开的各方面可以以许多不同的形式来实施,并不应被解释为限于本文阐述的示例性实施例。更确切地说,提供这些示例性实施例是为了使本公开更加全面和完整,并向本领域技术人员充分传达本公开的范围。在描述中,公知特征和技术的细节可能被省略,以避免不必要地模糊所呈现的实施例。
各实施例大体上涉及数据处理领域,并且更具体地,涉及神经网络。以下描述的示例性实施例提供了系统、方法和计算机程序,用于通过在变分丢弃(VD)框架中使用平滑正则化来压缩深度神经网络(DNN)模型。因此,一些实施例具有通过提高已学习的权重系数的压缩效率来提升计算领域的能力,这可以显著减小DNN模型的大小。
如前所述,ISO/IEC MPEG(JTC 1/SC 29/WG 11)一直在积极地寻找对未来视频编解码技术标准化的潜在需要,用于视觉分析和理解。ISO于2015年采用了用于视觉搜索的紧凑描述符(CDVS)标准作为静态图像标准,其提取用于图像相似性匹配的特征表示。用于视觉分析的紧凑描述符(CDVA)标准被列为MPEG 7的第15部分和ISO/IEC 15938-15,并且于2018年完成,其提取用于视频段的全局的和局部的、手动设计的和基于DNN的特征描述符。深度神经网络(DNN)在例如语义分类、目标检测/识别、目标跟踪、视频质量增强等各种视频应用中的成功催生了对于压缩DNN模型的强烈需求。因此,MPEG正在积极地致力于神经网络标准的编码表示(NNR),其对DNN模型进行编码以节省存储空间和计算资源。存在几种学习紧凑DNN模型的方法。目标是去除不重要的权重系数,并且假设权重系数的值越小,它们的重要性越低。
然而,一些方法通过贪婪地去除网络参数或通过将稀疏性促进正则化项添加到网络训练目标中来明确地追求这个目标。这些方法通常被称为网络修剪方法。另一方面,在神经网络训练中,随机丢弃法被广泛地使用以作为避免过度拟合的有效方法,并且已经在理论上证明了变分丢弃(VD)具有隐式地稀疏化网络参数的效果。从压缩DNN模型的观点来看,在学习紧凑网络模型之后,可以通过量化以及随后的熵编码来进一步压缩权重系数。这种进一步的压缩过程可以显著减小DNN模型的存储大小,这对于移动设备、芯片等上的模型部署是关键的。因此,使稀疏化的权重系数局部平滑以提高模型压缩的效率可能是有好处的。通过在训练紧凑DNN模型时将平滑正则化集成到VD框架中,使得已学习的权重系数适于进一步压缩。可以使用三个不同的框架来学习分别具有完全注释数据、未标记数据或被部分标记数据的具有VD和平滑正则化的紧凑DNN模型。
本文参考各个实施例的方法、装置(系统)和计算机可读介质的流程图和/或框图来描述本公开的各方面。应当理解,流程图图示和/或框图的每个框,以及流程图图示和/或框图中的框的组合可以由计算机可读程序指令实现。
现参考图1,图1示出了联网计算机环境的功能框图,其中示出了深度神经网络压缩系统100(以下被称为“系统”),用于对深度神经模型进行压缩。应当理解,图1仅提供一种实现方式的说明,并不意味着对不同实施例的各环境进行任何限制。可基于设计和实现需求对所描绘的环境进行各种修改。
系统100可包括计算机102和服务器计算机114。计算机102可经由通信网络110(以下称为“网络”)与服务器计算机114通信。计算机102可包括处理器104以及软件程序108。软件程序108存储在数据存储设备106中,能够与用户联系以及与服务器计算机114通信。如下面参考图5所述,计算机102可分别包括内部组件800A和外部组件900A,且服务器计算机114可分别包括内部组件800B和外部组件900B。计算机102可以是,例如,移动设备、电话、个人数字助理、上网本、笔记本电脑、平板电脑、台式计算机或者能够运行程序、访问网络和访问数据库的任何类型的计算设备。
服务器计算机114还可运行在云计算服务模型中,例如软件即服务(Software asa Service,SaaS)、平台即服务(Platform as a Service,PaaS)或基础架构即服务(Infrastructure as a Service,IaaS),如下面在图5和图6所描述的。服务器计算机114还可位于云计算部署模型中,例如私有云、社区云、公有云或混合云。
服务器计算机114用于压缩深度神经网络,可运行能与数据库112交互的DNN模型压缩程序116(以下称为“程序”)。下面将参照图3对DNN模型压缩程序方法进行更详细地解释。在一个实施例中,计算机102可作为包括用户接口的输入设备运行,而程序116可主要在服务器计算机114上运行。在其它实施例中,程序116可主要在至少一个计算机102上运行,而服务器计算机114可用于处理和存储程序116所使用的数据。应注意,程序116可以是独立的程序,或者可被集成到更大的DNN模型压缩程序中。
然而,应当注意,在一些实例中,程序116的处理可以以任何比例分由计算机102和服务器计算机114共同完成。在另一个实施例中,程序116可运行在一个以上计算机、服务器计算机或者计算机和服务器计算机的某些组合中,例如,通过网络110与单个服务器计算机114通信的多个计算机102。在另一个实施例中,例如,程序116可运行在多个服务器计算机114中,该多个服务器计算机114通过网络110与多个客户端计算机通信。可替代地,该程序16可在网络服务器上运行,该网络服务器通过网络与服务器和多个客户端计算机通信。
网络110可包括有线连接、无线连接、光纤连接或其某种组合。通常,网络110可以是支持计算机102和服务器计算机114之间的通信连接和协议的任何组合。网络110可包括各种类型的网络,包括,例如,局域网(LAN)、广域网(WAN)(如Internet)、电信网络(如公共交换电话网络(PSTN))、无线网络、公共交换网络、卫星网络、蜂窝网络(例如,第五代(5G)网络、长期演进(LTE)网络、第三代(3G)网络、码分多址(CDMA)网络等)、公共陆地移动网络(PLMN)、城域网(MAN)、专用网络、自组织网络、内联网、基于光纤的网络等,和/或这些网络或其它类型网络的组合。
图1所示的设备和网络的数目和布置是作为示例提供的。实际上,可存在其它的设备和/或网络、更少的设备和/或网络、不同的设备和/或网络、或者与图1所示的设备和/或网络部署方式不同的设备和/或网络。此外,图1所示的两个或更多个设备可在单个设备中实现,或者图1所示的单个设备可被实现为多个分布式的设备。此外或可替代地,系统100的一组设备(例如,至少一个设备)可执行被描述为由系统100的另一组设备执行的至少一个功能。
根据各实施例,对深度神经网络进行压缩时,可以对与深度神经网络关联的权重系数进行量化和熵编码,对经过量化和熵编码的所述权重系数进行局部平滑,并通过对所述权重系数应用变分丢弃(variational dropout)来对平滑后的所述权重系数进行压缩。
Figure BDA0002716755780000051
可以表示数据集,其中目标y可以被分配给输入x。Θ={w}可以表示DNN的一组权重系数。目标可以是学习权重系数Θ*的最佳集合,使得损失
Figure BDA0002716755780000052
可以最小化。在本公开内容中,损失
Figure BDA0002716755780000053
可以被定义为:
Figure BDA0002716755780000054
其中
Figure BDA0002716755780000055
可以是经验数据损失,其形式取决于具体任务(例如,分类任务的交叉熵损失或回归任务的L2损失)。£R(Θ)可以是一般正则化损失(例如,权重系数上的L1范数)。£S(Θ)可以是平滑度损失,定义为:
Figure BDA0002716755780000056
其中Ls(Wj)可以是第j层上的平滑度损失。N可以是对平滑度损失进行测量时的总层数。Wj可以表示第j层的权重系数。λD、λR、λS可以是超参数,用于平衡不同损失的贡献。
各实施例中,权重系数的局部平滑可以基于对所述权重系数的平滑度度量所关联的损失值进行最小化。
由于每个层的Ls(Wj)可以独立计算,可以省略脚本j而不产生一般性损失。上述的权重系数可以对应于一个多维张量所关联的维度。例如,给定一层的权重系数W,W可以是具有大小为(ci,k1,k2,k3,co)的5维(5D)张量,该层的输入可以是大小为(hi,wi,di,ci)的4维(4D)张量A,该层的输出可以是大小为(ho,wo,do,co)的4D张量B。5D张量中的每个元素可以是浮点数。基于A和W通过卷积运算⊙计算输出B可以是:
Figure BDA0002716755780000057
l=1,…,hi,m=1,…,wi,n=1,…,di,l′=1,…,ho,
m′=1,…,wo,n′=1,…,do,v=1,…,co.
参数hi、wi和di(ho、wo和do)可以是输入张量A(输出张量B)的高度、权重和深度。参数ci(co)可以是输入(输出)通道的数目。参数k1、k2和k3可以是分别对应于高度轴、权重轴和深度轴的卷积核的大小。即,对于每个输出通道v=1,…,co,大小为(ci,k1,k2,k3)的4D权重张量Wv可以与输入A进行卷积。从这个角度来看,本公开提出对平滑度的度量为:
Figure BDA0002716755780000058
其中g(u,l,m,n)∈G可以定义以(u,l,m,n)为中心的具有大小(N1(u,l,m,n),N2(u,l,m,n),N3(u,l,m,n),N4(u,l,m,n))的局部邻域。G可以是这种局部邻域的组。S(Wv,g(u,l,m,n))可以是在每个局部邻域的权重系数上测量的平滑度度量。在一个实施例中,对于每个位置(u,l,m,n),局部邻域可以具有固定大小,例如以(u,l,m,n)为中心的4D团块,并且当
Figure BDA0002716755780000061
并且N1(u,l,m,n)=ci,N2(u,l,m,n)=k1,N3(u,l,m,n)=k2,并且N4(u,m,n)=k3时,g(u,l,m,n)覆盖整个权重系数Wv
平滑度度量可以采取多种形式。权重系数可以被定义为在彼此尽可能接近的邻域g(u,l,m,n)中。权重系数的局部平滑可以基于确定与所述权重系数相关联的梯度。平滑度度量对应于所述权重系数在至少一个轴上的一个点所测量的梯度的绝对值,且基于对在所述至少一个轴上的所述梯度的贡献进行平衡。在一个优选的实施例中,平滑度度量可以定义为:
Figure BDA0002716755780000062
Figure BDA0002716755780000063
并且
Figure BDA0002716755780000064
可以进一步定义为:
Figure BDA0002716755780000065
Figure BDA0002716755780000066
Figure BDA0002716755780000067
Figure BDA0002716755780000068
其中,
Figure BDA0002716755780000069
可以是分别在位置(i,j,p,q)处测量的四个轴的单独的权重系数Wv的梯度的绝对值,并且βulmn可以是平衡单独的不同轴上的梯度的贡献的超参数。直观地,沿着不同轴上的局部邻域内的相邻权重系数的平滑度度量可以是相似的,没有显著的变化。ρ>0可以是超参数,并且ρ可以根据经验设置为ρ=1。在一个实施例中,梯度可以简单地计算为:
Figure BDA00027167557800000610
Figure BDA00027167557800000611
Figure BDA00027167557800000612
Figure BDA00027167557800000613
根据贝叶斯推断,在数据
Figure BDA00027167557800000614
到达之后,先验分布
Figure BDA00027167557800000615
可以被变换为后验分布
Figure BDA00027167557800000616
为了可行的计算,可以使用参数分布qπ(Θ)来近似
Figure BDA00027167557800000617
其中π可以是分布qπ(Θ)的变分参数。该近似的质量可以通过Kullback-Leibler(KL)散度:
Figure BDA00027167557800000618
来测量。通过最大化变分下边界可以找到变分参数π:
Figure BDA00027167557800000619
Figure BDA00027167557800000620
Figure BDA0002716755780000071
可以是数据的预期对数似然,并且变分下边界可以是经验数据损失的负数的近似(即,
Figure BDA0002716755780000072
)。在DNN的情况下,对于给定层的权重系数W,在权重系数可以是独立的的假设下,KL散度
Figure BDA0002716755780000073
)可以被重写为:
Figure BDA0002716755780000074
其中Wi可以是W中的第i个权重系数,θii可以是用于生成Wi的变分参数:
Figure BDA0002716755780000075
εi可以遵循高斯分布N(0,1)。
Figure BDA0002716755780000076
可以进一步近似为:DKL(Θ)(q(Wiii)||p(Wi))≈-(τ1σ(τ23logαi)-0.5log(1+αi -1)+C)τ1=0.63576,τ2=1.87320,τ3=1.48695,
其中σ(·)可以表示Sigmoid函数,并且C可以是常数,可以根据经验设置为-τ1
对于固定的变分参数αi,可以计算KL散度
Figure BDA0002716755780000077
利用固定的变分参数αi和θi,可以计算网络层的权重系数W,并且可以使输入数据x通过网络以生成数据输出y从而估计数据的预期对数似然。因此,可以计算总的变分下边界。
可以使用优化方法,例如随机梯度下降(Stochastic Gradient Descent,SGD),来最大化变分下边界并找到最优变分参数αi和θi。αi通常可以称为丢弃率,而上述通过优化变分下边界获得变分参数αi和θi的方法通常可以被称为变分丢弃。
在对权重系数W施加扰动以产生新的权重系数W′之后,在网络层p(y|x,W′)的输出和原始输出p(y|x,W)之间的KL散度DKL(p(y|x,W′)||p(y|x,W))可以测量权重系数W在产生输出中的贡献的重要性。在网络压缩的情况下,在较不重要的权重系数的值的改变对网络输出产生较小的影响。DKL(p(y|x,W′)||p(y|x,W))的二阶近似可以是:
DKL(p(y|x,W′)||p(y|x,W))≈δW·FδW+o(δW2),
其中F可以是Fisher信息矩阵(FIM),并且对于x的经验数据分布Q(x),F可以由下式给出:
Figure BDA0002716755780000078
为了有效地计算不同权重系数的独立性的F,可能只需要F中的对角元素。FIM的每个对角元素fii都可以被认为是测量该网络层上的单个权重Wi的重要性的局部度量,并且这样的重要性可以简单地通过由扰动δWi引起的输出变化
Figure BDA0002716755780000079
的方差来测量。
因此,为了测量每个单个权重Wi的重要性,可以在网络输入x上应用乘法高斯随机噪声并且可以通过变分丢弃(VD)的反向传播(BP)计算获得每个权重系数Wi上的梯度。在各种不同的数据输入上应用多个乘法高斯随机噪声的这种梯度的方差提供了权重重要性的合理估计。
各实施例中,损失值的最小化可以基于从所述权重系数中选择权重系数的子集,后文也称为最优权重系数。现在参考图2A-2C,示出了方差计算系统200A-200C的示例性框图。方差计算系统200A-200C可以使用具有经过预训练的权重系数W的经过预训练的网络,以通过最小化总损失值来找到一组更新后的最优权重系数W*。方差计算系统200A-200C可以以多种形式处理数据。通常,输入x′可以是数据的4D张量,例如视频片段、图像或提取的特征图。例如,x′可以是大小为(h,w,d,c)的视频段,其中h、w和d可以是视频段的高度、宽度和深度。如果每个视频帧是彩色图像,则c可以等于3;或者,如果每个视频帧是灰度图像,则c可以等于1。当视频段的长度d=1时,输入x′也可以简化为大小为(h,w,1,c)的图像。x′也可以是中间4D特征图,作为某些特征提取过程的输出。类似地,相关联的标记y′通常可以是4D张量。例如,对于分类任务,y′可以是大小为(1,1,1,C)的二进制向量,向量中的每个元素表示x′是否属于相应的类。对于分割任务,y′可以是大小为(h,w,d,c)的视频段,其中h、w、d和c可以是视频段的高度、宽度、长度和通道数量,并且y′中的每个元素表示在相应空间和时间位置处相应通道的像素所属的部分的索引。当d等于1时,y′可以简化为一幅图像。类似于x′,y′也可以是中间4D特征图。
各实施例中,可以基于最小化的损失值对深度神经网络进行训练。现在参考图2A,
Figure BDA0002716755780000081
可以表示经过标记的数据集,其中标记y′可以与每个x′相关联。
Figure BDA0002716755780000082
可以与原始数据集
Figure BDA0002716755780000083
相同,基于此可以获得预先训练的权重系数W。
Figure BDA0002716755780000084
也可以是与
Figure BDA0002716755780000085
不同的数据集,但是具有与原始数据集
Figure BDA0002716755780000086
相同的数据分布,即x′和x具有相同的维度,y′和y具有相同的维度,并且p(x′,y′)=p(x,y)。可以基于
Figure BDA0002716755780000087
使用工作流获得最优权重系数W*。
该处理可以分成两个阶段。在第一阶段中,可使用当前权重系数W′使每个输入x′经由网络正向计算模块202A穿过网络,可以产生估计输出
Figure BDA0002716755780000088
对于第一次迭代,W′可以被初始化为W′=W。可以利用数据损失计算模块204A基于正确标注的y′和估计输出的
Figure BDA0002716755780000089
来计算数据损失
Figure BDA00027167557800000810
通过正则化损失计算模块206A,还可以基于当前权重系数W′计算正则化损失£R(Θ)。通过平滑度损失计算模块208A,可以基于当前权重系数W′计算平滑度损失£S(Θ)。然后可以使用总梯度计算模块210A计算总损失的梯度,以获得总梯度Gtotal(W′)。这里可以使用由深度学习框架(例如tensorflow或pytorch)使用的自动梯度计算方法来计算Gtotal(W′)。使用反向传播和权重更新模块212A,可以基于总梯度Gtotal(W′)通过反向传播(BP)更新权重系数以获得更新后的W′,并且系统进入下一次迭代。反向传播和权重更新模块212A可以选择累加一批输入的总梯度Gtotal(W′),并且使用累加的总梯度仅更新权重系数。该一批输入的大小通常可以是预定义的超参数,并且系统在所有训练数据上迭代多次,其中每次迭代可以被称为一代(epoch)。系统通常运行多代直到损失优化收敛。
在上述迭代过程之后,可以获得一组更新后的权重系数W*。在第二阶段,
Figure BDA00027167557800000811
表示新的经过标记的数据集,其中标记y″可以与每个x″相关联。
Figure BDA00027167557800000812
可以与原始数据集
Figure BDA00027167557800000813
或上述
Figure BDA00027167557800000814
相同。
Figure BDA00027167557800000815
也可以是与
Figure BDA00027167557800000816
Figure BDA00027167557800000817
不同的数据集,但是具有与原始数据集
Figure BDA0002716755780000091
Figure BDA0002716755780000092
相同的数据分布,即x″和x(或x′)具有相同的维度,y″和y(或y′)具有相同的维度,并且p(x″,y″)=p(x′,y′)=p(x,y)。可以通过噪声添加模块214A对每个输入x″添加乘性高斯噪声,以生成噪声输入xN″,并且可以通过网络前向计算模块216A使用权重系数W*使所述噪声输入穿过网络,产生估计输出
Figure BDA0002716755780000093
可以通过数据损失计算模块220A基于正确标注y″和估计输出
Figure BDA0002716755780000094
来计算数据损失
Figure BDA0002716755780000095
可以使用KL散度计算模块218A来计算KL散度
Figure BDA0002716755780000096
然后可以使用变分梯度计算模块222A通过使用KL散度
Figure BDA0002716755780000097
和数据损失
Figure BDA0002716755780000098
来计算变分下边界的梯度GVD(W*)。这里可以使用深度学习框架(例如tensorflow或pytorch)使用的自动梯度计算方法来计算GVD(W*)。可以由方差计算模块224A对不同输入数据x″的梯度进行累加,并且可以计算方差σ。该方差可以用于测量网络的权重系数的重要性。
现在参考图2B,可以使用未经标注的数据集
Figure BDA0002716755780000099
来获得最优权重系数W*,其中对于每个x′不提供标注。与原始数据集
Figure BDA00027167557800000910
相比较,基于该原始数据集可以获得预先训练的权重系数W,x′和x具有相同的维度,并且尽管可以不提供标注,但是要估计的目标标注(由y′表示)应该具有与y相同的维度,并且p(x′,y′)=p(x,y)。
具体地,该过程可以分为两个阶段。在第一阶段中,可以由网络正向计算模块202B使用当前权重系数W′使每个输入x′穿过网络,产生估计输出
Figure BDA00027167557800000911
对于第一次迭代,W′可以被初始化为W′=W。标签估计模块203基于估计输出
Figure BDA00027167557800000912
来估计x′的真实标签
Figure BDA00027167557800000913
例如,通过在T次(T≥1)期间内对概率
Figure BDA00027167557800000914
进行累加并求平均,其中采用T个不同的x′作为在x′上应用高斯扰动的不同噪声版本,或者采用T个不同的权重系数集合(因为权重系数在训练过程中被不断更新)。可以通过数据损失计算模块204B使用估计的真实标签
Figure BDA00027167557800000915
和输出
Figure BDA00027167557800000916
来计算数据损失
Figure BDA00027167557800000917
通过正则化损失计算模块206B,可以基于当前权重系数W′计算正则化损失£R(Θ)。通过平滑度损失计算模块208B,可以基于当前权重系数W′.计算平滑度损失£S(Θ)。然后可以使用总梯度计算模块210B来计算总损失的梯度以获得总梯度Gtotal(W′)。这里可以使用由深度学习框架(例如tensorflow或pytorch)使用的自动梯度计算方法来计算Gtotal(W′)。基于总梯度Gtotal(W′),可以使用反向传播和权重更新模块212B通过BP更新权重系数,以获得更新的W′,然后系统进入下一次迭代。反向传播和权重更新模块212B可以选择对一批输入的总梯度Gtotal(W′)进行累加,并且用累加的总梯度仅更新权重系数。这一批输入的大小通常可以是预定义的超参数,并且系统在所有训练数据上迭代多次,其中每次可以被称为一代。系统通常运行多代直到损失优化收敛。
在第一阶段的上述过程之后,可以获得一组更新后的权重系数W*。在第二阶段,
Figure BDA00027167557800000918
可以表示新的未被标记的数据集。
Figure BDA00027167557800000919
可以与
Figure BDA00027167557800000920
相同。
Figure BDA00027167557800000921
也可以是与
Figure BDA00027167557800000922
不同的数据集,但是具有与
Figure BDA00027167557800000923
相同的数据分布,即x″和x′具有相同的维度,并且尽管可以不提供标记,但是待估计的目标标记(由y″表示)应该具有与目标标记y′相同的维度,并且p(x′,y′)=p(x″,y″)。
对于每个输入x″,可以通过噪声添加模块214B添加乘性高斯噪声,并且可以使用权重系数W*通过网络前向计算模块216B使输入噪声穿过网络,从而生成估计输出
Figure BDA0002716755780000101
标签估计模块217基于估计输出
Figure BDA0002716755780000102
估计x″的真实标签
Figure BDA0002716755780000103
例如,通过对T次(T≥1)的概率
Figure BDA0002716755780000104
进行累加并求平均,其中使用T个不同的xN″作为在x″上应用高斯扰动的不同噪声版本。可以通过数据损失计算模块220B基于估计输出
Figure BDA0002716755780000105
和估计输出
Figure BDA0002716755780000106
来计算数据损失
Figure BDA0002716755780000107
可以使用KL散度计算模块218B来计算KL散度
Figure BDA0002716755780000108
然后可以使用计算变分梯度模块222B通过使用KL散度
Figure BDA0002716755780000109
和数据损失
Figure BDA00027167557800001010
来计算变分下边界GVD(W*)的梯度。这里可以使用深度学习框架(例如tensorflow或pytorch)使用的自动梯度计算方法来计算GVD(W*)。可以由方差计算模块224B对不同输入数据x″的梯度进行累加,并且可以计算方差σ。该方差可以用于测量网络的权重系数的重要性。
现在参考图2C,
Figure BDA00027167557800001011
可以表示部分标记的数据集,其中
Figure BDA00027167557800001012
Figure BDA00027167557800001013
可以是经过标记的子集(其可以与原始数据集相同或不同,其中原始数据集可以用于训练预先训练的权重),并且
Figure BDA00027167557800001014
可以是未标记的子集。xL′、xU′和x具有相同的维度,并且yL′、y和xU′对应的待估计的目标标签yU′应该具有相同的维度,并且p(xL′,yL′)=p(xU′,yU′)=p(x,y)。工作流可以用于获得最优权重系数W*。
具体地,该处理可以分为两个阶段。在第一阶段中,可由网络正向计算模块202C使用当前权重系数W′使每个输入xL′或xU′穿过网络,产生估计输出
Figure BDA00027167557800001015
对于第一次迭代,W′可以被初始化为W′=W。
当输入是未标记的xU′时,半监督标签估计模块205通过使用估计输出
Figure BDA00027167557800001016
和经标记的数据集
Figure BDA00027167557800001017
估计xU′的真实标记
Figure BDA00027167557800001018
例如,可以对采用不同的x′作为在xU′上应用高斯扰动的不同噪声形式对应的
Figure BDA00027167557800001019
或者在迭代训练过程中由于不断更新产生的不同的权重系数对应的概率
Figure BDA00027167557800001020
进行累加,其结果可以是
Figure BDA00027167557800001021
的合理近似。而且,可以使用半监督学习方法计算概率估计
Figure BDA00027167557800001022
然后可以将
Figure BDA00027167557800001023
Figure BDA00027167557800001024
进行组合,例如加权组合,以产生真实标签
Figure BDA00027167557800001025
的估计。之后,可以通过数据损失计算模块204C使用
Figure BDA00027167557800001026
Figure BDA00027167557800001027
来计算数据损失
Figure BDA00027167557800001028
另一方面,当输入是经过标记的xL′时,可以直接通过数据损失计算模块204C使用yL′和
Figure BDA00027167557800001029
来计算数据损失
Figure BDA00027167557800001030
可以利用正则化损失计算模块206C基于当前权重系数W′计算正则化损失£R(Θ)。可以利用平滑度损失计算模块208C基于当前权重系数W′计算平滑度损失£S(Θ)。然后可以使用总梯度计算模块210C计算总损失的梯度,以获得总梯度Gtotal(W′)。这里可以使用深度学习框架(例如tensorflow或pytorch)使用的自动梯度计算方法来计算Gtotal(W′)。反向传播和权重更新模块212C可以基于总梯度Gtotal(W′),通过BP更新权重系数,以获得更新的W′,然后系统进入下一次迭代。反向传播和权重更新模块212C可以选择对一批输入的总梯度Gtotal(W′)进行累加,并且用累加的总梯度仅更新权重系数。该一批输入的大小通常可以是预定义的超参数,并且系统在所有训练数据上迭代多次,其中每次可以被称为一代。系统通常运行多代直到损失优化收敛。
在第一阶段的上述过程之后,可以获得一组更新的权重系数W*。在第二阶段中,
Figure BDA0002716755780000111
可以表示部分标记的数据集,其中
Figure BDA0002716755780000112
Figure BDA0002716755780000113
可以是经过标记的子集(其可以与
Figure BDA0002716755780000114
或者
Figure BDA0002716755780000115
相同或者不同),并且
Figure BDA0002716755780000116
可以是未被标记的子集。xL″、xU″、xL′、xU′和x具有相同的维度,并且yL″、yL′、y和xU″对应的待估计的目标标签yU″应该具有相同的维度,并且p(xL″,yL″)=p(xL′,yL′)=p(xU″,yU″)=p(xU′,yU′)=p(x,y)。可以通过噪声添加模块214C对每个输入xL″或xU″添加乘性高斯噪声,以生成输入噪声xN″,并且可以使用权重系数W*通过网络前向计算模块216C使输入噪声穿过网络,产生估计输出
Figure BDA0002716755780000117
当输入是未标记xU″时,半监督标记估计模块通过使用估计的输出
Figure BDA0002716755780000118
和被标记的数据集
Figure BDA0002716755780000119
估计xU″的真实标记
Figure BDA00027167557800001110
例如,可以用具有不同的xN″的概率
Figure BDA00027167557800001111
作为在xU″上应用高斯扰动的不同噪声形式,并对这些概率进行累加,,可以作为
Figure BDA00027167557800001112
的合理近似。而且,可以使用半监督学习方法计算概率估计
Figure BDA00027167557800001113
然后可以将
Figure BDA00027167557800001114
Figure BDA00027167557800001115
进行合并,例如加权合并,以产生真实标签
Figure BDA00027167557800001116
的估计。之后,通过数据损失计算模块220C,可以使用
Figure BDA00027167557800001117
Figure BDA00027167557800001118
计算数据损失
Figure BDA00027167557800001119
另一方面,当输入为经过标记的xL″时,可以直接通过数据损失计算模块220C使用yL″和
Figure BDA00027167557800001120
来计算数据损失
Figure BDA00027167557800001121
可以使用计算KL散度模块218C来计算KL散度
Figure BDA00027167557800001122
然后可以通过变分梯度计算模块222C使用KL散度
Figure BDA00027167557800001123
和数据损失
Figure BDA00027167557800001124
来计算变分下边界GVD(W*)的梯度。这里可以使用由深度学习框架(例如tensorflow或pytorch)使用的自动梯度计算方法来计算GVD(W*)。可以由方差计算模块224C对不同的数据输入x″的梯度进行累加,并且可以计算方差σ。方差可以用于度量网络的权重系数的重要性。
现在参考图3,其示出了压缩深度神经网络模型的方法300的步骤的操作流程图。在一些实施例中,图3的至少一个处理块可以由计算机102(图1)和服务器计算机114(图1)执行。在一些实施例中,图3的至少一个处理块可以由与计算机102以及服务器计算机114相独立或包括计算机102以及服务器计算机114的另一设备或一组设备来执行。
在302,方法300包括对深度神经网络关联的权重系数进行量化和熵编码。
在304,方法300包括对经过量化和熵编码的权重系数进行局部平滑。
在306,方法300包括通过对权重系数应用变分随机丢弃来压缩经过平滑的权重系数。
应当理解,图3仅提供一种实现方式的说明,并不意味着对不同实施例的环境的实现方式进行任何限制。可基于设计和实现需求对所描述的环境进行各种修改。
各实施例还提供一种压缩深度神经网络的计算机系统,包括:
量化和熵编码模块,用于使至少一个计算机处理器对与深度神经网络关联
的权重系数进行量化和熵编码;
平滑模块,用于使所述至少一个计算机处理器对经过量化和熵编码的所述权重系数进行局部平滑;及
压缩模块,用于使所述至少一个计算机处理器通过对所述权重系数应用变分丢弃(variational dropout)来对平滑后的所述权重系数进行压缩。
图4是示意性实施例的图1中所描绘的计算机的内部组件和外部组件的框图400。应当理解,图4仅提供一种实现方式的说明,并不意味着对不同实施例的环境的实现方式进行任何限制。可基于设计和实现需求对所描绘的环境进行各种修改。
计算机102(图1)和服务器计算机114(图1)可包括图4所示的内部组件集合800A、800B和相应的外部组件集合900A、900B。每个内部组件集合800包括至少一个总线826上的至少一个处理器820、至少一个计算机可读RAM 822以及至少一个计算机可读ROM 824,以及至少一个操作系统828和至少一个计算机可读有形存储设备830。
处理器820以硬件、固件、或硬件和软件的组合来实现。处理器820是中央处理单元(central processing unit,CPU)、图形处理单元(graphics processing unit,GPU)、加速处理单元(accelerated processing unit,APU)、微处理器(microprocessor)、微控制器(microcontroller)、数字信号处理器(digital signal processor,DSP)、现场可编程门阵列(field-programmable gate array,FPGA)、专用集成电路(application-specificintegrated circuit,ASIC)、或者另一种类型的处理组件。在一些实现方式中,处理器820包括能够被编程用于执行某种功能的至少一个处理器。总线826包括支持内部组件800A、800B之间进行通信的组件。
服务器计算机114(图1)中的至少一个操作系统828、软件程序108(图1)和DNN模型压缩程序116(图1)存储在相应的计算机可读有形存储设备830中的至少一个存储设备中,用于由相应的处理器820中的至少一个处理器利用相应的RAM 822(其通常包括高速缓冲存储器)中的至少一个RAM执行。在图4所示的实施例中,计算机可读有形存储设备830中的每个存储设备是内部硬盘驱动器的磁盘存储设备。或者,计算机可读有形存储设备830中的每个存储设备是半导体存储设备,例如ROM 824、EPROM、闪存、光盘、磁光盘、固态盘、压缩盘(CD)、数字多功能盘(DVD)、软盘、盒式磁盘、磁带和/或另一种类型的可存储计算机程序和数字信息的非暂时性计算机可读有形存储设备。
每个内部组件集合800A、800B还包括R/W驱动器或接口832,用于从至少一个便携式计算机可读有形存储设备936(例如CD-ROM、DVD、记忆棒、磁带、磁盘、光盘或半导体存储设备)读取或向其写入。软件程序,例如软件程序108(图1)和DNN模型压缩程序116(图1),可存储在相应的便携式计算机可读有形存储设备936中的至少一个存储设备中,并通过相应的R/W驱动或接口832被读取并且被装载到相应的硬盘驱动器830中。
每个内部组件集合800A、800B还包括网络适配器或接口836,例如TCP/IP适配卡、无线Wi-Fi接口卡、或者3G、4G或5G无线接口卡或其它有线或无线通信链路。服务器计算机114(图1)上的软件程序108(图1)和DNN模型压缩程序116(图1)可以是从外部计算机经由网络(例如,因特网、局域网及类似网络、广域网)和相应的网络适配器或接口836下载到计算机102(图1)和服务器计算机114上的。上述网络可包括铜线、光纤、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。
各个外部组件集合900A、900B中的每个集合可包括计算机显示器920、键盘930和计算机鼠标934。外部组件集合900A、900B还可包括触摸屏、虚拟键盘、触摸板、指向设备和其它人机接口设备。各内部组件集合800A、800B中的每个集合还包括设备驱动器840用于与计算机显示监视器920、键盘930和计算机鼠标934相连。设备驱动器840、R/W驱动器或接口832以及网络适配器或接口836包括硬件和(存储在存储设备830和/或ROM 824中的)软件。
应预先理解,尽管本公开包括对云计算的详细描述,但本文所提及的技术的实现不限于云计算环境。相反,一些实施例能够结合现在已知的或以后开发的任何其它类型的计算环境来实现。
云计算是用于实现对可配置计算资源(例如,网络、网络带宽、服务器、处理、存储器、存储、应用、虚拟机和服务)的共享池的方便的按需网络访问的服务递送模型,该可配置计算资源可用最少的管理工作或与服务提供者的交互来快速地供应和释放。该云模型可包括至少五个特性、至少三个服务模型和至少四个部署模型。
特点如下:
按需自助服务:云消费者可根据需要自动地单方面安排诸如服务器时间和网络存储等计算能力,而无需与服务的提供者进行人工交互。
广泛的网络接入:能力在网络上可用并且通过标准机制获取,该标准机制促进了在异构的精简客户端平台或厚客户端平台(例如,移动电话、笔记本电脑和PDA)中的使用。
资源池化:提供者的计算资源被归入资源池以通过多租户模型服务多个消费者,其中按需将不同的物理资源和虚拟资源动态地分配和重分配。一般情况下,消费者不能控制或并不知晓所提供的资源的确切位置,但能够在较高抽象级别(例如,国家、州或数据中心)上指定位置,因此具有位置无关性。
快速弹性:可快速且弹性地安排各种能力,在一些情况下,可以快速水平扩展以及快速垂直扩展。对于消费者来说,可用于供应的能力通常看起来是无限的,并且可在任何时间购买任何数量。
可度量的服务:云系统通过充分利用适于服务类型(例如存储、处理、带宽和活跃用户帐号)的某种抽象程度的可计量的能力,自动地控制和优化资源的使用。可对资源的使用进行监视、控制和报告,从而为已利用的服务的提供者和消费者双方提供透明度。
服务模型如下:
软件即服务(SaaS):提供给消费者的能力是能够使用提供者在云基础架构上运行的应用。这些应用可由各种客户端设备通过精简客户端接口,例如web浏览器(如基于web的电子邮件)进行访问。可能除了有限的用户专用的应用配置设置外,消费者既不管理也不控制底层云基础架构,包括网络、服务器、操作系统、存储、或甚至单个应用的能力。
平台即服务(PaaS):提供给消费者的能力是能够将消费者创建的或获取的应用部署到云基础设施上,这些应用是使用提供者支持的编程语言和工具创建的。消费者既不管理也不控制底层云基础架构,包括网络、服务器、操作系统或存储,但对已部署应用具有控制权,并且对应用托管环境配置可能也具有控制权。
基础架构即服务(IaaS):提供给消费者的能力是供应处理、存储、网络和其它基础计算资源,消费者能够在其中部署并运行包括操作系统和应用的任意软件。消费者既不管理也不控制底层云基础架构,但是对操作系统、存储、已部署应用具有控制权,并且对选择网络组件(例如,主机防火墙)可能具有有限的控制权。
部署模型如下:
私有云:云基础架构单独为某个组织运行。它可由该组织或第三方管理,并且可基于自有部署或外部部署。
社区云:云基础架构被若干组织共享并且支持有共同关注点(例如,任务使命、安全要求、政策和合规考虑)的特定社区。它可由该组织或第三方管理,并且可基于自有部署或外部部署。
公有云:云基础架构可供公众或大型产业群体使用并由出售云服务的组织所拥有。
混合云:云基础设施是两个或更多个云(私有、社区或公共)的组合,该两个或更多个云仍为独立实体,但是通过标准化技术或专有技术被绑定在一起,该标准化技术或专有技术实现数据和应用可移植性(例如,用于云之间的负载平衡的云爆发)。
云计算环境是面向服务的,其焦点在于无状态、低耦合、模块化和语义互操作性。云计算的核心是其基础架构包括互连节点构成的网络。
参考图5,描绘了示意性云计算环境500。如图所示,云计算环境500包括至少一个云计算节点10,通过这些云计算节点10,云消费者使用的本地计算设备,例如个人数字助理(PDA)或蜂窝电话54A、台式计算机54B、膝上型计算机54C和/或汽车计算机系统54N,可实现相互通信。云计算节点10可相互通信。这些云计算节点10可被物理地或虚拟地分组(未示出)到至少一个网络中,例如如上所述的私有云、社区云、公共云或混合云或其组合。这样,云计算环境500可以提供基础架构即服务、平台即服务和/或软件即服务,云消费者不需要为该服务维护本地计算设备上的资源。可理解,图5所示的计算设备54A至54N的类型仅出于说明的目的,且云计算节点10和云计算环境500可在任何类型的网络和/或网络可寻址连接(例如,使用web浏览器)中与任何类型的计算机化设备通信。
参考图6,示出了由云计算环境500(图5)提供的一组功能抽象层600。应预先理解,图6所示的组件、层和功能仅出于说明的目的,并且实施例不限于此。如图所示,提供了以下层和相应功能:
硬件和软件层60包括硬件组件和软件组件。硬件组件的示例包括:大型机61、基于RISC(Reduced Instruction Set Computer、精简指令集计算机)体系结构的服务器62、服务器63、刀片服务器64、存储设备65、以及网络和联网组件66。在一些实施例中,软件组件包括网络应用服务器软件67和数据库软件68。
虚拟化层70提供抽象层,从该抽象层可提供以下虚拟实体的示例:虚拟服务器71、虚拟存储72、虚拟网络73(包括虚拟专用网络)、虚拟应用和操作系统74、以及虚拟客户机75。
在一个示例中,管理层80可提供在下面描述的功能。资源供应81提供计算资源和用于在云计算环境中执行任务的其它资源的动态获取。计量和定价82在云计算环境内对资源的使用进行费用跟踪,并且为这些资源的消耗提供帐单和发票。在一个示例中,这些资源可包括应用软件许可证。安全性为云消费者和任务提供身份验证,并保护数据和其它资源。用户门户83为消费者和系统管理员提供对云计算环境的访问。服务水平管理84提供云计算资源分配和管理,使得满足所需的服务水平。服务水平协议(Service Level Agreement,SLA)规划和履行85提供对云计算资源的预安排和采购,其中根据SLA预测未来需求。
工作负载层90提供可利用云计算环境的功能的示例。可从该层提供的工作负载和功能的示例包括:地图绘制及导航91、软件开发及生命周期管理92、虚拟教室教学提供93、数据分析处理94、交易处理95、以及DNN模型压缩96。DNN模型压缩96可在变差丢弃框架中使用平滑正则化对深度神经网络模型进行压缩。
一些实施例可涉及在任何可能的集成技术的技术细节水平上的系统、方法和/或计算机可读介质。计算机可读介质可包括非暂时性计算机可读存储介质,其中存储有用于使处理器执行操作的计算机可读程序指令。
计算机可读存储介质可以是有形设备,有形设备可保存和存储用于由指令执行设备使用的指令。计算机可读存储介质可以是,例如但不限于,电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或前述的任何合适设备的组合。计算机可读存储介质的更具体的非穷举的示例列表包括以下项:便携式计算机磁盘、硬盘驱动器、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式光盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码装置(诸如穿孔卡片或凹槽中的其上记录有指令的凸起结构),以及前述的任何合适的组合。本文使用的计算机可读存储介质不应被解释为是瞬时信号本身,诸如无线电波或其它自由传播的电磁波、通过波导或其它传输介质传播的电磁波(例如,通过光缆的光脉冲),或通过导线传输的电信号。
本文描述的计算机可读程序指令可从计算机可读存储介质被下载到相应的计算/处理设备,或者经由网络(例如,因特网、局域网、广域网和/或无线网络)被下载到外部计算机或外部存储设备。网络可包括铜传输缆线、光纤、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或网络接口从网络接收计算机可读程序指令,并且转发计算机可读程序指令以用于存储在相应计算/处理设备内的计算机可读存储介质中。
用于执行操作的计算机可读程序代码/指令可以是汇编指令、指令集体系结构(instruction-set-architecture,ISA)指令、机器指令、机器依赖指令、微代码、固件指令、状态设置数据、用于集成电路的配置数据,或者以一种或多种编程语言的任何组合编写的源代码或目标代码,这些编程语言包括面向对象的编程语言(诸如SmallTalk、C++等)以及面向过程的编程语言(诸如“C”编程语言或类似编程语言)。计算机可读程序指令可完全在用户的计算机上执行、部分地在用户的计算机上执行、作为独立软件包、部分地在用户的计算机上并且部分地在远程计算机上或者完全在远程计算机或服务器上执行。在后一种情况下,远程计算机可通过任何类型的网络(包括局域网(LAN)或广域网(WAN))连接到用户的计算机,或者可连接到外部计算机(例如,通过使用因特网服务提供商的因特网)。在一些实施例中,电子电路,包括,例如,可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),可通过利用计算机可读程序指令的状态信息来执行计算机可读程序指令以使电子电路个性化,从而执行本公开的各方面或操作。
这些计算机可读程序指令可被提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器以产生机器,使得指令经由计算机或其它可编程数据处理装置的处理器执行后创建用于实现上述流程图和/或框图的框或多个框中指定的功能/动作的装置。这些计算机可读程序指令还可被存储在计算机可读存储介质中,该计算机可读存储介质可指导计算机、可编程数据处理装置和/或其它设备以特定方式运行,使得其中存储有指令的计算机可读存储介质包括这样的制造物,该制造物包括用于实现流程图和/或框图的框或多个框中指定的功能/动作的各方面的指令。
还可将计算机可读程序指令加载到计算机、其它可编程数据处理装置或其它设备上,使得将在计算机、其它可编程装置或其它设备上执行一系列操作步骤,以产生计算机实现的处理,使得在计算机、其它可编程装置或其它设备上执行的指令实现在流程图和/或框图的框或多个框中指定的功能/动作。
附图中的流程图和框图说明了各实施例的系统、方法和计算机可读介质的可能实施例的体系结构、功能和操作。在这点上,流程图或框图中的每个框可表示指令的模块、段或部分,其包括用于实现指定的逻辑功能的至少一个可执行指令。方法、计算机系统和计算机可读介质可包括额外的框、更少的框、不同的框,或者与附图中所描绘的顺序不同的框。在一些可替代的实现方式中,在框中指出的功能可不按照附图中指定的顺序发生。例如,连续示出的两个框实际上可同时或基本同时被执行,或者这些框有时可以以相反的顺序被执行,这取决于所涉及的功能。还应注意,框图和/或流程图图示中的每个框以及框图和/或流程图图示中的框的组合可由基于专用硬件的系统来实现,该系统执行指定功能或动作或执行专用硬件和计算机指令的组合。
显然,本文描述的系统和/或方法可以以不同形式的硬件、固件或硬件和软件的组合来实现。用于实现这些系统和/或方法的实际专用控制硬件或软件代码不限于这些实现方式。因此,在不参考特定软件代码的情况下本文描述了系统和/或方法的操作和行为——应当理解,可基于在本文的描述来设计软件和硬件以实现上述系统和/或方法。
除非明确说明,本文中使用的元件、动作或指令都不应被解释为关键的或必要的。此外,如本文所用,冠词“一”和“一个”旨在包括至少一个项目,并且可与“至少一个”互换使用。此外,如本文所用,术语“集合”旨在包括至少一个项目(例如,相关项目、不相关项目、相关项目和不相关项目的组合等),并且可与“至少一个”互换使用。当仅意指一个项目时,使用术语“一个”或类似语言。此外,如本文所用,术语“具有”、“有”、“带有”等是开放式术语。进一步地,除非另外说明,短语“基于”旨在表示“至少部分地基于”。
上面以说明的目的描述了对各方面和实施例,但该描述并非穷举或局限在所公开的实施例。虽然特征的组合在权利要求中陈述和/或在说明书中公开,但是这些组合并不旨在对可能的实现方式的公开内容进行限制。事实上,这些特征中的许多特征可以以权利要求中未具体列举和/或说明书中未公开的方式组合。虽然下面列出的每个从属权利要求可直接从属于仅一个权利要求,但是公开的可能的实现方式包括与权利要求组中的每个其它权利要求的组合的每个从属权利要求。在不脱离所描述的实施例的范围的情况下,许多修改和变化对于本领域普通技术人员是显而易见的。本文使用的术语是经过选择以能够最佳地解释实施例的原理、实际应用或相对于市场中已有技术的技术改进,或者使得本领域普通技术人员能够理解本文公开的实施例。

Claims (15)

1.一种压缩深度神经网络的方法,其特征在于,包括:
对与深度神经网络关联的权重系数进行量化和熵编码;
对经过量化和熵编码的所述权重系数进行局部平滑;及
通过对所述权重系数应用变分丢弃(variational dropout)来对平滑后的所述权重系数进行压缩。
2.根据权利要求1所述的方法,其特征在于,所述权重系数对应于一个多维张量所关联的维度。
3.根据权利要求1所述的方法,其特征在于,基于确定与所述权重系数相关联的梯度,对所述权重系数进行局部平滑。
4.根据权利要求1所述的方法,其特征在于,基于对所述权重系数的平滑度度量所关联的损失值进行最小化,对所述权重系数进行局部平滑。
5.根据权利要求4所述的方法,其特征在于,基于从所述权重系数中选择权重系数的子集,进行所述损失值的最小化。
6.根据权利要求4所述的方法,其特征在于,所述平滑度度量对应于所述权重系数在至少一个轴上的一个点所测量的梯度的绝对值,且基于对在所述至少一个轴上的所述梯度的贡献进行平衡。
7.根据权利要求4所述的方法,其特征在于,进一步包括:
基于所述最小化的损失值对所述深度神经网络进行训练。
8.一种压缩深度神经网络的计算机系统,其特征在于,包括:
量化和熵编码模块,用于使至少一个计算机处理器对与深度神经网络关联的权重系数进行量化和熵编码;
平滑模块,用于使所述至少一个计算机处理器对经过量化和熵编码的所述权重系数进行局部平滑;及
压缩模块,用于使所述至少一个计算机处理器通过对所述权重系数应用变分丢弃(variational dropout)来对平滑后的所述权重系数进行压缩。
9.根据权利要求8所述的计算机系统,其特征在于,所述权重系数对应于一个多维张量所关联的维度。
10.根据权利要求8所述的计算机系统,其特征在于,所述权重系数的局部平滑基于确定与所述权重系数相关联的梯度。
11.根据权利要求8所述的计算机系统,其特征在于,所述权重系数的局部平滑基于对所述权重系数的平滑度度量所关联的损失值进行最小化。
12.根据权利要求11所述的计算机系统,其特征在于,所述损失值的最小化基于从所述权重系数中选择权重系数的子集。
13.根据权利要求11所述的计算机系统,其特征在于,所述平滑度度量对应于所述权重系数在至少一个轴上的一个点所测量的梯度的绝对值,且基于对在所述至少一个轴上的所述梯度的贡献进行平衡。
14.一种压缩深度神经网络的计算机系统,其特征在于,包括:
至少一个计算机可读非暂时性存储介质,用于存储计算机程序代码;及
至少一个计算机处理器,用于访问所述计算机程序代码并根据所述计算机程序代码的指示执行根据权利要求1-7中任一权利要求所述的方法。
15.一种非暂时性计算机可读介质,存储有用于压缩深度神经网络的计算机程序,其特征在于,所述计算机程序用于使至少一个计算机处理器执行根据权利要求1-7中任一权利要求所述的方法。
CN202011076138.1A 2019-10-15 2020-10-10 神经网络模型压缩的方法和计算机系统 Pending CN112668690A (zh)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
US201962915337P 2019-10-15 2019-10-15
US62/915,337 2019-10-15
US201962939060P 2019-11-22 2019-11-22
US62/939,060 2019-11-22
US17/034,739 2020-09-28
US17/034,739 US11811429B2 (en) 2019-10-15 2020-09-28 Variational dropout with smoothness regularization for neural network model compression

Publications (1)

Publication Number Publication Date
CN112668690A true CN112668690A (zh) 2021-04-16

Family

ID=75383488

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011076138.1A Pending CN112668690A (zh) 2019-10-15 2020-10-10 神经网络模型压缩的方法和计算机系统

Country Status (2)

Country Link
US (1) US11811429B2 (zh)
CN (1) CN112668690A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115550660A (zh) * 2021-12-30 2022-12-30 北京智美互联科技有限公司 网络视频局部可变压缩方法和系统

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11551089B2 (en) * 2020-03-31 2023-01-10 Ati Technologies Ulc Feature reordering based on sparsity for improved memory compression transfers during machine learning jobs

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9106925B2 (en) * 2010-01-11 2015-08-11 Ubiquity Holdings, Inc. WEAV video compression system
US10748062B2 (en) * 2016-12-15 2020-08-18 WaveOne Inc. Deep learning based adaptive arithmetic coding and codelength regularization
US10547835B2 (en) * 2018-06-22 2020-01-28 Tencent America LLC Techniques for signaling prediction weights in video coding
US11025907B2 (en) * 2019-02-28 2021-06-01 Google Llc Receptive-field-conforming convolution models for video coding
US11496769B2 (en) * 2019-09-27 2022-11-08 Apple Inc. Neural network based image set compression
US11979565B2 (en) * 2021-05-27 2024-05-07 Tencent America LLC Content-adaptive online training method and apparatus for post-filtering

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115550660A (zh) * 2021-12-30 2022-12-30 北京智美互联科技有限公司 网络视频局部可变压缩方法和系统
CN115550660B (zh) * 2021-12-30 2023-08-22 北京国瑞数智技术有限公司 网络视频局部可变压缩方法和系统

Also Published As

Publication number Publication date
US11811429B2 (en) 2023-11-07
US20210111736A1 (en) 2021-04-15

Similar Documents

Publication Publication Date Title
JP7425527B2 (ja) 物体検出のインクリメンタル学習システムおよび方法
US11416772B2 (en) Integrated bottom-up segmentation for semi-supervised image segmentation
US10229499B2 (en) Skin lesion segmentation using deep convolution networks guided by local unsupervised learning
CN111247532B (zh) 利用多任务学习进行特征提取
US9355067B1 (en) Distribution of parameter calculation for iterative optimization methods
US11663486B2 (en) Intelligent learning system with noisy label data
US20200034776A1 (en) Managing skills as clusters using machine learning and domain knowledge expert
US11651499B2 (en) Reducing structural redundancy in automatic image segmentation
US11586919B2 (en) Task-oriented machine learning and a configurable tool thereof on a computing environment
US20210279279A1 (en) Automated graph embedding recommendations based on extracted graph features
CN116194936A (zh) 识别拟合目标域的传递学习过程的源数据集
CN112668690A (zh) 神经网络模型压缩的方法和计算机系统
US11496775B2 (en) Neural network model compression with selective structured weight unification
US11935271B2 (en) Neural network model compression with selective structured weight unification
CN112364933A (zh) 图像分类方法、装置、电子设备和存储介质
US11164078B2 (en) Model matching and learning rate selection for fine tuning
US20210201157A1 (en) Neural network model compression with quantizability regularization
US20210232891A1 (en) Neural network model compression with structured weight unification
WO2021208808A1 (en) Cooperative neural networks with spatial containment constraints
KR20220085824A (ko) 마이크로-구조 마스크를 사용한 고품질 비디오 초고해상도
CN113112012B (zh) 用于视频图像处理的方法、装置和计算机设备
CN113159312B (zh) 压缩神经网络模型的方法、计算机系统以及存储介质
US20230229904A1 (en) Transfer learning through composite model slicing
US20230408726A1 (en) Weather forecasting using teleconnections
WO2022247448A1 (zh) 数据处理方法、装置、计算设备和计算机可读存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40042028

Country of ref document: HK

SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination