用于快速低分辨率人脸识别模型训练的改进知识蒸馏《Improved Knowledge Distillation for Training Fast LR_FR》

目的:运用知识蒸馏方法解决低分辨率人脸识别问题。
方法:与原有知识蒸馏不同,在改进后的知识蒸馏中教师和学生模型的训练集变得不一样,教师模型的训练集保持不变,学生训练集是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的软标签可以定义为X_{T}^{\tau }=softmax\left ( z_{T}/\tau \right ),其中\tau是温度参数。同样,学生网络S的软标签是X_{S}^{\tau }=softmax\left ( z_{S}/\tau \right )

(1)软损失X_{T}^{\tau }X_{S}^{\tau }之间的交叉熵:

 L_{soft}=H(X_{T}^{\tau }\, , X_{S}^{\tau })

(2)硬损失是非软标签概率X_{S}​​​和真实标签y之间的交叉熵:

L_{hard}=H\left ( X_{S} \\, y\right )

这里,H(.)表示交叉熵。

(3)对于表征学习,我们使用特征层作为表征来训练学生模型。表征损失实际上是特征L2损失:

L_{Feature}=||F_{S}-F_{T}||

这里F_{S}F_{T}分布表示学生网络和教师网络的特征。

      在这三种损失中,软损失可以通过使用软标签将知识从教师传递给学生,硬损失可以使学生发展自己的分类能力,表征学习可以提高成绩并加速收敛。这里,在计算L2损失之前,对特征进行归一化。总体损失可表示为方程(6),其中L_{Feature\_Norm}表示归一化特征的L2损失,λ1、λ2和λ3表示硬、软和归一化特征损失的权重。

L_{overall}=\lambda _{1}L_{hard}+\lambda _{2}L_{soft}+\lambda _{3}L_{Feature\_Norm}

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被广泛用作测量两个域之间差异的分布距离。该方法如下式所示。

L_{MMD}\left ( x\\,y \right )=||\frac{1}{N}\sum_{i=1}^{N}\phi (x^{i})-\frac{1}{N}\sum_{j=1}^{N}\phi \left ( y^{j} \right )||

式中\phi \left ( \cdot \right )为一个显示映射函数,x^{i}, y^{j}分布表示从教师和学生训练数据集中提取的两个独立的样本。将其展开,就变形为。

L_{MMD}\left ( x\\, y\right )=\frac{1}{N^{2}}\sum_{i=1}^{N}\sum_{i^{1}=1}^{N}k\left ( x^{i} \\, x^{i^{1}}\right )+\frac{1}{M^{2}}\sum_{j=1}^{N}\sum_{j^{1}=1}^{N}k\left ( y^{j}\\, y ^{j^{1}}\right )-\frac{2}{MN}\sum_{i=1}^{N}\sum_{j=1}^{N}k\left ( x^{i}\\, y^{j} \right )

MMD使用核方法将向量投射到更高的维度,这里本文使用高斯核k\left ( x\\, y\right )=e^{-\frac{||x-y||^{2}}{2\sigma ^{2}}},其中\sigma ^{2}表示数据集中样本对的平方距离之间平均值。而MK-MMD中将高斯分布方差设置为\sigma ^{2}\times \left ( 1\\, 2^{1}\\,2^{2}\\,2^{3}\\,2^{4}\right ),这样就需要考虑五个高斯核。

(3)损失函数的改进

        为了将MK-MMD度量集成到总体损失函数中,本文用归一化特征MK-MMD替换归一化特征L2 损失 L_{Feature\_Norm}。式中x和y分别表示教师和学生模型提取的特征。在本文的方法中,不是使用原始的x和y,而是将其使用的特征归一化为\frac{x}{||x||}\frac{y}{||y||},从而使它们具有相同的比例。       

         当然,本文也尝试将MK-MMD应用于软标签,但这会稍微影响准确性。因此,我们仅将MK-MMD用于规范化特征。

L^{1}_{overall}=\lambda ^{1\_1}L_{hard}+\lambda ^{1\_2}L_{soft}+\lambda ^{1\_3}L_{Feature\_Norm}^{MK\_MMD}

其中L_{Feature\_Norm}^{MK\_MMD}表示归一化特征的MK-MMD,\lambda ^{1\_1}, \lambda ^{1\_2},\lambda ^{1\_3}表示硬、软和归一化特征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。改进后的方案还可以推广到其他数据方差,如光照、姿态等。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一瞬にして失う

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值