蒸馏法——人脸识别

1,Model Distillation with Knowledge Transfer from Face Classification to Alignment and Verification

1)初始化策略:

1.1)使用softmax损失先进行预训练优化,

2) 对于非分类任务的蒸馏法损失函数如下所示:

其中第一项是特定任务的损失函数,第三项是特定任务的蒸馏损失项,第二项是原始hinton论文中的softmax损失,

对齐任务:

人脸对齐主要是对每张人脸图像定位出5个关键点的位置,所以通常人脸对齐是回归任务,因此,训练神经网络使用下面的欧式距离损失函数,Rt是教师网络的回归预测层,Pt是目标预测的soft概率,另外一个Kt可以是回归预测层的前一个隐层

最终的目标损失为:

人脸verifacation:

教师网络的训练使用triplet损失:实验如下图所示:在随机初始化的情形下,使用soft目标得到了最好的性能

蒸馏法——人脸识别_第1张图片对于少量标签的训练集CASIA-WebFace,学生网络可能超越教师网络,比如学生网络98.2,教师网络97.67%对于MS-Celeb-1M,学生网络无法超越教师网络,没有任何学生网络超越教师网络99.11%蒸馏法——人脸识别_第2张图片

 

2, Face Model Compression by Distilling Knowledge from Neurons

通过神经元选择策略训练学生网络,教师网络最顶层最有代表力的神经元,采用这些有代表力神经元对应的特征训练学生网络

下面公式的f是从教师模型中得到的,I是学生网络的输入图像,W是学生网络的一系列参数

蒸馏法——人脸识别_第3张图片

下面介绍如何获取fi,在一个全连接的graph上,每个节点代表一个神经元,每条边表示这一对神经元的关系,每个节点都有一个二元潜在变量,{0,1}分别代表该神经元是否被选择,给定N个神经元的图,

蒸馏法——人脸识别_第4张图片

上面公式前后两部分分别代表选择的神经元i的一元势函数和神经元i、j的二元势函数,

f是惩罚函数,xi代表神经元i拥有判别力的程度,二元势函数代表神经元之间的相似性,通过最小化损失函数希望xi和xj差异越大越好,综上,希望选择的神经元,自己具有好的判别力,同时和别的神经元差异越大越好(相关性越小越好);

3,Low-resolution Face Recognition in the Wild via Selective Knowledge Distillation

识别人脸分辨率32*32,模型大小0.15mb, cpu每秒418张人脸,gpu上每秒9433张。

低分辨率人脸识别模型现在主要有两大类,一类是hallucination类,另一类是embedding,其中前者的方法有Jian[9, Simultaneous hallucination and recognition of low-resolution faces based on singular value decomposition]发现同一个人脸图像在不同分辨率下的奇异值有线性关系,所以先对人脸特征进行svd分解得到高分辨率和低分辨率图像之间的映射关系;embedding方法直接得到低分辨率图像的特征, Ren[12]提出了kernel方法来将不同分辨率的人脸图像映射到无穷子空间,总结,embedding方法就是将高分辨率人脸的知识迁移到低分辨率上;

蒸馏法——人脸识别_第5张图片

教师模型使用训练好的vggface或者vggface2,教师模型的训练数据未知。

学生网络的目的是识别低分辨率的人脸,人脸输入大小是32*32;学生网络学习的是大模型的1*1*D层,D等于教师模型的输出人脸特征,mimic层可以用来和教师网络的特征层近似,mimic层一般需要上千的神经元,但是人脸特征不要这么高的维度,所以在mimic层之后会有idenetity层,可以是256或者128等用于进行人脸特征表示,indentity之后才接softmax。

由于并不是训练集中所有的人脸都是对蒸馏有意义的,所以从教师stream里选择最具有代表性的人脸,这些有代表性的人脸具有小的类间相似度,和大的类内相似度,(就是某个人的某张照片和别人长得很像,但是和自己的其他照片并不像)。为了达到这个目的,将蒸馏问题作为一个图上的前向推理过程,其中节点代表人脸,边代表关系,但是直接建模图中节点和边太多,所以作者选择了每个人脸类别的中心节点,下面公式中f代表每个人脸向量,u代表该人的中心向量,u的计算就是该类别人脸所有特征的平均

蒸馏法——人脸识别_第6张图片

上面公式中的a为长度为所有人脸数的向量,值为1代表该人脸特征为代表性的,其他为0;d(fi,uc)代表当前人脸特征和别的人脸中心cos距离,所以公式前半部分表示选择最具有代表性的人脸和其他类的人脸距离很小, 后半部分的权重参数是个负数,所以第二项代表同一类的两个人脸向量d(fi,fj)要越大越好;综上上面公式说明最具有代表性的人脸选择准则:和别的人脸中心距离近,并且和自己同类的人脸距离远。

上面公式可以用graph-cut算法求解,可以直接在教师网络得出的训练集的人脸特征中挖掘得到有代表性的人脸。

所以蒸馏法中学生网络主要做这几件事:1)通过对有代表性的人脸和教师网络回归来训练学生网络;2)从低分辨率的人脸中挖掘未知的人脸线索,所以学生网络的训练使用如下的目标损失:

蒸馏法——人脸识别_第7张图片

上面公式中第一项是分类损失,是基于所有低分辨率人脸,第二项是蒸馏损失,但是只是学生网络到mimic层的结果和教师网络蒸馏。

公式3中随着权重lamda的增大,可以有效的剔除掉噪声样本,

蒸馏法——人脸识别_第8张图片

这些噪声样本中有遮挡,侧脸,光线等问题,教师网络学习的并不好,所以这些样本需要被舍弃掉,所以本文的方法在找到有代表性的人脸的同时还会舍弃掉一些不好的训练样本,避免教师网络对学生网络产生误导。

 

 

 

 

 

 

 

你可能感兴趣的:(Image,Processing,deep,learning)