CN112486686A - 基于云边协同的定制化深度神经网络模型压缩方法及系统 - Google Patents

基于云边协同的定制化深度神经网络模型压缩方法及系统 Download PDF

Info

Publication number
CN112486686A
CN112486686A CN202011382009.5A CN202011382009A CN112486686A CN 112486686 A CN112486686 A CN 112486686A CN 202011382009 A CN202011382009 A CN 202011382009A CN 112486686 A CN112486686 A CN 112486686A
Authority
CN
China
Prior art keywords
model
lightweight
cloud
distillation
training
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
CN202011382009.5A
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.)
Zhejiang Lab
Original Assignee
Zhejiang Lab
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 Zhejiang Lab filed Critical Zhejiang Lab
Priority to CN202011382009.5A priority Critical patent/CN112486686A/zh
Publication of CN112486686A publication Critical patent/CN112486686A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5072Grid computing
    • 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/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • General Engineering & Computer Science (AREA)
  • Biophysics (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Computing Systems (AREA)
  • Molecular Biology (AREA)
  • General Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Computational Linguistics (AREA)
  • Neurology (AREA)
  • Image Analysis (AREA)

Abstract

本发明公开了一种基于云边协同的定制化深度神经网络模型压缩方法及系统,该方法基于云端经过长时间训练的高精度的网络模型,基于用户的个性化需求,将网络模型分类关注的分类和不关注的分类,然后结合关注的分类、用户的数据集和模型压缩的比例,通过基于知识整理的神经网络模型压缩方法,进行模型的轻量化,满足用户边缘侧节点资源受限的场景需求,提升模型推理的速度,同时保证一定的模型精确度。本发明基于用户关注分类需求和知识蒸馏技术的模型训练方法,并在图片分类的场景下基于公共的数据集进行了验证。

Description

基于云边协同的定制化深度神经网络模型压缩方法及系统
技术领域
本发明属于边缘计算和深度学习领域,尤其涉及一种基于云边协同的定制化深度神经网络模型压缩方法及系统。
背景技术
深度学习是人工智能领域重要的一个分支。深度学习通过深度神经网络,在机器视觉、NLP和语音识别等领域产生越来越重要的影响力。随着边缘计算的发展,深度学习开始在更广泛的硬件设备上发挥更重要的价值-即“边缘赋能”,这使得物联网中的许多硬件具有的更强大的识别、检测、智能化处理能力。然而,边缘计算场景下的许多硬件设备的计算能力都比较弱,深度神经网络推理的速度也比较慢,如何在部署到边缘设备和终端设备前,对深度神经网络模型进行优化和加速,是人工智能落地面临的一个难题。
边缘节点和终端运行神经网络模型主要面临两个问题,一是边缘节点和终端的内存都比较小,而一些深度神经网络模型运行的体积比较大,如用于图片分类的VGG-16网络,模型有138M个参数,每个参数的类型为float32,则模型本身的运行开销至少为552MB。二是边缘节点和终端的计算能力比较差,遇上实时性比较高的应用场景,如自动驾驶,推理的时延将至关重要。而深度神经网络模型比较大,在资源能力比较低的情况下,推理时延比较高。某些模型的推理时间甚至是秒级别。
目前模型压缩的算法主要有四种:一、设计更轻量化的神经网络。模型参数的冗余是保证模型得到良好训练的前提。通过对模型更细致、高效、轻量化的设计,减少模型尺寸,满足边缘侧和终端资源的需求,如SqueezeNet、MobileNet都是经过精细设计的精度比较好的网络结构。二、剪枝。通过一定的度量标准、对已经训练好的复杂的网络结构进行重要性评估,将不重要的权重、卷积核、通道及卷积层进行裁剪的一种技术。三、知识蒸馏。将复杂模型中的分布信息和特征信息通过知识迁移的方式,转移到轻量化的模型结构中,不但可以加快收敛的速度,也可以使轻量化模型学习一些复杂模型的样本集没有的特征,使模型具有更好的泛化能力。四、量化。量化没有从根本上改变复杂网咯的模型结构,而是通过减少每个权重所需要的比特数来压缩原始网络,从而达到减少内存开销,加快推理计算的目的。
但上面的这些方法都没有充分的与碎片化边缘场景的用户需求相结合,导致云端提供的网络模型与用户需求的网络模型不匹配或者“赋能过载”,同时模型轻量化后的推理精度比较低。
发明内容
本发明的目的在于针对现有技术的不足,提供一种基于云边协同的定制化深度神经网络模型压缩方法及系统。本发明可以解决边缘场景受限于硬件约束的问题,如CPU/GPU/NPU/内存的大小和计算能力不足,导致无法边缘侧部署或进行实时推理的问题;在碎片化边缘场景下,基于用户的定制化需求进行模型压缩和加速。
本发明的目的是通过以下技术方案来实现的:一种基于云边协同的定制化深度神经网络模型压缩方法,边缘侧的用户接收云端传输的深度神经网络模型,并根据用户的定制化需求和用户的数据集,进行深度神经网络模型的训练。采用云边协同的方法。由云端提供一个普适性更强的通用神经网络模型,而边缘侧根据用户的需求,使用边缘侧的硬件资源环境对模型进行二次训练和优化,以达到模型加速的目的。采用知识蒸馏的方法,来迁移云端提供的深度神经网络模型的特征到轻量化的网络模型中。
进一步地,允许用户使用两种不同的方式进行轻量化模型的训练:
a1)在模型训练的时候,轻量化模型的分类信息与云端的模型保持一致。等待完成模型训练后,再根据用户个性化的需求进行后处理。
a2)在模型训练的时候,修改轻量化模型的分类信息,修改模型优化的损失函数,知识蒸馏过程中,只迁移用户关注的特征信息,而无需后处理的过程。
进一步地,所述知识蒸馏的方法,可以使用两种不同的方式实现:
b1)可以基于模型分类Logits的分布信息设计损失函数,将Logits的分布特征迁移到轻量化的网络模型中。
b2)可以基于模型的通道信息设计损失函数,将Channels的特征图迁移到轻量化的网络模型中。
一种基于云边协同的定制化深度神经网络模型压缩系统,包括:
大模型生成模块。大模型指具备多种能力,且结构比较复杂的深度神经网络模型。该模块是根据云端的具体资源状况,输出复杂且具有多种分类或识别能力的模型。
模型分发模块。模型分发模块主要用于通过云边协同,将模型传输到边缘节点上。分发的数据包括且不限于模型文件、配置文件和若干与模型相关的说明文件。模型的分发机制可以通过进程间的通信机制完成,也可以通过一些传统的文件协议如Samba,NFS等实现。
边缘侧模型压缩模块。该模块是进行边缘侧模型压缩和处理的核心模块,其输入为用户个性化的数据集、云端分发的大模型和用户关注的分类信息或者目标检测信息,输出为一个能够在边缘侧或者终端侧部署的轻量化模型。
模型部署模块。该模块完成轻量化模型的接入或部署。部署可以以应用程序的方式,也可以基于容器机制。
进一步地,所述边缘侧模型压缩模块,拥有两种实现方式,包括:
3.1、先经过全部分类蒸馏,然后对输出的轻量化模型进行处理。
3.2、直接使用子类蒸馏训练的方法。
进一步地,所述子类蒸馏训练的方法,实现方式有两种选择途径,包括:
3.2.1、训练过程中,采用基于Logits的子类蒸馏的方式。
3.2.2、训练过程中,采用基于Channels的子类蒸馏的方式。
进一步地,步骤3.1具体为:在分类任务中,每一个分类的概率其实都是使用Softmax函数计算得来的,而Logits实际上就是Softmax层的输入层。这里用zi来表示某一个分类i的输入,即某一类的Logits。而产生的这个类别的概率输出
Figure BDA0002808739920000031
Figure BDA0002808739920000032
其中,C为分类的总个数,i=1~C,T代表温度,用来控制从大模型进行信息蒸馏的软度。
Figure BDA0002808739920000033
对exp(zi/T)从1~C的求和。当T=1时,表示使用标准的Softmax函数进行概率分布的计算。为了简化表示方法,使用
Figure BDA0002808739920000034
来表示受温度控制的所有类别的概率分布,用p来表示T=1时所有类别的概率分布。全类蒸馏损失
Figure BDA00028087399200000314
可以表示为
Figure BDA0002808739920000036
其中,α是超参数,用来表示知识从大模型迁移到轻量化模型所占的比例。Η是交叉熵损失函数,ps为轻量化模型标准softmax函数下概率分布,
Figure BDA0002808739920000037
表示轻量化模型标定样本集下的真实标签0-1分布。
Figure BDA00028087399200000315
表示KL散度损失函数,用来衡量轻量化模型和大模型输出的概率分布的差异。
Figure BDA0002808739920000039
表示轻量化模型带温度参数T的软化softmax函数下的概率分布。
Figure BDA00028087399200000310
表示大模型带温度参数T的软化softmax函数下的概率分布。
基于Logits蒸馏训练的过程中,用户使用边缘侧的训练集,以大模型和轻量化模型组合形成的损失函数,参见公式(2),做迭代的优化训练。大模型的参数不可变,轻量化的模型参数随着训练不断更新,最终完成一定数目的迭代后,结束训练过程。
进一步地,步骤3.2具体为:在子类蒸馏中,仍然采用公式(2)的损失函数,不过,需要对用户关注的类别进行修改。设所有分类的集合U={1,2,…,C},Uattention是用户关注的分类且
Figure BDA00028087399200000311
则修改类别的输出概率
Figure BDA00028087399200000312
Figure BDA00028087399200000313
其中,i’,j’∈Uattention
Figure BDA0002808739920000041
对exp(zj′/T)在Uattention上求和。
进一步地,步骤3.2.2具体为:基于Channels的子类知识蒸馏的方法采用两阶段训练的方法,第一阶段的目的是进行特征矩阵的匹配同步。即在保证大模型不变的情况下,训练出来一个与轻量化模型的尾部特征张量维度相同特征图。第二阶段,基于维度相同的特征图进行特征蒸馏。
第一阶段:将大模型的最后一层卷积层后,添加一个嵌入卷积层来实现特征张量同步的过程。嵌入卷积层包括主要包括两层,第一层是1×1的卷积,第二层是SPP层。第一阶段的训练只是获取的1×1卷积层的参数,因此只需要用户使用自己的数据集,经过少量的epoch,就可以使得大模型的推理结果与加入嵌入卷积层后的结果保持一致。
第二阶段:在定义轻量化模型时,需要将SPP层嵌入到全连接层前的最后一层卷积层。如果卷积层之后存在池化层,则使用SPP层替换掉池化层。这样,可以保证大模型和轻量化模型SPP层后的特征向量具有相同的维度。在特征蒸馏过程中,最主要的目标就是减少相同样本输入下的,大模型的特征与轻量化模型的特征之间的迁移损失。所以,首先需要有一个差异性距离的度量方法。进行向量距离度量常用的方法有L1,L2,MMD等。在第二阶段模型训练过程中,大模型的参数在梯度计算过程中不做改变,只需要对轻量化模型的参数进行更新即可。根据数据源和用户业务场景的不同,训练集可以使用云端提供的公共数据集,也可以使用边缘侧用户的私有数据集。
进一步地,第二阶段中,综合考虑梯度下降的速度和计算的复杂度,采用L2的距离度量方式。设T,S∈Rw×h×c分别代表大模型和轻量化模型的特征表示,则特征蒸馏损失ldistill定义为
Figure BDA0002808739920000042
基于Channels的子类蒸馏损失定义为
Figure BDA0002808739920000043
其中,β是超参数。
与现有技术相比,本发明的有益效果如下:
1、首次结合边缘计算的场景,设计子类蒸馏的方法,并深入了分析了当复杂网络模型的分类能力和用户需求的分类不一致时,解决了通过知识蒸馏的方法进行压缩的问题。这为深度神经网络在边缘侧及移动终端的部署开辟了新的解决方案;
2、针对子类蒸馏,提出了基于Logits的和基于Channel的蒸馏算法。基于Channels的知识蒸馏通过添加嵌入卷积层,解决了大模型和轻量化模型进行特征迁移时,特征张量不匹配的问题;
3、允许用户根据需求进行模型定制化,并且在用户需求与大模型需求数目差别较大的情况下,训练后的轻量化模型可以显著的提升模型的推理精度。
附图说明
图1是本发明的边云协同模型压缩总体流程图;
图2是本发明的边缘侧模型压缩流程图;
图3是本发明的子类蒸馏流程图;
图4是本发明的知识蒸馏逻辑图;
图5是本发明的子类蒸馏逻辑图;
图6是本发明的基于Channel的子类蒸馏逻辑图。
具体实施方式
为了使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体的实施方法对本发明做进一步的详细说明。
本发明的核心构思之一,是充分利用云侧经过长时间、优化后的大模型的特征,采用迁移学习的思想,将大模型中有用的信息迁移到轻量化的模型中,一方面,是的大模型的能力得到了继承。另外一方面,通过短期的训练,将模型压缩到可以满足边缘和终端硬件资源的大小,同时,针对用户对某些分类或者目标检测类别的需求,进行指向性的蒸馏,最终保持甚至提升指定分类的推理精度。
本发明采用的深度神经网络模型包括且不限于用于图片识别的AlexNet、VGG、GoogleNet、RestNet和用于目标检测的SSD、YOLO、R-CNN、Fast R-CNN;模型训练过程可以采用不同的深度学习框架,包括且不限于Pytorch、TensorFlow、MXNet和PaddlePaddlel。
参照图1,示出了本发明一种基于云边协同的定制化深度神经网络模型压缩方法及系统的整个流程。详细的步骤说明如下:
步骤S11:大模型生成模块的目的是充分使用云端的硬件资源和海量的数据集,训练出一个具备多个分类或目标检测类别的大模型。大模型的训练可能需要经历非常长久的时间,比如,某些复杂大模型的训练需要TB级别的图片数据,训练时间以月为单位。当然,也可以直接从Model Zoo的仓库中直接拉取已经得到长期训练的大模型。云端模型训练模块不考虑边缘场景下的用户需求,以模型的通用性和精确度为衡量指标。
步骤S12:模型分发模块基于一些现有的技术,如Socket,Samba,NFS等,将生成的大模型、配置文件、说明文件发送到能够进行模型训练的边缘节点上。这里可以使用事件机制来实现,即云端完成大模型的准备后,触发Model_Ready事件,边缘侧的节点周期性的检测该事件是否触发,如果事件被触发,则进行数据传输的流程。
步骤S13:如图2所示,当完成大模型相关的数据接收后,边缘侧模型压缩模块开始根据边缘侧的数据集、大模型文件和用户需求的配置进行模型的压缩。本发明提供了两种模型压缩方法,可以通过配置的方式选择使用的两种方法:全类蒸馏和子类蒸馏。全类蒸馏是针对大模型中所有的分类信息进行蒸馏迁移,所以蒸馏完毕后,需要根据用户的指定分类需求,进行后处理。详细的实现逻辑图参见图4。而子类蒸馏则将与用户需求的结合提前至了模型训练阶段,详细的实现逻辑图参见图5。
步骤S131:在分类任务中,每一个分类的概率其实都是使用Softmax函数计算得来的,而Logits实际上就是Softmax层的输入层。这里用zi来表示某一个分类i的输入,即某一类的Logits。而产生的这个类别的概率输出
Figure BDA0002808739920000061
Figure BDA0002808739920000062
其中,C为分类的总个数,i=1~C,T代表温度,用来控制从大模型进行信息蒸馏的软度。
Figure BDA0002808739920000063
对exp(zi/T)从1~C的求和。当T=1时,表示使用标准的Softmax函数进行概率分布的计算。为了简化表示方法,使用
Figure BDA0002808739920000064
来表示受温度控制的所有类别的概率分布,用p来表示T=1时所有类别的概率分布。全类蒸馏损失
Figure BDA0002808739920000065
可以表示为
Figure BDA0002808739920000066
其中,α是超参数,用来表示知识从大模型迁移到轻量化模型所占的比例。Η是交叉熵损失函数,ps为轻量化模型标准softmax函数下概率分布,
Figure BDA0002808739920000067
表示轻量化模型标定样本集下的真实标签0-1分布。
Figure BDA0002808739920000068
表示KL散度损失函数,用来衡量轻量化模型和大模型输出的概率分布的差异。
Figure BDA0002808739920000069
表示轻量化模型带温度参数T的软化softmax函数下的概率分布。
Figure BDA00028087399200000610
表示大模型带温度参数T的软化softmax函数下的概率分布。公式2后半部分进行的T2因子的放大,是为了随着温度T的变化,梯度变化的值能够保持在常量级别,避免梯度爆炸的情况。
基于Logits蒸馏训练的过程参见图5。用户使用边缘侧的训练集,以大模型和轻量化模型组合形成的损失函数,参见公式(2),做迭代的优化训练。大模型的参数不可变,轻量化的模型参数随着训练不断更新,最终完成一定数目的迭代后,结束训练过程。
步骤S133:后处理阶段需要与具体的模型和任务结合。如果是模型完成的是分类任务,则对模型最后的Softmax的输出进行处理,忽略掉不关注的分类,只在关注的分类中,选取概率最大的值作为分类TOP-1的结果。如果是目标检测任务,则需要对最后的输出的张量进行处理。一般,这个处理针对不同的目标检测模型都不同实现。
步骤S132:如图3所示,在子类蒸馏中,仍然采用公式(2)的损失函数,不过,需要对用户关注的类别进行修改。设所有分类的集合U={1,2,…,C},Uattention是用户关注的分类且
Figure BDA0002808739920000071
则修改类别的输出概率
Figure BDA0002808739920000072
Figure BDA0002808739920000073
其中,i’,j’∈Uattention
Figure BDA0002808739920000074
对exp(zj′/T)在Uattention上求和。通过对概率输出的修改,结合公式(2)的损失函数,就可以让用户忽略掉不关注的分类,进而提升关注分类的准确度。
步骤S1321:基于Logits的模型蒸馏训练的过程,原理可参见步骤S132。
步骤S1322:基于Logits的子类蒸馏方法是从分类的最终概率分布角度,使得轻量化模型尽可能的与大网络的分布相似。但这种方式仍然比较粗放,因为无法从特征的角度反馈分类与分类之间的关联性。比如,某些分类之间有许多共同的特征,而某些分类之间没有任何相同的特征。这些无法单纯的从概率分布上显示出来,最终导致基于Logits的蒸馏方法效果受到限制。该步骤则是提取卷积层的特征信息,即基于Channels的子类蒸馏(也被称为特征蒸馏)。
基于Channels的子类知识蒸馏的方法采用两阶段训练的方法,第一阶段的目的是进行特征矩阵的匹配同步。即在保证大模型不变的情况下,训练出来一个与轻量化模型的尾部特征张量维度相同特征图。第二阶段,基于维度相同的特征图进行特征蒸馏。其子类蒸馏逻辑图见图6。
大模型是一个得到良好训练的大网络。前面介绍的基于Channels蒸馏的方法,都是在蒸馏过程中,通过维度变换和距离计算,使得大模型中的特征信息迁移到轻量化模型中。但这种方法在维度变换过程中,会产生特征丢失的问题。尤其在大模型与轻量化模型不同,最后一层的特征张量的维度差异性比较大的情况下,特征蒸馏的效果的会很糟糕。实际上,可以将特征张量同步的过程单独抽离出来进行。将大模型的最后一层卷积层后,添加一个嵌入卷积层来实现特征张量同步的过程。如图6,嵌入卷积层包括主要包括两层,第一层是1×1的卷积,第二层是SPP(Spartial Pyramid Pooling)层。两部分的作用如下:
1×1卷积:1×1卷积层起着降维的作用。设大模型最后一层的特征张量维度为
Figure BDA0002808739920000075
轻量化模型最后一层的特征张量的维度为
Figure BDA0002808739920000076
则该卷积层的目的就是进行Channels层的降维(如果轻量化模型的维度c1>c2,则也可以用来升维),使得特征图的Channels维度与轻量化模型保持一致。
SPP层:在经过1×1卷积层后,保证了通道数的一致。SPP层用来解决特征张量的不一致。SPP层可以将不任意大小的特征图,输出为固定长度的输出向量。其设计思路是通过金字塔式的多个池化层,替换全连接层前最后一层池化层。在本发明的设计中,SPP层放在1×1卷积层之后,使得大模型特征图的向量与轻量化模型保持一致。
需要注意的是,SPP层的加入并没有引入新的参数。所以,第一阶段的训练,只是获取的1×1卷积层的参数,因此参数量比较少。所以,只需要用户使用自己的数据集,经过少量的epoch,就可以使得大模型的推理结果与加入嵌入卷积层后的结果保持一致。
特征蒸馏:在定义轻量化模型时,需要将SPP层嵌入到全连接层前的最后一层卷积层。如果卷积层之后存在池化层,则使用SPP层替换掉池化层。这样,可以保证大模型和轻量化模型SPP层后的特征向量具有相同的维度。在特征蒸馏过程中,最主要的目标就是减少相同样本输入下的,大模型的特征与轻量化模型的特征之间的迁移损失。所以,首先需要有一个差异性距离的度量方法。进行向量距离度量常用的方法有L1,L2,MMD等。综合考虑梯度下降的速度和计算的复杂度,采用L2的距离度量方式。设T,S∈Rw×h×c分别代表大模型和轻量化模型的特征表示,则特征蒸馏损失
Figure BDA0002808739920000081
定义为
Figure BDA0002808739920000082
本发明中的基于Channels的子类蒸馏损失定义为
Figure BDA0002808739920000083
其中,β是超参数。
在第二阶段模型训练过程中,大模型的参数在梯度计算过程中不做改变,只需要对轻量化模型的参数进行更新即可。根据数据源和用户业务场景的不同,训练集可以使用云端提供的公共数据集,也可以使用边缘侧用户的私有数据集。
轻量化模型的部署可以以应用程序的方式,也可以基于容器机制。
实施例
本发明基于CIFAR-10数据集对子类蒸馏算法进行性能的评估。CIFAR-10数据集包含50K张32×32大小的训练数据和10K张测试数据,一共包括10个分类。基于CIFAR-10数据集,在VGG分类模型上进行验证,算法采用Pytorch深度学习框架实现,模型训练跑在一个具有2个NVIDIA GTX 2080Ti GPU的Ubuntu服务器上。梯度下降SGD的学习率为0.01,momentum设置为0.9,batchsize设置为128。
大模型采用标准的VGG-16。而压缩后小模型的结构,通过对标准VGG-16的每个卷积层的通道进行裁剪而得。即标准的VGG-16的13个卷积层的通道数分别为[64,64,128,128,256,256,256,512,512,512,512,512,512],经过裁剪后,通道数目为[32,32,64,64,128,128,128,256,256,256,256,256,256]
超参数设定为:公式2中的α=0.95,温度T=2。而公式5中的β=5×102。更大的β,意味着特征蒸馏对模型会产生比较大的影响。将CIFAR-10的10个分类分为2组,分别为Group-1:{plane,bird,deer,dog,horse},Group-2:{car,cat,frog,ship,truck}。这里设Group1为用户不关注的分类,而Group2为用户关注的分类。
云边协同的模型轻量化实验分为4组:
1.使用S131描述的,先全类蒸馏,后处理用户需求的方法(实验1)。
2.使用S1321的基于Logits的子类蒸馏方法(实验2)。
3.使用S1322的基于Channels的子类蒸馏的方法(实验3)。
4.直接进行轻量化模型训练的方法(实验4)。
经过epoch=100的迭代训练,最终4组实验训练出的模型精度为:
实验1:mAP-83.5%
实验2:mAP-94.4%(本发明)
实验3:mAP-95.1%(本发明)
实验4:mAP-93.1%
上述的实施例可以充分的验证本发明的有效性。

