CN111291836A - 一种生成学生网络模型的方法 - Google Patents
一种生成学生网络模型的方法 Download PDFInfo
- Publication number
- CN111291836A CN111291836A CN202010243249.0A CN202010243249A CN111291836A CN 111291836 A CN111291836 A CN 111291836A CN 202010243249 A CN202010243249 A CN 202010243249A CN 111291836 A CN111291836 A CN 111291836A
- Authority
- CN
- China
- Prior art keywords
- network model
- student
- auxiliary
- stu
- network
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/214—Generating training patterns; Bootstrap methods, e.g. bagging or boosting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/082—Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02T—CLIMATE CHANGE MITIGATION TECHNOLOGIES RELATED TO TRANSPORTATION
- Y02T10/00—Road transport of goods or passengers
- Y02T10/10—Internal combustion engine [ICE] based vehicles
- Y02T10/40—Engine management systems
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Evolutionary Computation (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Computing Systems (AREA)
- Molecular Biology (AREA)
- General Health & Medical Sciences (AREA)
- Evolutionary Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Image Analysis (AREA)
Abstract
本发明提供了一种生成学生网络模型的方法。所述方法包括下述步骤:步骤1)、获取预训练的教师网络模型;步骤2)、构建辅助网络模型;步骤3)、对所述辅助网络模型初始化,利用初始化的辅助网络模型生成学生网络;步骤4)、利用带有图像标签的训练图像对辅助网络进行训练。采用本发明的辅助网络能自动学习出学生网络的结构、神经元数目、卷积核数目。避免人工尝试,且本发明方法的自动学习结果的模型检测精度要比人工尝试方法精度更高。所需要的计算量呈指数级下降。
Description
技术领域
本发明涉及人工智能领域,具体涉及深度神经网络模型压缩。
背景技术
人工智能算法由训练和推理两阶段组成,其在计算机视觉、语音识别、自然语言处理方面取得了很大成功。边缘智能将人工智能融入边缘计算,将智能算法部署在边缘设备。作为更快更好地提供智能服务的一种服务模式,边缘智能已逐渐渗入各行各业。
然而,当前边缘智能面临着巨大挑战。将人工智能算法部署在边缘设备上面临着计算、存储、能耗资源受限的挑战:边缘设备的计算、存储能力往往远小于专用服务器。无法满足人工智能训练、推理所需。除此之外,部分边缘设备采用蓄电池等小型供电设备,无法满足计算所需的能耗。例如:NVIDIA的AI嵌入式设备Jetson TX2拥有256个CUDA核心、8G内存、7.5W能耗;而NVIDIA 1080TI GPU拥有3584个CUDA核心,11G显存,二者有很大性能差异。
对人工智能算法模型进行压缩是解决上述挑战的有效方法。压缩后的模型对设备的计算、存储、能耗资源需求降低很多,同时推理的精度不受太大影响。
目前的模型压缩方法有如下几类:直接设计小网络、剪枝量化、网络分解、知识蒸馏。其中知识蒸馏的基本思想是通过软化的Softmax目标变换学习教师网络输出的类别分布,并将大型网络模型(教师网络)的知识精炼为小型网络模型(学生模型)的知识。该方法的表现较稳定、有完备的数学理论基础、物端部署方便,是较常用的模型压缩方法。
2006年Bucilu ǎ等人首先提出利用知识迁移方法来压缩模型,他们通过集成强分类器标注的伪数据训练了一个压缩模型,并重现了原大型网络的输出结果,然而他们的工作仅限于浅层网络。近年来,知识蒸馏提出了可以将深层的网络压缩为浅层网络方法,其中的学生模型模仿了教师模型所实现的功能。
Hinton等人提出了知识蒸馏的压缩框架,通过软化教师网络输出指导学生网络,该框架将教师网络输出的软目标作为标签,训练学生网络。Romero等人提出了基于知识蒸馏的FitNet,通过训练窄且深的网络结构(学生网络),压缩宽且浅的网络(教师网络)。
虽然基于知识蒸馏的深度神经网络压缩与加速方法能使深层模型变得精巧,同时大大减少了计算开销,但是依然存在一个关键问题待解决:小型网络模型(学生网络)的设计对模型最终表现影响大,具体设计依赖人工和经验试错,影响压缩、部署效率。
逻辑学习法提出的学生网络的隐藏层一般较宽,而Fitnets法提出的学生网络深度甚至比教师网络还要深。到目前为止,还没有有效的指导方案来根据数据集和教师网络结构快速设计学生网络结构使得保证压缩效果的同时模型的表现不受到明显影响。
综上所述,本申请的发明人在进行神经网络知识蒸馏压缩研究时发现,现有技术中存在这样的缺陷:知识蒸馏压缩效果很依赖学生网络的结构设计,而学生网络的结构设计没有指导性准则,针对每个教师网络、每种训练数据都需要大量尝试后对比,这无疑增加了知识蒸馏的训练负荷和训练时间。
发明内容
发明人经过对知识蒸馏学生网络结构设计研究,终于找到了可以解决该问题的方法。本发明通过算法迭代确定学生网络保留教师网络哪些卷积通道、全连接层,在知识蒸馏的过程中直接搜索最优的学生网络结构。通过学习一个元辅助网络MetaNetwork,为不同的学生网络结构生成权重,极大程度加速最优学生网络结构的搜索过程。省时省力,同时可以轻松设计学生网络shortcut中的通道。
本发明的目的是解决使用知识蒸馏方法进行模型压缩的时候学生网络的结构设计缺少指导性原则,需要大量人工实验后才能选取最佳网络结构的问题,提出了一种通过学习一个元辅助网络MetaNetwork,为不同的学生网络结构生成权重的方法。
根据本发明的一个方面,提供了生成学生网络模型的方法,其特征在于,所述方法包括下述步骤:
步骤1)、获取预训练的教师网络模型;
步骤2)、构建辅助网络模型,设定所述辅助网络模型的输入为表征其各层网络结构的嵌入向量,所述辅助网络模型的输出为表征学生网络模型结构的参数,所述辅助网络模型的各层分别与所述学生网络模型中的待训练层对应;
步骤3)、对所述辅助网络模型初始化,利用初始化的辅助网络模型生成学生网络模型;
步骤4)、将带有图像标签的训练图像分别输入到所述学生网络模型和所述教师网络模型,基于所述学生网络模型的检测结果以及图像标签计算标签损失,基于学生网络模型的检测结果和教师网络模型的检测结果计算逻辑层损失,并将相应损失返回到所述辅助网络模型中,对所述辅助网络模型的结构进行迭代调整,直至收敛;
步骤5)、根据得到的所述辅助网络模型生成所述学生网络模型。
在一种优选实现方式中,所述步骤2)包括生成元输入和查找表,所述元输入包括若干个独热编码向量,所述查找表将每个独热编码向量与一种表示网络层结构的嵌入向量表示相对应。
在另一种优选实现方式中,所述辅助网络模型初始化包括随机生成若干所述独热编码向量,将各个独热编码向量所对应的表示网络结构的嵌入向量表示输入至所述辅助网络模型中的相应层。
在另一种优选实现方式中,对所述辅助网络模型的结构进行迭代调整包括对辅助网络模型各层的权重参数以及嵌入向量的权重参数进行调整。
在另一种优选实现方式中,步骤4)中所计算的损失包括学生网络模型输出与教师网络模型输出交叉熵Lossstu_tea以及学生网络模型输出与原始标签交叉熵Lossstu_label。
在另一种优选实现方式中,所述方法包括:
训练过程中,将每个迭代批次的图像特征输入教师网络模型,所输入的图像数据经过预训练后的教师网络模型生成预测结果ytea;
ytea=TeaNet(ImgFea,tea_weights)
将每个迭代批次的图像特征输入学生网络模型,生成预测结果ystu,
ystu=StuNet(InputImages,stu_weights);
根据下式计算学生网络模型输出的损失Loss:
Loss=α Lossstu_tea+β Lossstu_label
=L(ystu,ytea)+β(ystu,Label)
其中,β为调和因子,函数L公式如下:
在另一种优选实现方式中,所述方法包括:根据损失函数,利用反向传播方法分别利用下述公式对所述辅助网络模型以及嵌入向量的权重参数进行优化直至收敛,其中η为学习率,公式如下:
在一种优选实现方式中,所述方法包括,随机生成不同的嵌入向量分别输入至所述辅助网络模型,生成不同的学生网络模型,使用演化算法利用验证数据集挑选最优的学生网络模型。
根据本发明的另一方面,提供了一种计算机可读存储介质,其上存储有计算机程序,其中,该程序被处理器执行时实现上述的方法。
根据本发明的另一方面,提供了一种计算机设备,包括存储器和处理器,在所述存储器上存储有能够在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现上述方法。
技术效果
采用本发明方法所生成的学生网络比随机搜索方法精度高。并且可以大幅度减少计算量,不需要大量人工实验就可以获得最佳网络结构。现有技术方法中在设计网络时,所需的计算量是指数级的,而本发明方法所需的计算量则远远低于现有方法,是多项式级的。
在ImageNet2012数据集中,用MobileNet V1作为最大学生网络,本发明方法所设计网络的精度可以提升2%-6%。而计算量方面,可以从现有技术的最多需要23945种网络结构尝试,降低到最多需要356种尝试,就可以达到接近教师网络模型精度的理想学生模型表现。
附图说明
以下附图仅对本发明作示意性的说明和解释,并不用于限定本发明的范围,其中:
图1为本发明进行网络自动化设计时所采用的网络结构示意图。
图2为本发明实施例中所采用的Lenet-5网络结构示意图。
图3为本发明实施例中所采用的网络自动化设计的网络结构示意图。
具体实施方式
为了使本发明的目的、技术方案、设计方法及优点更加清楚明了,以下结合附图通过具体实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
下面结合图1具体说明进行网络自动化设计的具体过程。
步骤1)首先获取预训练的教师网络模型并设定学生网络最大模型结构。
这里所提到的获取包括自行构建并训练教师网络模型,也包括直接从外部调取已经训练好的网络模型作为教师网络模型。教师网络模型是指在知识蒸馏模型压缩方法中,参数量、计算量、准确率较高的网络,但是,由于其过于复杂不能直接部署在资源有限的设备中。该教师网络模型经过大量训练,可以实现相当高的检测精度,比如高于预定目标值。
教师网络模型是相对于学生网络模型而言的,学生网络模型是要学习到的神经网络,也是通过本发明的方法所要获得的学习结果。该网络为通过知识蒸馏压缩方法最终生成的网络,参数量、计算量相比教师网络模型都大大降低,但是准确率比教师网络模型相差不大,能直接部署在资源有限的设备中。也就是说,本发明中所提到的教师网络模型是指网络结构更完整、训练更充分进而各方面参数以及分类准确率更高的复杂网络,相比之下学生网络模型则为精简的网络。
步骤2)构建辅助网络模型。
辅助网络模型是本发明方法的核心,辅助网络模型是用于实现学生网络权重预测机制来自动化设计学生网络模型结构的主体部分。
除了辅助网络模型之外,还为辅助网络模型增设输入生成模块以为辅助网络模型提供输入。所构建的辅助网络模型的层数取决于所要得到的学生网络模型需要自动化生成层的层数,学生网络模型中有部分层可能不需要通过学习获得,辅助网络模型的层数等于需要学习的学生网络模型的层数。
本实施例中的输入生成模块包括元输入(MetaInput)以及查找表,如图1所示。辅助网络模型可以采用循环神经网络(RNN)、长短期记忆网络(LSTM)或其他类似网络,其输出为学生网络模型的权重。采用循环神经网络(RNN)或长短期记忆网络(LSTM)是因为该两种网络考虑了数据传递中的序列信息。
元输入包括若干个独热编码向量,每个向量的每一位的数值都是0或1。每个独热编码向量代表学生网络某一层的一种网络结构。
查找表(LookupTable)是一个M*N形状的二维矩阵,用于存储M种网络层结构的嵌入向量表示,每种层结构都对应一个长度为N的嵌入向量表示,用于表征该层的结构,M、N为正整数。每一个独热编码向量可以在查找表中找到一种对应的嵌入向量表示,每一种嵌入向量表示对应某层的一种网络结构,即,通过查找表将独热编码向量与各层网络结构一一对应起来。
设定辅助网络模型的输入为表示学生网络模型各个层的网络结构的独热编码向量组合,该编码向量组合在每一轮训练进行随机初始化,但是,实际上由于经过查找表的转化,输入到辅助网络模型的为经查找表查找后的嵌入向量。模型训练开始后,嵌入向量会被加入到训练中去,作为权重参数参与逐步优化。给辅助网络模型的每一层输入一个嵌入向量表示,则辅助网络模型每层的结构即可以生成。设定辅助网络模型的输出为学生网络模型的卷积核、全连接层权重数值,用矩阵的方式表示。辅助网络模型的输入独热编码是随机生成的,辅助网络的输出是由输入的嵌入向量和RNN单元的权重进行计算后得出的,这些都是本领域技术人员可以通过代码实现的,这里不再详述。评估候选学生网络模型在验证集上的精度,即可搜索表现良好的结构。
图1所示实施例中,辅助网络模型采用循环神经网络(RNN)对学生网络模型的卷积核、全连接层进行生成。
步骤3)将辅助网络模型进行初始化设置并生成相应学生网络模型;
根据本发明的一个实施例,该步骤包括:
步骤3.1)在第一个循环时,需要初始化查找表,在后续循环中则复用其上一循环参与训练调整后的查找表,每一循环对参与循环的嵌入向量进行调整,更新查找表。最初,嵌入向量的获取是通过随机初始化独热向量编码,并将初始化生成的独热向量编码输入至查找表,查找对应的嵌入向量表示实现的。把每一个独热向量编码所对应的嵌入向量输入到辅助网络模型中的相应层。由于每一个嵌入向量表示都对应一种网络结构,则辅助网络模型主体,即图中的循环神经网络中的每个网络单元都接收到了相应的网络结构设置信息,利用该网络结构设置信息,对网络单元进行设置。本领域技术人员可以理解,还可以采用其他方式对辅助网络模型进行初始化设置。
步骤3.2)由辅助网络模型输出当前设置下学生网络模型的相关参数,以生成相应学生网络模型。
当辅助网络模型接收到输入的嵌入向量后按照循环神经网络自身的规则进行运算,形成其网络结构和网络权重,其输出为学生网络模型的卷积核、全连接层权重数值,将该卷积核、全连接层结构、权重数值带入至学生网络模型,则形成当前的学生网络模型;
步骤4)对辅助网络模型进行训练。
由于辅助网络模型是用于生成学生网络模型的,所以辅助网络模型的训练结果体现在其所生成的学生网络模型的质量上,即,学生网络模型的检测精度。
训练的具体过程如下:
首先,将带有标签的图像分别输入至学生网络模型和教师网络模型;
利用损失函数,基于学生网络模型的检测结果以及图像标签计算标签损失,基于学生网络模型的检测结果和教师网络模型的检测结果计算逻辑层损失,用标签损失和逻辑层损失来更新辅助网络模型权重参数(包括RNN单元中的权重参数以及嵌入向量的权重参数),对辅助网络模型进行调整。优选地,用标签损失和逻辑层损失对辅助网络权重参数的梯度来更新辅助网络模型权重参数。
辅助网络模型的损失函数为多目标损失函数,考虑两部分损失,二者通过加权求和的方式汇总成一个总体的损失函数,使得学生网络模型不光学习原始教师网络模型的输出,也学习输入数据的标签。二者由调和因子β做加权调和,这使得两部分损失都在同一数量级上,β为超参数,由使用者根据业务情况定义。
因此,所计算的损失包括学生网络模型输出与教师网络模型输出交叉熵Lossstu_tea以及学生网络模型输出与原始标签交叉熵Lossstu_label。
采用这种方式是因为:光训练数据的标签会损失大量的检测信息,举例而言,某三分类检测过程中,某图像的标签为(0,1,0),即其属于第二分类。而实际上教师网络模型在对该图像进行检测时的检测结果很可能是(0.19,0.8,0.01),虽然该图片在教师网络模型的检测结果也是属于第二分类,但是这其中包含了更多的相似性信息,正常的训练方式却无法获得该信息,而本发明则充分利用该信息降低了训练难度。
下面以Lenet-5为教师网络模型作为示例,详细介绍进行学生网络模型自动化设计的更具体过程。
Lenet-5网络结构如附图2所示,输入数据(图像)所经过的结构依次为:卷积层一、降采样层一、卷积层二、降采样层二、全连接层。卷积层一由6个5*5卷积核组成(5*5*6个参数),卷积层二由6个2*2卷积核组成(2*2*6个参数),全连接层由84个神经元组成(84个参数)。
(1)首先,构建教师网络模型,设定教师网络模型(TeaNet)结构并对其进行预训练,若要生成的学生网络模型与现有的预训练网络相匹配,也可以采用现有教师网络模型。如图3所示,所设置教师网络模型的结构为完整的五层神经网络Lenet-5。教师网络模型训练完毕后固定教师网络权重,记为tea_weights,在接下来步骤中不训练教师网络权重。
设定最大学生网络模型(StuNet)结构。本示例中,设置学生网络模型最大模型结构和教师网络模型相同,均为Lenet-5。这使得最终生成的学生网络模型参数量、计算量最大不超过教师网络模型的参数量、计算量。
(2)设定辅助网络模型(MetaNet)结构:由于待生成的学生网络模型权重为三层(卷积层一、卷积层二、全连接层),故设置辅助网络模型为三层RNN网络,结构为:RNN1、RNN2、RNN3,三个RNN单元输出分别是学生网络模型的卷积层一的层结构和权重参数、卷积层二的层结构和权重参数、全连接层的层结构和权重参数。降采样层一、降采样层二均不包含训练参数,故与辅助网络模型无直接关系。
(3)对辅助网络模型进行初始化设置。
(3.1)在初始情况下,首先需要对各个网络的输入进行初始化。
(3.1.1)初始化独热编码向量。
辅助网络模型的初始输入为独热编码向量,其为k个表征学生网络模型层结构的独热编码向量的组合,k为学生网络模型的层数。独热编码向量仅有1位为1,比如,其第i个数字为1,该层所在下标就为indexi,表示第i层取第indexi种层结构。每一种独热编码向量都对应一种待搜索的层/卷积核候选结构。最终的学生网络模型结构、权重由k个待搜索的层/卷积核堆叠而成。Lenet-5有三层需要辅助网络模型生成,故k=3。每个编码向量都在一个公共的查找表中查找到对应的N维嵌入向量。以Lenet-5的卷积层一为例,其有1-6种卷积核结构,所以独热编码向量维度为6,每个维度对应一种卷积核结构。当卷积核数目为1时,独热编码为[1,0,0,0,0,0],查找表返回的是对应的第一行向量;卷积核数目为2时,独热编码为[0,1,0,0,0,0],查找表返回的是对应的第二行向量,以此类推。
embi=LookupTable(MetaInputi)
emb=[emb1,emb2,...,embk]
(3.1.2)初始化查找表(LookupTable)权重,查找表为M*N的二维矩阵。以本示例网络中的卷积层一为例,该层最多能有6个尺寸为5*5的卷积核。所以共有6种卷积核结构(1个、2个、3个、4个、5个、6个),在卷积层一中M指的是总卷积核数目,卷积层一的M=6。N是一个超参数,由使用者根据具体实验表现调节。
随机初始化维度为M*N的二维查找表,该查找表中的权重是可以由梯度下降方法参与训练的。
(3.1.3)引入隐向量h0,首先初始化隐向量h0,隐向量长度为N,和查找表的纵向维度一致,采用随机初始化。该隐向量用于传递RNN单元的序列信息,第i个RNN单元需要输入第i-1层输出的隐向量,相当于给第i个RNN单元输入了之前i-1层的序列信息。由于第1个RNN单元前面没有RNN单元,则第一个RNN单元的输入隐向量h0是随机初始化得到的。
(3.2)将独热编码向量输入辅助网络模型
本示例中,将k个层/卷积核对应的独热编码向量在查找表中查找到的k个嵌入向量,输入到辅助网络模型(RNN/LSTM)中,每个编码向量对应一个RNN/LSTM单元,RNN/LSTM单元数为k。对于Lenet-5卷积层一,第一个RNN单元对第一个嵌入向量emb1、初始隐向量h0进行时序处理,输出stu_weights1作为学生网络模型卷积层一的卷积核权重。输出隐向量h1参与卷积层二的构建。对于Lenet-5卷积层二,第二个RNN单元对第二个嵌入向量emb2、第一个RNN单元输出的隐向量h1进行时序处理,输出stu_weights2作为学生网络模型卷积层一的卷积核权重,依此类推。
其中,时序处理具体公式如下所示
stu_weightsi=si[:indexi]
stu_weights=[stu_weights1,stu_weights2,...,stu_weightsk]
(4)对辅助网络模型进行训练
将带有标签的图像分别输入至教师网络模型和学生网络模型。
具体而言,将训练过程中每个迭代批次的图像特征(ImgFea)输入教师网络模型,所输入的图像数据经过预训练后的教师网络模型生成预测结果ytea。
ytea=TeaNet(ImgFea,tea_weights)
同时,将训练过程中每个迭代批次的图像特征(ImgFea)输入学生网络模型,所输入的图像数据经过辅助网络生成的学生网络模型产生的卷积层、全连接层权重stu_weights后生成预测结果ystu。
ystu=StuNet(InputImages,stu_weights)
分别计算学生网络模型全连接输出与教师网络模型输出交叉熵Lossstu_tea以及学生网络模型输出与原始标签交叉熵Lossstu_label,然后,根据下式计算Loss,其中β为调和因子。
Loss=αLossstu_tea+βLossstu_label
=L(ystu,ytea)+βL(ystu,Label)
其中函数L公式如下:
最后,根据损失函数,利用反向传播方法进行梯度下降对辅助网络模型的参数进行优化直至参数收敛,公式如下:
其中,η为学习率,φ为模型权重,各RNN单元的权重以及嵌入向量的权重均按该公式进行调整,对RNN单元和嵌入向量进行更新。每一批次图像进行一次参数调整,对于下一批次图像重新初始化独热编码,按照上述方式进行一轮迭代。这样,就可以获得训练好的辅助网络模型。
当辅助网络模型训练好之后,随机生成不同的独热编码,即随机生成不同的嵌入向量输入至辅助网络,使用演化算法来挑选较优的学生网络结构独热编码。将该编码输入辅助网络,生成出最优的学生网络结构和模型权重。
在一种实现方式中,随机产生M个代表网络结构的独热编码组合。将该M个独热编码组合(因为每个独热编码对应一层网络,多个组合构成多层网络)依次输入辅助网络,生成M个学生网络结构和权重,同时将验证集数据分别输入所生成的M个学生网络,获得这些独热编码组合的学生网络验证集预测结果。接下来和验证集原始标签对比,获得M个学生网络验证集精度。然后使用交叉和变异方法产生新的独热编码组合。取出前N个精度最高准确率的独热编码组合进行变异操作,变异即为随机改变独热编码组合中的元素比例。交叉是随机重组两个双亲的独热编码组合的来产生新的独热编码组合。反复迭代该段过程,最终选取精度最优的学生网络结构独热编码组合既可。
为了验证本发明方法的效果,发明人在ImageNet2012数据集中,用MobileNet V1作为学生网络模型,进行了测试,与随机搜索方法进行比较,测试结果如下:
在精度方面:当压缩25%卷积核时本发明方法比随机搜索方法精度高2%以上;当压缩50%卷积核时本发明方法比随机搜索方法精度高4%以上;当压缩75%卷积核时本发明方法比随机搜索方法精度6%以上。这也说明本发明方法随着压缩比的增加,表现越好。具体实验结果如下表所示:
表1
在时间方面:假设有学生网络模型有N个卷积核,则有2n种网络结构,最差需要尝试2n次,采用本发明方法,在多项式次尝试中即可寻得最优结构。MobileNet V1一共有3945个卷积核,则有23945种网络结构需要尝试,现有技术中也无法一一进行尝试。本方法中,在356种尝试后即达到了接近教师网络模型精度的理想模型表现。
以上可以看出,采用本发明的辅助网络模型能自动学习出学生网络模型的结构、神经元数目、卷积核数目。避免人工尝试,且本发明方法的自动学习结果的模型检测精度要比人工尝试方法精度更高。但是所需要的计算量呈指数级下降。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
Claims (10)
1.一种生成学生网络模型的方法,其特征在于,所述方法包括下述步骤:
步骤1)、获取预训练的教师网络模型;
步骤2)、构建辅助网络模型,设定所述辅助网络模型的输入为表征其各层网络结构的嵌入向量,所述辅助网络模型的输出为表征学生网络模型结构的参数,所述辅助网络模型的各层分别与所述学生网络模型中的待训练层对应;
步骤3)、对所述辅助网络模型初始化,利用初始化的辅助网络模型生成学生网络模型;
步骤4)、将带有图像标签的训练图像分别输入到所述学生网络模型和所述教师网络模型,基于所述学生网络模型的检测结果以及图像标签计算标签损失,基于学生网络模型的检测结果和教师网络模型的检测结果计算逻辑层损失,并将相应损失返回到所述辅助网络模型中,对所述辅助网络模型的结构进行迭代调整,直至收敛;
步骤5)、根据得到的所述辅助网络模型生成所述学生网络模型。
2.根据权利要求1所述的方法,其特征在于,所述步骤2)包括生成元输入和查找表,所述元输入包括若干个独热编码向量,所述查找表将每个独热编码向量与一种表示网络层结构的嵌入向量表示相对应。
3.根据权利要求2所述的方法,其特征在于,所述辅助网络模型初始化包括随机生成若干所述独热编码向量,将各个独热编码向量所对应的表示网络结构的嵌入向量表示输入至所述辅助网络模型中的相应层。
4.根据权利要求1所述的方法,其特征在于,对所述辅助网络模型的结构进行迭代调整包括对辅助网络模型各层的权重参数以及嵌入向量的权重参数进行调整。
5.根据权利要求1所述的方法,其特征在于,步骤4)中所计算的损失包括学生网络模型输出与教师网络模型输出交叉熵Lossstu_tea以及学生网络模型输出与原始标签交叉熵Lossstu_label。
8.根据权利要求1-7中任意一项的方法,其特征在于,所述方法包括,随机生成不同的嵌入向量分别输入至所述辅助网络模型,生成不同的学生网络模型,使用演化算法利用验证数据集挑选最优的学生网络模型。
9.一种计算机可读存储介质,其上存储有计算机程序,其中,该程序被处理器执行时实现根据权利要求1至8中任一项所述的方法。
10.一种计算机设备,包括存储器和处理器,在所述存储器上存储有能够在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1至8中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010243249.0A CN111291836B (zh) | 2020-03-31 | 2020-03-31 | 一种生成学生网络模型的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010243249.0A CN111291836B (zh) | 2020-03-31 | 2020-03-31 | 一种生成学生网络模型的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111291836A true CN111291836A (zh) | 2020-06-16 |
CN111291836B CN111291836B (zh) | 2023-09-08 |
Family
ID=71020716
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010243249.0A Active CN111291836B (zh) | 2020-03-31 | 2020-03-31 | 一种生成学生网络模型的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111291836B (zh) |
Cited By (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111783980A (zh) * | 2020-06-28 | 2020-10-16 | 大连理工大学 | 基于双重协作生成式对抗网络的排序学习方法 |
CN112200722A (zh) * | 2020-10-16 | 2021-01-08 | 鹏城实验室 | 图像超分辨重构模型的生成方法、重构方法及电子设备 |
CN112348167A (zh) * | 2020-10-20 | 2021-02-09 | 华东交通大学 | 一种基于知识蒸馏的矿石分选方法和计算机可读存储介质 |
CN112529153A (zh) * | 2020-12-03 | 2021-03-19 | 平安科技(深圳)有限公司 | 基于卷积神经网络的bert模型的微调方法及装置 |
CN112560693A (zh) * | 2020-12-17 | 2021-03-26 | 华中科技大学 | 基于深度学习目标检测的高速公路异物识别方法和系统 |
CN112766463A (zh) * | 2021-01-25 | 2021-05-07 | 上海有个机器人有限公司 | 基于知识蒸馏技术优化神经网络模型的方法 |
CN112990296A (zh) * | 2021-03-10 | 2021-06-18 | 中科人工智能创新技术研究院(青岛)有限公司 | 基于正交相似度蒸馏的图文匹配模型压缩与加速方法及系统 |
CN113065564A (zh) * | 2021-04-25 | 2021-07-02 | 合肥中科类脑智能技术有限公司 | 一种嵌入式端的表计主刻度线实时分割方法及系统 |
CN113095079A (zh) * | 2021-06-03 | 2021-07-09 | 苏州大学 | 基于bert的自适应分层输出的中文分词方法 |
CN113421243A (zh) * | 2021-06-23 | 2021-09-21 | 深圳大学 | 一种基于知识蒸馏网络检测眼底图像类型的方法及装置 |
CN114549901A (zh) * | 2022-02-24 | 2022-05-27 | 杭州电子科技大学 | 一种多网络联合辅助生成式知识蒸馏方法 |
CN115082800A (zh) * | 2022-07-21 | 2022-09-20 | 阿里巴巴达摩院(杭州)科技有限公司 | 图像分割方法 |
CN115359062A (zh) * | 2022-10-24 | 2022-11-18 | 浙江华是科技股份有限公司 | 通过半监督实例分割标定监控目标的方法及系统 |
CN115511059A (zh) * | 2022-10-12 | 2022-12-23 | 北华航天工业学院 | 一种基于卷积神经网络通道解耦的网络轻量化方法 |
CN115578614A (zh) * | 2022-10-21 | 2023-01-06 | 北京百度网讯科技有限公司 | 图像处理模型的训练方法、图像处理方法和装置 |
JP2023515901A (ja) * | 2020-12-17 | 2023-04-14 | 之江実験室 | マルチレベル知識蒸留に基づく事前訓練言語モデルの自動圧縮方法およびプラットフォーム |
JP2023519770A (ja) * | 2020-12-15 | 2023-05-12 | 之江実験室 | マルチタスク向けの予めトレーニング言語モデルの自動圧縮方法及びプラットフォーム |
CN116311102A (zh) * | 2023-03-30 | 2023-06-23 | 哈尔滨市科佳通用机电股份有限公司 | 基于改进的知识蒸馏的铁路货车故障检测方法及系统 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180268292A1 (en) * | 2017-03-17 | 2018-09-20 | Nec Laboratories America, Inc. | Learning efficient object detection models with knowledge distillation |
US20180307894A1 (en) * | 2017-04-21 | 2018-10-25 | General Electric Company | Neural network systems |
US20180336465A1 (en) * | 2017-05-18 | 2018-11-22 | Samsung Electronics Co., Ltd. | Apparatus and method for student-teacher transfer learning network using knowledge bridge |
WO2018227800A1 (zh) * | 2017-06-15 | 2018-12-20 | 北京图森未来科技有限公司 | 一种神经网络训练方法及装置 |
WO2019143946A1 (en) * | 2018-01-19 | 2019-07-25 | Visa International Service Association | System, method, and computer program product for compressing neural network models |
CN110059740A (zh) * | 2019-04-12 | 2019-07-26 | 杭州电子科技大学 | 一种针对嵌入式移动端的深度学习语义分割模型压缩方法 |
CN110379506A (zh) * | 2019-06-14 | 2019-10-25 | 杭州电子科技大学 | 针对心电图数据使用二值化神经网络的心律不齐检测方法 |
US20200034702A1 (en) * | 2018-07-27 | 2020-01-30 | International Business Machines Corporation | Training of student neural network with switched teacher neural networks |
-
2020
- 2020-03-31 CN CN202010243249.0A patent/CN111291836B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180268292A1 (en) * | 2017-03-17 | 2018-09-20 | Nec Laboratories America, Inc. | Learning efficient object detection models with knowledge distillation |
US20180307894A1 (en) * | 2017-04-21 | 2018-10-25 | General Electric Company | Neural network systems |
US20180336465A1 (en) * | 2017-05-18 | 2018-11-22 | Samsung Electronics Co., Ltd. | Apparatus and method for student-teacher transfer learning network using knowledge bridge |
WO2018227800A1 (zh) * | 2017-06-15 | 2018-12-20 | 北京图森未来科技有限公司 | 一种神经网络训练方法及装置 |
WO2019143946A1 (en) * | 2018-01-19 | 2019-07-25 | Visa International Service Association | System, method, and computer program product for compressing neural network models |
US20200034702A1 (en) * | 2018-07-27 | 2020-01-30 | International Business Machines Corporation | Training of student neural network with switched teacher neural networks |
CN110059740A (zh) * | 2019-04-12 | 2019-07-26 | 杭州电子科技大学 | 一种针对嵌入式移动端的深度学习语义分割模型压缩方法 |
CN110379506A (zh) * | 2019-06-14 | 2019-10-25 | 杭州电子科技大学 | 针对心电图数据使用二值化神经网络的心律不齐检测方法 |
Non-Patent Citations (4)
Title |
---|
J. L. XU等: "The Practice and the Reflection of Network Assistance Teaching based on the Platform of Blackboard", 《IJET》, vol. 9, no. 8, pages 42 - 44 * |
李文杰: "基于一卡通的学生行为活动预测", 《中国优秀硕士学位论文全文数据库 基础科学辑》, no. 2020, pages 002 - 993 * |
程肯: "深度学习的轻量化算法研究", 《中国优秀硕士学位论文全文数据库 信息科技辑》, no. 2019, pages 138 - 599 * |
韩笑: "知识图谱分布式表示研究", 《中国博士学位论文全文数据库 信息科技辑》, no. 2019, pages 140 - 23 * |
Cited By (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111783980A (zh) * | 2020-06-28 | 2020-10-16 | 大连理工大学 | 基于双重协作生成式对抗网络的排序学习方法 |
CN112200722A (zh) * | 2020-10-16 | 2021-01-08 | 鹏城实验室 | 图像超分辨重构模型的生成方法、重构方法及电子设备 |
CN112348167A (zh) * | 2020-10-20 | 2021-02-09 | 华东交通大学 | 一种基于知识蒸馏的矿石分选方法和计算机可读存储介质 |
CN112348167B (zh) * | 2020-10-20 | 2022-10-11 | 华东交通大学 | 一种基于知识蒸馏的矿石分选方法和计算机可读存储介质 |
CN112529153A (zh) * | 2020-12-03 | 2021-03-19 | 平安科技(深圳)有限公司 | 基于卷积神经网络的bert模型的微调方法及装置 |
WO2022116441A1 (zh) * | 2020-12-03 | 2022-06-09 | 平安科技(深圳)有限公司 | 基于卷积神经网络的bert模型的微调方法及装置 |
CN112529153B (zh) * | 2020-12-03 | 2023-12-22 | 平安科技(深圳)有限公司 | 基于卷积神经网络的bert模型的微调方法及装置 |
JP7381814B2 (ja) | 2020-12-15 | 2023-11-16 | 之江実験室 | マルチタスク向けの予めトレーニング言語モデルの自動圧縮方法及びプラットフォーム |
JP2023519770A (ja) * | 2020-12-15 | 2023-05-12 | 之江実験室 | マルチタスク向けの予めトレーニング言語モデルの自動圧縮方法及びプラットフォーム |
JP2023515901A (ja) * | 2020-12-17 | 2023-04-14 | 之江実験室 | マルチレベル知識蒸留に基づく事前訓練言語モデルの自動圧縮方法およびプラットフォーム |
JP7283835B2 (ja) | 2020-12-17 | 2023-05-30 | 之江実験室 | マルチレベル知識蒸留に基づく事前訓練言語モデルの自動圧縮方法およびプラットフォーム |
CN112560693B (zh) * | 2020-12-17 | 2022-06-17 | 华中科技大学 | 基于深度学习目标检测的高速公路异物识别方法和系统 |
CN112560693A (zh) * | 2020-12-17 | 2021-03-26 | 华中科技大学 | 基于深度学习目标检测的高速公路异物识别方法和系统 |
CN112766463A (zh) * | 2021-01-25 | 2021-05-07 | 上海有个机器人有限公司 | 基于知识蒸馏技术优化神经网络模型的方法 |
CN112990296A (zh) * | 2021-03-10 | 2021-06-18 | 中科人工智能创新技术研究院(青岛)有限公司 | 基于正交相似度蒸馏的图文匹配模型压缩与加速方法及系统 |
CN113065564A (zh) * | 2021-04-25 | 2021-07-02 | 合肥中科类脑智能技术有限公司 | 一种嵌入式端的表计主刻度线实时分割方法及系统 |
CN113095079A (zh) * | 2021-06-03 | 2021-07-09 | 苏州大学 | 基于bert的自适应分层输出的中文分词方法 |
CN113421243A (zh) * | 2021-06-23 | 2021-09-21 | 深圳大学 | 一种基于知识蒸馏网络检测眼底图像类型的方法及装置 |
CN114549901A (zh) * | 2022-02-24 | 2022-05-27 | 杭州电子科技大学 | 一种多网络联合辅助生成式知识蒸馏方法 |
CN114549901B (zh) * | 2022-02-24 | 2024-05-14 | 杭州电子科技大学 | 一种多网络联合辅助生成式知识蒸馏方法 |
CN115082800A (zh) * | 2022-07-21 | 2022-09-20 | 阿里巴巴达摩院(杭州)科技有限公司 | 图像分割方法 |
CN115511059A (zh) * | 2022-10-12 | 2022-12-23 | 北华航天工业学院 | 一种基于卷积神经网络通道解耦的网络轻量化方法 |
CN115511059B (zh) * | 2022-10-12 | 2024-02-09 | 北华航天工业学院 | 一种基于卷积神经网络通道解耦的网络轻量化方法 |
CN115578614A (zh) * | 2022-10-21 | 2023-01-06 | 北京百度网讯科技有限公司 | 图像处理模型的训练方法、图像处理方法和装置 |
CN115578614B (zh) * | 2022-10-21 | 2024-03-12 | 北京百度网讯科技有限公司 | 图像处理模型的训练方法、图像处理方法和装置 |
CN115359062A (zh) * | 2022-10-24 | 2022-11-18 | 浙江华是科技股份有限公司 | 通过半监督实例分割标定监控目标的方法及系统 |
CN116311102A (zh) * | 2023-03-30 | 2023-06-23 | 哈尔滨市科佳通用机电股份有限公司 | 基于改进的知识蒸馏的铁路货车故障检测方法及系统 |
CN116311102B (zh) * | 2023-03-30 | 2023-12-15 | 哈尔滨市科佳通用机电股份有限公司 | 基于改进的知识蒸馏的铁路货车故障检测方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN111291836B (zh) | 2023-09-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111291836A (zh) | 一种生成学生网络模型的方法 | |
CN109241313B (zh) | 一种基于高阶深度哈希学习的图像检索方法 | |
CN107239825A (zh) | 考虑负载均衡的深度神经网络压缩方法 | |
CN112000772B (zh) | 面向智能问答基于语义特征立方体的句子对语义匹配方法 | |
CN110413785A (zh) | 一种基于bert和特征融合的文本自动分类方法 | |
CN112241455B (zh) | 基于多层级知识蒸馏预训练语言模型自动压缩方法及平台 | |
CN107729999A (zh) | 考虑矩阵相关性的深度神经网络压缩方法 | |
CN106650922A (zh) | 硬件神经网络转换方法、计算装置、编译方法和神经网络软硬件协作系统 | |
CN110222163A (zh) | 一种融合cnn与双向lstm的智能问答方法及系统 | |
CN112465120A (zh) | 一种基于进化方法的快速注意力神经网络架构搜索方法 | |
JP7283835B2 (ja) | マルチレベル知識蒸留に基づく事前訓練言語モデルの自動圧縮方法およびプラットフォーム | |
CN111400494B (zh) | 一种基于GCN-Attention的情感分析方法 | |
CN111723914A (zh) | 一种基于卷积核预测的神经网络架构搜索方法 | |
CN112347756B (zh) | 一种基于序列化证据抽取的推理阅读理解方法及系统 | |
CN112527993B (zh) | 一种跨媒体层次化深度视频问答推理框架 | |
CN113673535B (zh) | 一种多模态特征融合网络的图像描述生成方法 | |
CN110362683A (zh) | 一种基于递归神经网络的信息隐写方法、装置及存储介质 | |
CN111274375A (zh) | 一种基于双向gru网络的多轮对话方法及系统 | |
CN114692310A (zh) | 一种基于Dueling DQN的虚实融合一二级分离模型参数优化方法 | |
CN115375877A (zh) | 一种基于通道注意力机制的三维点云分类方法及装置 | |
Zhao et al. | Genetic optimization of radial basis probabilistic neural networks | |
CN117009674A (zh) | 融合数据增强和对比学习的云原生api推荐方法 | |
CN114880527B (zh) | 一种基于多预测任务的多模态知识图谱表示方法 | |
Goel et al. | CompactNet: High accuracy deep neural network optimized for on-chip implementation | |
Ding et al. | Simplified space based neural architecture search |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |