一种基于解耦蒸馏损失的自蒸馏实现方法技术

技术编号:35188301 阅读:19 留言:0更新日期:2022-10-12 18:02
本发明专利技术公开了一种基于解耦蒸馏损失的自蒸馏实现方法,该方法包括:首先下载CIFAR数据集,并对其进行划分和增广;然后在残差网络网络结构的基础上,使用四个阶段特征分别作为学生网络和教师网络,构造出新的蒸馏框架;将划分后的数据集送入神经网络进行训练,直至网络收敛,获得权重文件;最后利用训练好的神经网络和权重文件来检测测试图像,并输出分类结果。本发明专利技术很好地解决了目前蒸馏框架中教师网络预训练耗时和小模型精度不达标的问题,提高了蒸馏下模型的准确率。了蒸馏下模型的准确率。了蒸馏下模型的准确率。

【技术实现步骤摘要】
一种基于解耦蒸馏损失的自蒸馏实现方法


[0001]本专利技术涉及一种基于解耦蒸馏损失的自蒸馏实现方法,属于计算机视觉


技术介绍

[0002]近深度学习取得了巨大进步,但是受限于庞大的计算量和参数量很难实际应用与资源受限设备上。为了使深度模型更加高效,人们探索知识蒸馏这个领域。2006年,Bucilua等人最先提出将大模型的知识迁移到小模型的想法。2015年,Hinton才正式提出广为人知的知识蒸馏的概念。知识蒸馏的主要的想法是:学生模型通过模仿教师模型来获得和教师模型相当的精度,关键问题是如何将教师模型的知识迁移到学生模型。
[0003]传统知识蒸馏可以分为基于响应的知识蒸馏和基于特征的知识蒸馏。基于反应的知识通常指教师模型最后一个输出层的神经反应。其主要思想是直接模拟教师模型的最终预测。基于反应的知识蒸馏是一种简单而有效的模型压缩方法,在不同的任务和应用中得到了广泛的应用。
[0004]基于特征的知识蒸馏来自于中间层,是基于响应的知识的一个很好的扩展,利用中间层的特征图可以作为监督学生模型训练的知识。最直接的想法是匹配中间特征的激活函数值,特别地,Zagoruyko和Komodakis(2017)提出用attention map来表示知识;为了匹配教师和学生之间的语义信息,Chen et al.(2021)提出cross

layer KD,通过注意力定位自适应地为每个学生网络中的层分配教师网络中的层。但是,上述两种经典方法有两个缺点包括:第一个缺点是知识转移效率低,这意味着学生模型几乎没有利用教师模型中的所有知识。一个杰出的学生模型其表现优于其教师模式,仍然是罕见的;另一个缺点是如何设计和培训合适的教师模式。现有的蒸馏框架需要大量的努力和实验才能找到最佳的教师模型架构,这需要相对较长的时间,例如传统蒸馏方法在CIFAR100上对教师网络ResNet152训练需要14.67小时,第二步对学生网络ResNet50训练需要12.31小时。

技术实现思路

[0005]本专利技术目的在于针对上述现有技术的不足,提出了一种基于解耦蒸馏损失的自蒸馏实现方法,该方法很好地解决了目前蒸馏框架预训练教师网络耗时长、教师网络学生网络规模差异大导致学生精度差的问题。
[0006]本专利技术解决其技术问题所采取的技术方案是:一种基于解耦蒸馏损失的自蒸馏实现方法,该方法包括以下步骤:
[0007]步骤1:数据集获取过程;
[0008]使用CIFAR10和CIFAR100数据集,并根据五比一的比例划分训练集和测试集;
[0009]步骤2:构建神经网络过程;
[0010]使用残差网络作为骨干网络,首先目标卷积神经神经网络根据其深度和原始结构划分为几个浅段,浅层网络可以视为学生模型,在概念上深层网络可以被视为教师模型;
[0011]步骤3:神经网络训练过程;
[0012]将划分后的CIFAR数据集送入步骤2构建的神经网络进行训练,直至网络收敛;
[0013]步骤4:测试图像检测过程;
[0014]用训练好的神经网络和权重文件来检测测试图像中的准确率。
[0015]进一步地,本专利技术所述步骤2包括以下步骤:
[0016]步骤2

1:在残差网络网络中对于不同浅层网络的预测结果,将其当作学生网络,在每个浅层block之后,设置仅用于训练和可在推理中去除的瓶颈层和全连接层;
[0017]步骤2

2:对原本的基于响应的知识蒸馏损失进行分解,拆解成目标类别和非目标类别的二分类损失以及非目标类别概率分布,并将二分类损失和非目标类别概率分布的权重解耦出来。
[0018]进一步地,本专利技术所述步骤3包括以下步骤:
[0019]步骤3

1:针对数据集中目标的大小,使用随机裁剪和随机水平翻转的数据增强方法;
[0020]步骤3

2:使用随机梯度下降的方法进行优化,学习率进行两次衰减,从初始值进行衰减,使神经网络能够达到更好的蒸馏结果;
[0021]步骤3

3:在神经网络上尝试不同的训练超参数,进行训练,当损失函数收敛或者达到最大迭代次数时,停止训练得到蒸馏后的网络文件和权重文件;
[0022]进一步地,本专利技术所述步骤3

1中对原始图像进行随机裁剪,裁剪填充大小为4。
[0023]进一步地,本专利技术所述步骤3

2是在训练过程中的不同阶段进行学习率衰减。
[0024]进一步地,本专利技术所述步骤4包括以下步骤:
[0025]步骤4

1:将测试图像送入改进的残差网络主干网络中,获取四个阶段的预测结果;
[0026]步骤4

2:将四个阶段的结果进行加权平均;
[0027]步骤4

3:对比五者结果,选择预测准确率高的作为最终结果。
[0028]有益效果:
[0029]1、本专利技术在残差网络主干网网络的基础上,采用深层网络作为教师网络来对浅层的学生网络进行蒸馏,可以让浅层学习到更深层的语义信息,增强了模型的分类精度。
[0030]2、本专利技术通过改进方式蒸馏损失的方法,使用解耦知识蒸馏,能更有效地利用非目标类别所蕴含的暗知识,提升了目标图片分类的准确率。
附图说明
[0031]图1为本专利技术实施例的方法流程图。
[0032]图2为本专利技术实施例步骤2的方法流程图。
[0033]图3为本专利技术实施例步骤3的方法流程图。
[0034]图4为本专利技术实施例步骤4的方法流程图。
[0035]图5为本专利技术实施例中的测试结果图。
具体实施方式
[0036]下面结合说明书附图对本专利技术创造作进一步地详细说明。
[0037]如图1所示,本专利技术提供了一种基于解耦蒸馏损失的自蒸馏实现方法,该方法包括以下步骤:
[0038]步骤1:获取数据集,并对CIFAR10和CIFAR100数据集进行划分,分成训练集和测试集;
[0039]步骤2:构建神经网络,使用残差网络作为骨干网络,构建网络时将四个阶段的特征作为分支,添加bottleneck层和FC层作为学生网络的预测,使用最后一层作为教师网络来蒸馏;
[0040]步骤3:训练神经网络,将划分后的CIFAR数据集送入神经网络进行训练,直至网络收敛;
[0041]步骤4:分类测试,利用训练好的神经网络和权重文件检测测试图像中的类别来验证蒸馏效果;
[0042]在本实施例中,本专利技术具体采用以下技术方案:
[0043]步骤1)从CIFAR数据集官网下载数据,并对数据进行划分;
[0044]步骤2)首先,增加四个分支进行特征的提取,再利用bottleneck层更有效地提取特征,最终通过FC层进行预测。
[0045]如图2所示,本专利技术步骤2包括如下步本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于解耦蒸馏损失的自蒸馏实现方法,其特征在于,所述方法包括以下步骤:步骤1:数据集获取过程;首先下载CIFAR数据集,并对其进行划分为训练集和测试集以及数据增广;步骤2:构建神经网络过程;在残差网络网络结构的基础上,使用四个阶段特征分别作为学生网络和教师网络,构造出新的蒸馏框架;步骤3:神经网络训练过程;将增广划分后的CIFAR数据集送入步骤2构建的神经网络进行训练,直至网络收敛;步骤4:测试图像检测过程;利用训练好的神经网络和权重文件来检测测试图像中的分类准确率。2.根据权利要求1所述的一种基于解耦蒸馏损失的自蒸馏实现方法,其特征在于,所述步骤2包括以下步骤:步骤2

1:在残差网络网络中对于不同浅层网络的预测结果,将其当作学生网络,在每个浅层block之后,设置仅用于训练和可在推理中去除的瓶颈层和全连接层;步骤2

2:对原本的基于响应的知识蒸馏损失进行分解,拆解成目标类别和非目标类别的二分类损失以及非目标类别概率分布,并将二分类损失和非目标类别概率分布的权重解耦出来。3.根据权利要求1所述的一种基于解耦蒸馏损失的自蒸馏实现方法,其特征在于,所述步骤3包括以下步骤:步骤3

【专利技术属性】
技术研发人员:刘宁钟朱隆熙吴磊王淑君
申请(专利权)人:南京航空航天大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1