Claims (10)

1.一种基于云边协同的定制化深度神经网络模型压缩方法,其特征在于,边缘侧的用户接收云端传输的深度神经网络模型,并根据用户的定制化需求和用户的数据集,进行深度神经网络模型的训练。采用云边协同的方法。由云端提供一个普适性更强的通用神经网络模型,而边缘侧根据用户的需求,使用边缘侧的硬件资源环境对模型进行二次训练和优化,以达到模型加速的目的。采用知识蒸馏的方法,来迁移云端提供的深度神经网络模型的特征到轻量化的网络模型中。
2.如权利要求1所述基于云边协同的定制化深度神经网络模型压缩方法,其特征在于,允许用户使用两种不同的方式进行轻量化模型的训练:
a1)在模型训练的时候,轻量化模型的分类信息与云端的模型保持一致。等待完成模型训练后,再根据用户个性化的需求进行后处理。
a2)在模型训练的时候,修改轻量化模型的分类信息,修改模型优化的损失函数,知识蒸馏过程中,只迁移用户关注的特征信息,而无需后处理的过程。
3.如权利要求1所述基于云边协同的定制化深度神经网络模型压缩方法,其特征在于,所述知识蒸馏的方法,可以使用两种不同的方式实现:
b1)可以基于模型分类Logits的分布信息设计损失函数,将Logits的分布特征迁移到轻量化的网络模型中。
b2)可以基于模型的通道信息设计损失函数,将Channels的特征图迁移到轻量化的网络模型中。
4.一种基于云边协同的定制化深度神经网络模型压缩系统,其特征在于,包括:
大模型生成模块。大模型指具备多种能力,且结构比较复杂的深度神经网络模型。该模块是根据云端的具体资源状况,输出复杂且具有多种分类或识别能力的模型。
模型分发模块。模型分发模块主要用于通过云边协同,将模型传输到边缘节点上。分发的数据包括且不限于模型文件、配置文件和若干与模型相关的说明文件。模型的分发机制可以通过进程间的通信机制完成,也可以通过一些传统的文件协议如Samba,NFS等实现。
边缘侧模型压缩模块。该模块是进行边缘侧模型压缩和处理的核心模块,其输入为用户个性化的数据集、云端分发的大模型和用户关注的分类信息或者目标检测信息,输出为一个能够在边缘侧或者终端侧部署的轻量化模型。
模型部署模块。该模块完成轻量化模型的接入或部署。部署可以以应用程序的方式,也可以基于容器机制。
5.根据权利要求4所述基于云边协同的定制化深度神经网络模型压缩系统,其特征在于,所述边缘侧模型压缩模块,拥有两种实现方式,包括:
3.1、先经过全部分类蒸馏,然后对输出的轻量化模型进行处理。
3.2、直接使用子类蒸馏训练的方法。
6.根据权利要求5所述基于云边协同的定制化深度神经网络模型压缩系统,其特征在于,所述子类蒸馏训练的方法,实现方式有两种选择途径,包括:
3.2.1、训练过程中,采用基于Logits的子类蒸馏的方式。
3.2.2、训练过程中,采用基于Channels的子类蒸馏的方式。
7.根据权利要求5所述基于云边协同的定制化深度神经网络模型压缩系统,其特征在于,步骤3.1具体为:在分类任务中,每一个分类的概率其实都是使用Softmax函数计算得来的,而Logits实际上就是Softmax层的输入层。这里用zi来表示某一个分类i的输入,即某一类的Logits。而产生的这个类别的概率输出
Figure FDA0002808739910000021
Figure FDA0002808739910000022
其中,C为分类的总个数,i=1~C,T代表温度,用来控制从大模型进行信息蒸馏的软度。
Figure FDA0002808739910000023
对exp(zi/T)从1~C的求和。当T=1时,表示使用标准的Softmax函数进行概率分布的计算。为了简化表示方法,使用
Figure FDA0002808739910000024
来表示受温度控制的所有类别的概率分布,用p来表示T=1时所有类别的概率分布。全类蒸馏损失ltotal可以表示为
Figure FDA0002808739910000025
其中,α是超参数,用来表示知识从大模型迁移到轻量化模型所占的比例。Η是交叉熵损失函数,ps为轻量化模型标准softmax函数下概率分布,
Figure FDA0002808739910000026
表示轻量化模型标定样本集下的真实标签0-1分布。lKL表示KL散度损失函数,用来衡量轻量化模型和大模型输出的概率分布的差异。
Figure FDA0002808739910000027
表示轻量化模型带温度参数T的软化softmax函数下的概率分布。
Figure FDA0002808739910000028
表示大模型带温度参数T的软化softmax函数下的概率分布。
基于Logits蒸馏训练的过程中,用户使用边缘侧的训练集,以大模型和轻量化模型组合形成的损失函数,参见公式(2),做迭代的优化训练。大模型的参数不可变,轻量化的模型参数随着训练不断更新,最终完成一定数目的迭代后,结束训练过程。
8.根据权利要求7所述基于云边协同的定制化深度神经网络模型压缩系统,其特征在于,步骤3.2具体为:在子类蒸馏中,仍然采用公式(2)的损失函数,不过,需要对用户关注的类别进行修改。设所有分类的集合U={1,2,…,C},Uattention是用户关注的分类且
Figure FDA0002808739910000029
则修改类别的输出概率
Figure FDA0002808739910000031
Figure FDA0002808739910000032
其中,i’,j’∈Uattention
Figure FDA0002808739910000033
对exp(zj′/T)在Uattention上求和。
9.根据权利要求8所述基于云边协同的定制化深度神经网络模型压缩系统,其特征在于,步骤3.2.2具体为:基于Channels的子类知识蒸馏的方法采用两阶段训练的方法,第一阶段的目的是进行特征矩阵的匹配同步。即在保证大模型不变的情况下,训练出来一个与轻量化模型的尾部特征张量维度相同特征图。第二阶段,基于维度相同的特征图进行特征蒸馏。
第一阶段:将大模型的最后一层卷积层后,添加一个嵌入卷积层来实现特征张量同步的过程。嵌入卷积层包括主要包括两层,第一层是1×1的卷积,第二层是SPP层。第一阶段的训练只是获取的1×1卷积层的参数,因此只需要用户使用自己的数据集,经过少量的epoch,就可以使得大模型的推理结果与加入嵌入卷积层后的结果保持一致。
第二阶段:在定义轻量化模型时,需要将SPP层嵌入到全连接层前的最后一层卷积层。如果卷积层之后存在池化层,则使用SPP层替换掉池化层。这样,可以保证大模型和轻量化模型SPP层后的特征向量具有相同的维度。在特征蒸馏过程中,最主要的目标就是减少相同样本输入下的,大模型的特征与轻量化模型的特征之间的迁移损失。所以,首先需要有一个差异性距离的度量方法。进行向量距离度量常用的方法有L1,L2,MMD等。在第二阶段模型训练过程中,大模型的参数在梯度计算过程中不做改变,只需要对轻量化模型的参数进行更新即可。根据数据源和用户业务场景的不同,训练集可以使用云端提供的公共数据集,也可以使用边缘侧用户的私有数据集。
10.根据权利要求9所述基于云边协同的定制化深度神经网络模型压缩系统,其特征在于,第二阶段中,综合考虑梯度下降的速度和计算的复杂度,采用L2的距离度量方式。设T,S∈Rw×h×c分别代表大模型和轻量化模型的特征表示,则特征蒸馏损失ldistill定义为
Figure FDA0002808739910000034
基于Channels的子类蒸馏损失定义为
Figure FDA0002808739910000035
其中,β是超参数。
CN202011382009.5A 2020-11-30 2020-11-30 基于云边协同的定制化深度神经网络模型压缩方法及系统 Pending CN112486686A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011382009.5A CN112486686A (zh) 2020-11-30 2020-11-30 基于云边协同的定制化深度神经网络模型压缩方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011382009.5A CN112486686A (zh) 2020-11-30 2020-11-30 基于云边协同的定制化深度神经网络模型压缩方法及系统

