当前位置:网站首页>用于快速低分辨率人脸识别模型训练的改进知识蒸馏《Improved Knowledge Distillation for Training Fast LR_FR》
用于快速低分辨率人脸识别模型训练的改进知识蒸馏《Improved Knowledge Distillation for Training Fast LR_FR》
2022-07-28 05:22:00 【一瞬にして失う】
目的:运用知识蒸馏方法解决低分辨率人脸识别问题。
方法:与原有知识蒸馏不同,在改进后的知识蒸馏中教师和学生模型的训练集变得不一样,教师模型的训练集保持不变,学生训练集是LR扩增的。因此,由于教师模型的训练集不变,因此无需再更新教师模型。只有学生模型需要在原教师的指导下进行训练。
作用:可以加快整个训练过程,尤其是对于大规模数据集
但是这种方法会引起一个问题,即:教师模型和学生模型的训练集不同,会增加两者的数据分布差异?
对此,本文限制输出之间的多核最大平均差异。
1、知识蒸馏的改进
原有知识蒸馏中会强制让教师模型和学生模型的输出相同,即:
式子中S代表学生网络,T代表教师网络,x代表训练样本。
但是由于缺乏监控场景中的LR训练数据,通常的方法是通过模拟LR图像来扩充现有训练集。如果LR-FR任务采用原有的知识提取方案,通常包括两个步骤:
(1)使用LR增广训练集更新教师权重。
(2) 在新教师模型的指导下,使用相同的训练集训练学生模型。
因此本文为了研究如何避免繁琐的教师模型再训练,并且仍然能够为LR-FR任务培训快速的学生模型。我们提出了一种改进的知识蒸馏方案,其中教师模型仍然使用原始的训练集,学生使用LR扩充的训练集。由于教师培训集不变,因此无需更新教师模型。我们只需要执行一个步骤,即在原教师的指导下训练快速学生模型。
我们的改进方案可以更快地获得LR-FR任务的小型学生模型,因为轻量级学生的训练要简单得多。该方案可表示为方程(2)。
∆ 表示用于数据扩充的LR方差。
然而在这过程中由于教师和学生模型使用不同的训练集,两个训练集之间的分布差异可能会影响精度。因此,我们采用域相似性度量多核最大均值差异(MK-MMD)作为损失函数,以减少域差异并提高性能。
2、原有知识蒸馏损失
在原有知识蒸馏中,我们可以将教师模型的表征能力转化为学生模型。在这里,我们使用不同损失函数的组合来实现这一思想。损失函数包括:软损失;硬损失;L2特征丢失。
这里我们将最终损失表示为Z,教师模型T的软标签可以定义为
,其中
是温度参数。同样,学生网络S的软标签是
。
(1)软损失是
和
之间的交叉熵:
(2)硬损失是非软标签概率
和真实标签y之间的交叉熵:
这里,H(.)表示交叉熵。
(3)对于表征学习,我们使用特征层作为表征来训练学生模型。表征损失实际上是特征L2损失:
这里
和
分布表示学生网络和教师网络的特征。
在这三种损失中,软损失可以通过使用软标签将知识从教师传递给学生,硬损失可以使学生发展自己的分类能力,表征学习可以提高成绩并加速收敛。这里,在计算L2损失之前,对特征进行归一化。总体损失可表示为方程(6),其中
表示归一化特征的L2损失,λ1、λ2和λ3表示硬、软和归一化特征损失的权重。
3、改进后的知识蒸馏损失
(1)LR方差扩充原有数据集
在原始训练集上添加高斯模糊(高斯模糊可以通过使用高斯滤波器卷积每个像素来应用。高斯核的大小决定了缩小比例)。MTCNN用于检测和对齐112×96图像的人脸区域。在这些人脸图像中,随机选择40%的训练集作为LR样本进行降尺度。LR的尺寸包括8×8、12×12、16×16、20×20和30×30。
(2)MK-MMD(多核最大平均差异)
由于学生模型的训练集是LR扩充的,而教师模型的训练集保持不变,这就会增加学生模型和教师模型的差异。因此本文使用MK-MMD作为损失函数,以减少数据集差异,MMD被广泛用作测量两个域之间差异的分布距离。该方法如下式所示。
式中
为一个显示映射函数,
分布表示从教师和学生训练数据集中提取的两个独立的样本。将其展开,就变形为。
MMD使用核方法将向量投射到更高的维度,这里本文使用高斯核
,其中
表示数据集中样本对的平方距离之间平均值。而MK-MMD中将高斯分布方差设置为
,这样就需要考虑五个高斯核。
(3)损失函数的改进
为了将MK-MMD度量集成到总体损失函数中,本文用归一化特征MK-MMD替换归一化特征L2 损失
。式中x和y分别表示教师和学生模型提取的特征。在本文的方法中,不是使用原始的x和y,而是将其使用的特征归一化为
和
,从而使它们具有相同的比例。
当然,本文也尝试将MK-MMD应用于软标签,但这会稍微影响准确性。因此,我们仅将MK-MMD用于规范化特征。
其中
表示归一化特征的MK-MMD,
表示硬、软和归一化特征MK-MMD损失的权重。
4、本文的网络结构
本文中,我们的教师模型是一个64层ResNet模型。对于学生培训的网络体系结构选择,有几种轻型网络体系结构可用,包括SqueezeNet、MobileNet和ShuffleNet、最先进的体系结构模型,包括DenseNet、Inception ResNet和Think \Deepher模型。然而本文得出结论,当学生网络具有类似的网络架构,但通道较少,深度更大时,更薄且更深的模型将产生最佳性能。在我们的工作中,我们采用了36层更薄的ResNet网络作为我们的学生模型,详细的网络架构如下图所示。
教师模型 学生模型
5、总结
本文提出了一种改进的LR-FR模型快速训练知识蒸馏方案。为了避免教师模型耗时的训练过程,我们保持教师模型的训练集不变,而只对学生模型的训练集添加LR增广。这可以使我们避免更新教师模型的权重,并且仍然能够训练LR-FR学生模型,这将减少整个训练过程的时间成本。只有在学生模型的训练集中添加LR增广,才能增加教师和学生训练输入之间的分布差异,这种差异可以通过最小化MK-MMD损失函数来减少。
结果表明,该方法在保持学生模型精度的前提下,可以将训练时间减少5倍左右。与教师模型相比,我们的学生模型可以实现3倍的加速,在CPU上运行只需35ms。改进后的方案还可以推广到其他数据方差,如光照、姿态等。
边栏推荐
- 强化学习——基础概念
- What are the points for attention in the development and design of high-end atmospheric applets?
- Deep learning pay attention to MLPs
- 微信小程序开发详细步骤是什么?
- Which is more reliable for small program development?
- vscode uniapp
- 【4】 Redis persistence (RDB and AOF)
- 字节Android岗4轮面试,收到 50k*18 Offer,裁员风口下成功破局
- 小程序开发如何提高效率?
- Tensorboard visualization
猜你喜欢

Deep learning (incremental learning) -- iccv2021:ss-il: separated softmax for incremental learning

What are the points for attention in the development and design of high-end atmospheric applets?

分布式集群架构场景优化解决方案:分布式调度问题

Record the problems encountered in online capacity expansion server nochange: partition 1 is size 419428319. It cannot be grown

微信小程序开发费用制作费用是多少?

微信小程序开发制作注意这几个重点方面

微信小程序制作模板套用时需要注意什么呢?

小程序开发哪家更靠谱呢?

微信小程序开发详细步骤是什么?

如何选择小程序开发企业
随机推荐
How much does it cost to make a small program mall? What are the general expenses?
ssh/scp断点续传rsync
pytorch深度学习单卡训练和多卡训练
What are the advantages of small program development system? Why choose it?
微信小程序开发费用制作费用是多少?
【2】 Redis basic commands and usage scenarios
分布式集群架构场景化解决方案:集群时钟同步问题
机器学习之聚类
Regular verification rules of wechat applet mobile number
高端大气的小程序开发设计有哪些注意点?
Record the problems encountered in online capacity expansion server nochange: partition 1 is size 419428319. It cannot be grown
How to choose an applet development enterprise
【5】 Redis master-slave synchronization and redis sentinel (sentinel)
Flink CDC (MySQL as an example)
word2vec+回归模型实现分类任务
Matplotlib data visualization
Idempotent component
Various programming languages decimal | time | Base64 and other operations of the quick look-up table
面试官:让你设计一套图片加载框架,你会怎么设计?
Deep learning (incremental learning) -- iccv2021:ss-il: separated softmax for incremental learning


,其中
是温度参数。同样,学生网络S的软标签是
。
和
之间的交叉熵:
和真实标签y之间的交叉熵:

和
分布表示学生网络和教师网络的特征。


为一个显示映射函数,
分布表示从教师和学生训练数据集中提取的两个独立的样本。将其展开,就变形为。
,其中
表示数据集中样本对的平方距离之间平均值。而MK-MMD中将高斯分布方差设置为
,这样就需要考虑五个高斯核。
和
,从而使它们具有相同的比例。 
表示归一化特征的MK-MMD,
表示硬、软和归一化特征MK-MMD损失的权重。
