(12)发明专利申请
(10)申请公布号 CN 111950638 A(43)申请公布日 2020.11.17
(21)申请号 202010817719.X(22)申请日 2020.08.14
(71)申请人 厦门美图之家科技有限公司
地址 361000 福建省厦门市火炬高新区软
件园华讯楼C区B1F-0(72)发明人 陈宝林 黄炜
(74)专利代理机构 北京超凡宏宇专利代理事务
所(特殊普通合伙) 11463
代理人 张磊(51)Int.Cl.
G06K 9/62(2006.01)G06N 3/04(2006.01)G06N 3/08(2006.01)
权利要求书2页 说明书9页 附图2页
(54)发明名称
基于模型蒸馏的图像分类方法、装置和电子设备
(57)摘要
本申请实施例提供了一种基于模型蒸馏的图像分类方法、装置和电子设备,涉及图像处理技术领域。该方法首先获取待处理图像。接着将待处理图像输入学生模型中进行分类,得到分类后的分类结果,其中,学生模型是利用预先训练的教师模型及预设的损失函数对预先构建的学生网络进行训练得到。如此,将复杂的教师模型提炼成低复杂度、精度损失较小的学生模型,并且仅需将复杂度更小的学生模型应用到移动端即可,减少了移动端存储模型所需要的空间,减小了计算量,从而在保证处理结果的准确性的前提下,提高了图像处理在移动端的实现速率。
CN 111950638 ACN 111950638 A
权 利 要 求 书
1/2页
1.一种基于模型蒸馏的图像分类方法,其特征在于,所述方法包括:获取待处理图像;
将所述待处理图像输入学生模型中进行分类,得到分类后的分类结果,其中,所述学生模型是利用预先训练的教师模型及预设的损失函数对预先构建的学生网络进行训练得到。
2.根据权利要求1所述的基于模型蒸馏的图像分类方法,其特征在于,所述学生模型通过以下步骤训练得到:
获取原始图像和所述原始图像对应的标签,其中,所述标签通过对所述原始图像进行预先设定得到;
将所述原始图像作为训练样本,输入预先训练好的教师模型和预先构建好的学生网络中,得到所述教师模型输出的第一输出结果和所述学生网络输出的第二输出结果;
依据所述第一输出结果、所述第二输出结果及所述标签计算所述损失函数的损失值;依据所述损失值,采用反向传播算法迭代更新所述学生网络的参数,直至迭代更新次数达到预设阈值,得到训练后的所述学生模型。
3.根据权利要求2所述的基于模型蒸馏的图像分类方法,其特征在于,所述第一输出结果包括第一中间层输出结果及第一最终层输出结果,所述第二输出结果包括第二中间层输出结果及第二最终层输出结果,所述损失函数包括第一局部损失函数、第二局部损失函数及全局损失函数;
所述依据所述第一输出结果、所述第二输出结果及所述标签计算所述损失函数的损失值的步骤包括:
依据所述第一中间层输出结果及所述标签,计算所述第一局部损失函数的第一输出值;
依据所述第二中间层输出结果及所述标签,计算所述第二局部损失函数的第二输出值;
依据所述第一最终层输出结果及所述第二最终层输出结果,计算所述全局损失函数的第三输出值;
计算所述第一输出值、所述第二输出值及所述第三输出值的和,得到所述损失值。4.根据权利要求2所述的基于模型蒸馏的图像分类方法,其特征在于,所述依据所述第一输出结果、所述第二输出结果及所述标签计算所述损失函数的损失值的步骤包括:
依据所述标签对所述第一输出结果进行修正,得到修正后的第一输出结果;依据所述修正后的第一输出结果、所述第二输出结果及所述标签计算所述损失函数的损失值。
5.根据权利要求3所述的基于模型蒸馏的图像分类方法,其特征在于,所述依据所述第一中间层输出结果及所述标签,计算所述第一局部损失函数的第一输出值的步骤包括:
获取预先构建的负样本集及预先构建的全零标签,其中,所述负样本集包括多个负样本;
获取所有所述负样本的权重,得到权重矩阵,其中,所述权重矩阵为根据所述标签对所有负样本的权重进行初始化后得到,或者,所述权重矩阵为根据所述损失值,采用反向传播算法对所有负样本的权重进行迭代更新后得到;
将所述第一中间层输出结果输入全连接层,利用所述全连接层对所述第一中间层输出
2
CN 111950638 A
权 利 要 求 书
2/2页
结果进行特征提取,并计算特征提取后的第一中间层输出结果的L2范数,得到第一特征向量;
计算所述第一特征向量与所述权重矩阵的乘积,得到第一初步结果;计算所述第一初步结果与所述全零标签的交叉熵损失函数,得到所述第一局部损失函数的第一输出值。
6.根据权利要求3所述的基于模型蒸馏的图像分类方法,其特征在于,所述依据所述第二中间层输出结果及所述标签,计算所述第二局部损失函数的第二输出值的步骤包括:
获取预先构建的负样本集及预先构建的全零标签,其中,所述负样本集包括多个负样本;
获取所有所述负样本的权重,得到权重矩阵,其中,所述权重矩阵为根据所述标签对所有负样本的权重进行初始化后得到,或者,所述权重矩阵为根据所述损失值,采用反向传播算法对所有负样本的权重进行迭代更新后得到;
将所述第二中间层输出结果输入全连接层,利用所述全连接层对所述第二中间层输出结果进行特征提取,并计算特征提取后的第二中间层输出结果的L2范数,得到第二特征向量;
计算所述第二特征向量与所述权重矩阵的乘积,得到第二初步结果;计算所述第二初步结果与所述全零标签的交叉熵损失函数,得到所述第二局部损失函数的第二输出值。
7.根据权利要求3所述的基于模型蒸馏的图像分类方法,其特征在于,所述依据所述第一最终层输出结果及所述第二最终层输出结果,计算所述全局损失函数的第三输出值的步骤包括:
依据所述第一最终层输出结果及所述第二最终层输出结果,按照以下公式计算所述全局损失函数的第三输出值:
其中,ai为第i个所述第二最终层输出结果,yi为第i个所述第一最终层输出结果,m为所述第二最终层输出结果或所述第一最终层输出结果的个数。
8.一种基于模型蒸馏的图像分类装置,其特征在于,所述装置包括:获取模块,用于获取待处理图像;分类模块,用于将所述待处理图像输入学生模型中进行分类,得到分类后的分类结果,其中,所述学生模型是利用预先训练的教师模型及预设的损失函数对预先构建的学生网络进行训练得到。
9.一种电子设备,其特征在于,所述电子设备包括处理器、存储器及总线,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器及所述存储器之间通过总线通信,所述处理器执行所述机器可读指令,以执行权利要求1-7任意一项所述的基于模型蒸馏的图像分类方法的步骤。
10.一种可读存储介质,其特征在于,所述可读存储介质中存储有计算机程序,所述计算机程序被执行时实现权利要求1-7任意一项所述的基于模型蒸馏的图像分类方法。
3
CN 111950638 A
说 明 书
基于模型蒸馏的图像分类方法、装置和电子设备
1/9页
技术领域
[0001]本申请涉及图像处理技术领域,具体而言,涉及一种基于模型蒸馏的图像分类方法、装置和电子设备。背景技术
[0002]目前,常常基于深度神经网络对图像进行处理,例如,对图像进行分类、分割等,但是由于常用的深度神经网络模型结构复杂,训练过程往往复杂耗时,且需要的存储空间较大且计算复杂,在移动端上使用时,处理过程迟缓。[0003]如何在保证处理结果的准确性的前提下,提高图像处理在移动终端的实现速率是值得研究的问题。
发明内容
[0004]本申请提供了一种基于模型蒸馏的图像分类方法、装置和电子设备,以解决上述问题。
[0005]本申请的实施例可以这样实现:[0006]第一方面,本申请实施例提供一种基于模型蒸馏的图像分类方法,所述方法包括:[0007]获取待处理图像;
[0008]将所述待处理图像输入学生模型中进行分类,得到分类后的分类结果,其中,所述学生模型是利用预先训练的教师模型及预设的损失函数对预先构建的学生网络进行训练得到。
[0009]在可选的实施方式中,所述学生模型通过以下步骤训练得到:[0010]获取原始图像和所述原始图像对应的标签,其中,所述标签通过对所述原始图像进行预先设定得到;
[0011]将所述原始图像作为训练样本,输入预先训练好的教师模型和预先构建好的学生网络中,得到所述教师模型输出的第一输出结果和所述学生网络输出的第二输出结果;[0012]依据所述第一输出结果、所述第二输出结果及所述标签计算所述损失函数的损失值;
[0013]依据所述损失值,采用反向传播算法迭代更新所述学生网络的参数,直至迭代更新次数达到预设阈值,得到训练后的所述学生模型。[0014]在可选的实施方式中,所述第一输出结果包括第一中间层输出结果及第一最终层输出结果,所述第二输出结果包括第二中间层输出结果及第二最终层输出结果,所述损失函数包括第一局部损失函数、第二局部损失函数及全局损失函数;[0015]所述依据所述第一输出结果、所述第二输出结果及所述标签计算所述损失函数的损失值的步骤包括:
[0016]依据所述第一中间层输出结果及所述标签,计算所述第一局部损失函数的第一输出值;
4
CN 111950638 A[0017]
说 明 书
2/9页
依据所述第二中间层输出结果及所述标签,计算所述第二局部损失函数的第二输
出值;
依据所述第一最终层输出结果及所述第二最终层输出结果,计算所述全局损失函
数的第三输出值;
[0019]计算所述第一输出值、所述第二输出值及所述第三输出值的和,得到所述损失值。[0020]在可选的实施方式中,所述依据所述第一输出结果、所述第二输出结果及所述标签计算所述损失函数的损失值的步骤包括:
[0021]依据所述标签对所述第一输出结果进行修正,得到修正后的第一输出结果;[0022]依据所述修正后的第一输出结果、所述第二输出结果及所述标签计算所述损失函数的损失值。
[0023]在可选的实施方式中,所述依据所述第一中间层输出结果及所述标签,计算所述第一局部损失函数的第一输出值的步骤包括:
[0024]获取预先构建的负样本集及预先构建的全零标签,其中,所述负样本集包括多个负样本;
[0025]获取所有所述负样本的权重,得到权重矩阵,其中,所述权重矩阵为根据所述标签对所有负样本的权重进行初始化后得到,或者,所述权重矩阵为根据所述损失值,采用反向传播算法对所有负样本的权重进行迭代更新后得到;[0026]将所述第一中间层输出结果输入全连接层,利用所述全连接层对所述第一中间层输出结果进行特征提取,并计算特征提取后的第一中间层输出结果的L2范数,得到第一特征向量;
[0027]计算所述第一特征向量与所述权重矩阵的乘积,得到第一初步结果;[0028]计算所述第一初步结果与所述全零标签的交叉熵损失函数,得到所述第一局部损失函数的第一输出值。
[0029]在可选的实施方式中,所述依据所述第二中间层输出结果及所述标签,计算所述第二局部损失函数的第二输出值的步骤包括:
[0030]获取预先构建的负样本集及预先构建的全零标签,其中,所述负样本集包括多个负样本;
[0031]获取所有所述负样本的权重,得到权重矩阵,其中,所述权重矩阵为根据所述标签对所有负样本的权重进行初始化后得到,或者,所述权重矩阵为根据所述损失值,采用反向传播算法对所有负样本的权重进行迭代更新后得到;[0032]将所述第二中间层输出结果输入全连接层,利用所述全连接层对所述第二中间层输出结果进行特征提取,并计算特征提取后的第二中间层输出结果的L2范数,得到第二特征向量;
[0033]计算所述第二特征向量与所述权重矩阵的乘积,得到第二初步结果;[0034]计算所述第二初步结果与所述全零标签的交叉熵损失函数,得到所述第二局部损失函数的第二输出值。
[0035]在可选的实施方式中,所述依据所述第一最终层输出结果及所述第二最终层输出结果,计算所述全局损失函数的第三输出值的步骤包括:
[0036]依据所述第一最终层输出结果及所述第二最终层输出结果,按照以下公式计算所
5
[0018]
CN 111950638 A
说 明 书
3/9页
述全局损失函数的第三输出值:
[0037]
其中,ai为第i个所述第二最终层输出结果,yi为第i个所述第一最终层输出结果,m
为所述第二最终层输出结果或所述第一最终层输出结果的个数。[0039]第二方面,本申请实施例提供一种基于模型蒸馏的图像分类装置,所述装置包括:[0040]获取模块,用于获取待处理图像;[0041]分类模块,用于将所述待处理图像输入学生模型中进行分类,得到分类后的分类结果,其中,所述学生模型是利用预先训练的教师模型及预设的损失函数对预先构建的学生网络进行训练得到。[0042]第三方面,本申请实施例提供一种电子设备,所述电子设备包括处理器、存储器及总线,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器及所述存储器之间通过总线通信,所述处理器执行所述机器可读指令,以执行前述实施方式任意一项所述的基于模型蒸馏的图像分类方法的步骤。[0043]第四方面,本申请实施例提供一种可读存储介质,所述可读存储介质中存储有计算机程序,所述计算机程序被执行时实现前述实施方式任意一项所述的基于模型蒸馏的图像分类方法。
[0044]本申请实施例提供了一种基于模型蒸馏的图像分类方法、装置和电子设备。该方法首先获取待处理图像。接着将待处理图像输入学生模型中进行分类,得到分类后的分类结果,其中,学生模型是利用预先训练的教师模型及预设的损失函数对预先构建的学生网络进行训练得到。如此,将复杂的教师模型提炼成低复杂度、精度损失较小的学生模型,并且仅需将复杂度更小的学生模型应用到移动端即可,减少了移动端存储模型所需要的空间,减小了计算量,从而在保证处理结果的准确性的前提下,提高了图像处理在移动端的实现速率。
附图说明
[0045]为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
[0046]图1为本申请实施例提供的电子设备的结构框图。
[0047]图2为本申请实施例提供的基于模型蒸馏的图像分类方法的流程图。[0048]图3为本申请实施例提供的学生模型的训练方法流程图。
[0049]图4为本申请实施例提供的基于模型蒸馏的图像分类装置的功能模块框图。[0050]图标:100-电子设备;110-存储器;120-处理器;130-基于模型蒸馏的图像分类装置;131-获取模块;132-分类模块;140-通信单元。
[0038]
6
CN 111950638 A
说 明 书
4/9页
具体实施方式
[0051]为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。[0052]因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0053]应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。[0054]此外,若出现术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
[0055]需要说明的是,在不冲突的情况下,本申请的实施例中的特征可以相互结合。[0056]如背景技术所介绍,目前,常常基于深度神经网络对图像进行处理,例如,对图像进行分类、分割等,但是由于常用的深度神经网络模型结构复杂,训练过程往往复杂耗时,且需要的存储空间较大且计算复杂,在移动终端上使用时,处理过程迟缓。[0057]如何在保证处理结果的准确性的前提下,提高图像处理在移动终端的实现速率是值得研究的问题。[0058]有鉴于此,本申请实施例提供了一种基于模型蒸馏的图像分类方法、装置和电子设备,该方法通过采用预先训练好的复杂模型(称为教师模型)的输出作为监督信号去训练另一个简单的网络。将复杂模型提炼成低复杂度、精度损失较小的深度网络小模型(称为学生模型),以最大程度的减小模型复杂度,减少模型存储需要的空间,加速模型的训练过程和应用过程。下面对上述方案进行详细阐述。[0059]请参阅图1,图1为本申请实施例提供的一种电子设备100的结构框图。设备可以包括处理器120、存储器110、基于模型蒸馏的图像分类装置130及通信单元140,存储器110存储有处理器120可执行的机器可读指令,当电子设备100运行时,处理器120及存储器110之间通过总线通信,处理器120执行机器可读指令,并执行基于模型蒸馏的图像分类方法的步骤。
[0060]存储器110、处理器120以及通信单元140各元件相互之间直接或间接地电性连接,以实现信号的传输或交互。[0061]例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。基于模型蒸馏的图像分类装置130包括至少一个可以软件或固件(firmware)的形式存储于存储器110中的软件功能模块。处理器120用于执行存储器110中存储的可执行模块,例如基于模型蒸馏的图像分类装置130所包括的软件功能模块或计算机程序。[0062]其中,存储器110可以是,但不限于,随机读取存储器(Random ACCess memory,RAM),只读存储器(Read Only Memory,ROM),可编程只读存储器(Programmable Read-Only Memory,PROM),可擦除只读存储器(Erasable Programmable Read-Only Memory,EPROM),电可擦除只读存储器(Electric Erasable Programmable Read-Only Memory,EEPROM)等。
7
CN 111950638 A[0063]
说 明 书
5/9页
处理器120可以是一种集成电路芯片,具有信号处理能力。上述处理器120可以是
通用处理器,包括处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等。
[00]还可以是数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。[0065]本申请实施例中,存储器110用于存储程序,处理器120用于在接收到执行指令后,执行程序。本申请实施例任一实施方式所揭示的流程定义的方法可以应用于处理器120中,或者由处理器120实现。
[0066]通信单元140用于通过网络建立电子设备100与其他电子设备之间的通信连接,并用于通过网络收发数据。[0067]在一些实施例中,网络可以是任何类型的有线或者无线网络,或者是他们的结合。仅作为示例,网络可以包括有线网络、无线网络、光纤网络、远程通信网络、内联网、因特网、局域网(Local Area Network,LAN)、广域网(Wide Area Network,WAN)、无线局域网(Wireless Local Area Networks,WLAN)、城域网(Metropolitan Area Network,MAN)、广域网(Wide Area Network,WAN)、公共电话交换网(Public Switched Telephone Network,PSTN)、蓝牙网络、ZigBEE网络、或近场通信(Near Field Communication,NFC)网络等,或其任意组合。
[0068]在本申请实施例中,电子设备100可以是但不限于智能手机、个人电脑、平板电脑等具有处理功能的设备。[0069]可以理解,图1所示的结构仅为示意。电子设备100还可以具有比图1所示更多或者更少的组件,或者具有与图1所示不同的配置。图1所示的各组件可以采用硬件、软件或其组合实现。
[0070]基于上述电子设备100的实现架构,本申请实施例提供了一种基于模型蒸馏的图像分类方法,请结合参阅2,图2为本申请实施例提供的基于模型蒸馏的图像分类方法的流程图。下面结合图2所示的具体流程进行详细描述。[0071]步骤S1,获取待处理图像。[0072]步骤S2,将待处理图像输入学生模型中进行分类,得到分类后的分类结果,其中,学生模型是利用预先训练的教师模型及预设的损失函数对预先构建的学生网络进行训练得到。
[0073]其中,待处理图像可以由当前电子设备100预先存储在存储器110中,当需要时从存储器110中获取即可,待处理图像也可以由当前电子设备100实时拍摄得到。[0074]图像分类的目标是根据输入图片且根据预定义类别分配标签,因此,训练时,可以人工对每张原始图像进行标注,分配标签,例如,一张包含“狗”的图像,其标签可以是狗:95%,猫:4%,熊猫:1%。[0075]当训练完成后,作为一种可能的实施场景,将一张待分类图片输入该训练好的学生模型中,则学生模型可为该待分类图片分配一个标签,例如,狗。如此,完成图像的分类。[0076]需要说明的是,上述方案也可应用于其他实施场景,例如,应用于图像分割、图像
8
CN 111950638 A
说 明 书
6/9页
美白等等。在其他实施场景中,将待处理图像输入学生模型中进行图像分割或图像美白等,即可得到图像分割或图像美白后的结果图像。[0077]可以理解的是,上述学生模型可以是其他电子设备中预先训练得到,之后迁移至当前电子设备100的,也可以是在当前电子设备100中预先训练,并存储得到的。[0078]请结合参阅图3,作为一种可能的实施方式,学生模型可以通过以下步骤训练得到:
[0079]步骤S100,获取原始图像和原始图像对应的标签,其中,标签通过对原始图像进行预先设定得到。
[0080]步骤S200,将原始图像作为训练样本,输入预先训练好的教师模型和预先构建好的学生网络中,得到教师模型输出的第一输出结果和学生网络输出的第二输出结果。[0081]步骤S300,依据第一输出结果、第二输出结果及标签计算损失函数的损失值。[0082]步骤S400,依据损失值,采用反向传播算法迭代更新学生网络的参数,直至迭代更新次数达到预设阈值,得到训练后的学生模型。[0083]其中,原始图像可以是CiFar100数据集、MNIST数据集或MPEG数据集等其他数据集。可选地,本申请实施例以CiFar100数据集为训练样本,对学生模型进行训练。[0084]进一步地,上述教师模型为通过上述任意一种或多种数据集预先训练好的模型,该教师模型可以是ResNet50,即具有50层深度的残差网络。该教师模型也可以是MobileNetV3_L,该MobileNetV3_L为标准的MobileNetV3的大模型。该教师模型还可以是MobileNetV2+,该MobileNetV2+网络结构将标准的MobileNetV2的宽度系数乘上1.5所得到的。
[0085]作为一种可选的实施方式,当教师模型为ResNet50时,对应的学生网络可以是resnet14x4。该resnet14x4学生网络是本申请实施例针对深度残差网络(Deep residual network,ResNet)结构进行改造使其适应于CiFar100的分类数据集,网络的输入维度为32x32,其中resnet14x4表示具有14层深度的残差网络,且网络中三组基本块的输入通道数分别为,128,256。
[0086]当教师模型为MobileNetV3_L时,对应的学生网络可以是MobileNetV3_S。[0087]当教师模型为MobileNetV2+时,对应的学生网络可以是resnet14x4。[0088]作为另一种可选的实施方式,当教师模型为ResNet50时,对应的学生网络还可以是MobileNetV2+。[00]如此,将训练好的结构复杂、计算量大但是性能优秀的教师模型,对结构相对简单、计算量较小的学生网络进行指导,以提升学生网络的性能。
[0090]现有的蒸馏方案大多通过拟合教师模型和学生网络的中间层输出或最后几层输出的相似程度来提升学生网络的精度,学生网络的精度效果很大程度上取决于使用者对其的压缩程度以及与教师模型的网络结构的相似性,高压缩的学生网络与教师模型还是存在较大精度损失,如何确保训练好的学生模型精度良好的同时,压缩学生模型对应网络的大小、减少学生模型前向推理的时延。[0091]因此,在上述基础上,本申请实施例重新构建了损失函数,以确保训练好的学生模型精度良好的同时,压缩学生模型对应网络的大小、减少学生模型前向推理的时延。[0092]作为一种可选的实施方式,第一输出结果包括第一中间层输出结果及第一最终层
9
CN 111950638 A
说 明 书
7/9页
输出结果,第二输出结果包括第二中间层输出结果及第二最终层输出结果,损失函数包括第一局部损失函数、第二局部损失函数及全局损失函数。[0093]在上述实施方式的基础上,可通过以下步骤实现步骤S300,以计算损失函数的损失值:依据第一中间层输出结果及标签,计算第一局部损失函数的第一输出值。依据第二中间层输出结果及标签,计算第二局部损失函数的第二输出值。依据第一最终层输出结果及第二最终层输出结果,计算全局损失函数的第三输出值。计算第一输出值、第二输出值及第三输出值的和,得到损失值。[0094]应当理解,在其它实施例中,本申请实施例实现步骤S300中的部分步骤的顺序可以根据实际需要相互交换。例如,可以先计算第一输出值、再计算第二输出值、接着再计算第三输出值。还可以先计算第二输出值、再计算第三输出值、接着再计算第一输出值。还可以同时计算第一输出值、第二输出值及第三输出值。[0095]可选地,上述第一中间层可以是教师模型包括的倒数第二层特征层,即第一最终层的前一层特征层。上述第二中间层可以是学生网络包括的倒数第二层特征层,即第二最终层的前一层特征层。[0096]如此,可通过教师模型与学生模型中的不同层输出的结果共同计算损失值,帮助学生模型更好地学习到教师模型中的参数,以提高训练好的学生模型的精度。[0097]由于教师模型输出的结果可能与训练样本的真实的标签不对应,可能导致学生模型学到错的数据,因此,作为另一种可选的实施方式,在计算损失函数的损失值,实现步骤S300时,还可以先对第一输出结果和第二输出结果进行修正,使得学生模型学到正确的数据,进一步提高学生模型的精度。[0098]例如,依据标签对第一输出结果进行修正,得到修正后的第一输出结果。依据修正后的第一输出结果、第二输出结果及标签计算损失函数的损失值。[0099]作为一种可能的实施方式,可通过以下方式对第一输出结果和第二输出结果进行修正:获取第一输出结果中第一最终层输出结果包括的至少一个输出结果,按照大小对至少一个输出结果进行排序。比较第一最终层输出结果中的最大值对应的标签与标签是否一致,若不一致,则将第一最终层输出结果中的次大值对应的标签与最大值对应的标签互换,将次大值对应的标签作为第一最终层输出结果。若一致,则不做更改。[0100]例如,第一最终层输出结果包括:猫:50%,狗:49%,熊猫1%。同时,若训练样本对应的真实的标签为狗,由于最大值对应的标签与真实标签不一致,此时将次大值对应的标签:“狗”代替最大值对应的标签。即,最后的第一最终层输出结果为“狗:49%”,而非“猫:50%”。
[0101]如此,当教师模型输出的标签与真实的标签不一致时,则对教师模型输出的第一最终层输出结果进行修正,使得训练得到的学生模型的准确性更高。[0102]需要说明的是,若对教师模型输出的第一最终层输出结果进行了修正,则利用修正后的第一输出结果、第二输出结果及标签计算损失函数的损失值。其原理及计算过程与利用不进行修正的得到的第一输出结果、第二输出结果及标签计算损失函数的损失值的原理及计算过程一致,在此不做赘述。[0103]进一步地,作为一种可选的实施方式,可通过以下步骤依据第一中间层输出结果及标签,计算第一局部损失函数的第一输出值:
10
CN 111950638 A[0104]
说 明 书
8/9页
获取预先构建的负样本集及预先构建的全零标签,其中,负样本集包括多个负样
本。获取所有负样本的权重,得到权重矩阵,其中,权重矩阵为根据标签对所有负样本的权重进行初始化后得到,或者,权重矩阵为根据损失值,采用反向传播算法对所有负样本的权重进行迭代更新后得到。
[0105]将第一中间层输出结果输入全连接层,利用全连接层对第一中间层输出结果进行特征提取,并计算特征提取后的第一中间层输出结果的L2范数,得到第一特征向量。[0106]计算第一特征向量与权重矩阵的乘积,得到第一初步结果。计算第一初步结果与全零标签的交叉熵损失函数,得到第一局部损失函数的第一输出值。[0107]其中,当分类数为多类时,可以转为二分类的情况,即把除自身以外的所有类别当成负样本。预先构建的负样本集中含有所有类别的大量负样本,假设原始图像所属的数据集有D张图片、N个类别,则负样本集为DxN’的均匀分布矩阵,其中N’可以取大于或等于N的值。
[0108]同样以原始图像所属的数据集有D张图片、N个类别为例,可选地,可采用Xavier初始化方法,利用标签对所有负样本的权重进行初始化,得到的DxN’的随机初始化均匀分布矩阵即为上述权重矩阵。全零标签可以是:建筑:0,车:0,树木:0。可根据N’的数量确定全零标签的个数,并根据N’的类别确定全零标签包括的类别,在此不做限定。[0109]如此,通过上述步骤计算第一局部损失函数的第一输出值,可在使用反向传播算法更新学生模型的参数时,指导权重矩阵的更新,以起到指导学生模型的作用,使得学生模型尽可能的区分不同类别。[0110]进一步地,作为一种可选的实施方式,依据第二中间层输出结果及标签,计算第二局部损失函数的第二输出值的步骤包括:
[0111]获取预先构建的负样本集及预先构建的全零标签,其中,负样本集包括多个负样本。获取所有负样本的权重,得到权重矩阵,其中,权重矩阵为根据标签对所有负样本的权重进行初始化后得到,或者,权重矩阵为根据损失值,采用反向传播算法对所有负样本的权重进行迭代更新后得到。
[0112]将第二中间层输出结果输入全连接层,利用全连接层对第二中间层输出结果进行特征提取,并计算特征提取后的第二中间层输出结果的L2范数,得到第二特征向量。[0113]计算第二特征向量与权重矩阵的乘积,得到第二初步结果。计算第二初步结果与全零标签的交叉熵损失函数,得到第二局部损失函数的第二输出值。[0114]上述依据第二中间层输出结果及标签,计算第二局部损失函数的第二输出值的原理及过程与计算第一局部损失函数的第一输出值的原理及过程相同,在此不做赘述。[0115]同样地,通过上述步骤计算第二局部损失函数的第二输出值,可在使用反向传播算法更新学生模型的参数时,指导权重矩阵的更新,以起到指导学生模型的作用,使得学生模型尽可能的区分不同类别。
[0116]作为一种可选的实施方式,可按照以下步骤依据第一最终层输出结果及第二最终层输出结果,按照以下公式计算全局损失函数的第三输出值:
[0117]
11
CN 111950638 A[0118]
说 明 书
9/9页
其中,ai为第i个第二最终层输出结果,yi为第i个第一最终层输出结果,m为第二最
终层输出结果或第一最终层输出结果的个数。[0119]如此,通过上述全局损失函数,可让学生模型的输出结果与教师模型的输出结果尽量的接近,以提高学生模型的准确性。同时,通过上述三种损失函数共同监督训练学生网络,使得高压缩的学生模型与教师模型的网络结构的相似性更高,从而在确保学生模型精度的同时,进一步压缩学生模型的大小并减少训练时前向推理的时延。[0120]基于同一发明构思,请结合参阅图4,本申请实施例中还提供了与上述基于模型蒸馏的图像分类方法对应的基于模型蒸馏的图像分类装置130,装置包括:[0121]获取模块131,用于获取待处理图像。[0122]分类模块132,用于将待处理图像输入学生模型中进行分类,得到分类后的分类结果,其中,学生模型是利用预先训练的教师模型及预设的损失函数对预先构建的学生网络进行训练得到。
[0123]由于本申请实施例中的装置解决问题的原理与本申请实施例上述基于模型蒸馏的图像分类方法相似,因此装置的实施原理可以参见方法的实施原理,重复之处不再赘述。[0124]本申请实施例也提供了一种可读存储介质,可读存储介质中存储有计算机程序,计算机程序被执行时实现上述的基于模型蒸馏的图像分类方法。[0125]综上所述,本申请实施例提供了一种基于模型蒸馏的图像分类方法、装置、电子设备和可读存储介质。该方法首先获取待处理图像。接着将待处理图像输入学生模型中进行分类,得到分类后的分类结果,其中,学生模型是利用预先训练的教师模型及预设的损失函数对预先构建的学生网络进行训练得到。如此,将复杂的教师模型提炼成低复杂度、精度损失较小的学生模型,以减小模型的复杂度,减少了模型存储需要的空间,同时加速了模型的训练过程,从而在保证处理结果的准确性的前提下,提高了图像处理在移动端的实现速率。同时,本申请还通过重新构建损失函数,确保训练好的学生模型精度良好的同时,压缩学生模型对应网络的大小、减少学生模型前向推理的时延。[0126]以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
12
CN 111950638 A
说 明 书 附 图
1/2页
图1
图2
13
CN 111950638 A
说 明 书 附 图
2/2页
图3
图4
14
因篇幅问题不能全部显示,请点此查看更多更全内容