Publications (1)

Publication Number Publication Date
CN112486686A true CN112486686A (zh) 2021-03-12

Family

ID=74938460

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011382009.5A Pending CN112486686A (zh) 2020-11-30 2020-11-30 基于云边协同的定制化深度神经网络模型压缩方法及系统

Country Status (1)

Country Link
CN (1) CN112486686A (zh)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113033653A (zh) * 2021-03-23 2021-06-25 浙江工业大学 一种边-云协同的深度神经网络模型训练方法
CN113032120A (zh) * 2021-03-26 2021-06-25 重庆大学 一种基于边缘计算的工业现场大数据任务协调度方法
CN113434108A (zh) * 2021-05-28 2021-09-24 南方科技大学 语音控制指令的生成方法、装置、计算机设备及存储介质
CN114359649A (zh) * 2021-11-22 2022-04-15 腾讯科技(深圳)有限公司 图像处理方法、装置、设备、存储介质及程序产品
CN114626550A (zh) * 2022-03-18 2022-06-14 支付宝(杭州)信息技术有限公司 分布式模型协同训练方法和系统
CN114997308A (zh) * 2022-06-01 2022-09-02 北京航空航天大学 云边协同的自适应工业数据分类方法及系统
CN115079572A (zh) * 2022-06-30 2022-09-20 福建省龙德新能源有限公司 用于六氟磷酸锂制备的能源管理控制系统及其控制方法
CN115934298A (zh) * 2023-01-12 2023-04-07 南京南瑞信息通信科技有限公司 一种前后端协作的电力监控mec卸载方法、系统及存储介质
CN116610868A (zh) * 2023-07-13 2023-08-18 支付宝(杭州)信息技术有限公司 样本标注方法、端边云协同训练方法及装置
CN117097797A (zh) * 2023-10-19 2023-11-21 浪潮电子信息产业股份有限公司 云边端协同方法、装置、系统、电子设备及可读存储介质
WO2024045243A1 (zh) * 2022-08-31 2024-03-07 福建省龙德新能源有限公司 用于六氟磷酸锂制备的自动配料系统及其配料方法

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113033653A (zh) * 2021-03-23 2021-06-25 浙江工业大学 一种边-云协同的深度神经网络模型训练方法
CN113033653B (zh) * 2021-03-23 2024-04-19 浙江工业大学 一种边-云协同的深度神经网络模型训练方法
CN113032120A (zh) * 2021-03-26 2021-06-25 重庆大学 一种基于边缘计算的工业现场大数据任务协调度方法
CN113434108A (zh) * 2021-05-28 2021-09-24 南方科技大学 语音控制指令的生成方法、装置、计算机设备及存储介质
CN114359649A (zh) * 2021-11-22 2022-04-15 腾讯科技(深圳)有限公司 图像处理方法、装置、设备、存储介质及程序产品
CN114359649B (zh) * 2021-11-22 2024-03-22 腾讯科技(深圳)有限公司 图像处理方法、装置、设备、存储介质及程序产品
CN114626550A (zh) * 2022-03-18 2022-06-14 支付宝(杭州)信息技术有限公司 分布式模型协同训练方法和系统
CN114997308A (zh) * 2022-06-01 2022-09-02 北京航空航天大学 云边协同的自适应工业数据分类方法及系统
CN115079572A (zh) * 2022-06-30 2022-09-20 福建省龙德新能源有限公司 用于六氟磷酸锂制备的能源管理控制系统及其控制方法
WO2024045243A1 (zh) * 2022-08-31 2024-03-07 福建省龙德新能源有限公司 用于六氟磷酸锂制备的自动配料系统及其配料方法
CN115934298A (zh) * 2023-01-12 2023-04-07 南京南瑞信息通信科技有限公司 一种前后端协作的电力监控mec卸载方法、系统及存储介质
CN115934298B (zh) * 2023-01-12 2024-05-31 南京南瑞信息通信科技有限公司 一种前后端协作的电力监控mec卸载方法、系统及存储介质
CN116610868B (zh) * 2023-07-13 2023-09-29 支付宝(杭州)信息技术有限公司 样本标注方法、端边云协同训练方法及装置
CN116610868A (zh) * 2023-07-13 2023-08-18 支付宝(杭州)信息技术有限公司 样本标注方法、端边云协同训练方法及装置
CN117097797A (zh) * 2023-10-19 2023-11-21 浪潮电子信息产业股份有限公司 云边端协同方法、装置、系统、电子设备及可读存储介质
CN117097797B (zh) * 2023-10-19 2024-02-09 浪潮电子信息产业股份有限公司 云边端协同方法、装置、系统、电子设备及可读存储介质

Similar Documents

Publication Publication Date Title
CN112486686A (zh) 基于云边协同的定制化深度神经网络模型压缩方法及系统
WO2021043193A1 (zh) 神经网络结构的搜索方法、图像处理方法和装置
Min et al. A gradually distilled CNN for SAR target recognition
US10762426B2 (en) Multi-iteration compression for deep neural networks
CN110909667B (zh) 面向多角度sar目标识别网络的轻量化设计方法
CN109445935B (zh) 云计算环境下一种高性能大数据分析系统自适应配置方法
US20200143250A1 (en) Method and apparatus for compressing/decompressing deep learning model
CN114943345B (zh) 基于主动学习和模型压缩的联邦学习全局模型训练方法
CN116362325A (zh) 一种基于模型压缩的电力图像识别模型轻量化应用方法
Pietron et al. Retrain or not retrain?-efficient pruning methods of deep cnn networks
CN113627070A (zh) 一种短期光伏功率预测方法
CN109948589B (zh) 基于量子深度信念网络的人脸表情识别方法
CN114358250A (zh) 数据处理方法、装置、计算机设备、介质及程序产品
US20230076290A1 (en) Rounding mechanisms for post-training quantization
CN113870863A (zh) 声纹识别方法及装置、存储介质及电子设备
Sospedra Ensembles of artificial neural networks: Analysis and development of design methods
CN113239199A (zh) 一种基于多方数据集的信用分类方法
CN110288002B (zh) 一种基于稀疏正交神经网络的图像分类方法
Calderón et al. Volcanic seismic event classification based on CNN architectures
CN116384516A (zh) 一种基于集成学习的代价敏感云边协同方法
Ullah et al. Federated learning using sparse-adaptive model selection for embedded edge computing
CN109670057A (zh) 一种渐进式的端到端深度特征量化系统及方法
US11657282B2 (en) Efficient inferencing with fast pointwise convolution
US20210312257A1 (en) Distributed neuromorphic infrastructure
Lan et al. SAR target recognition via micro convolutional neural network

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