【论文】Deep Learning Face Representation by Joint Identification-Verification

论文题目:Deep Learning Face Representation by Joint Identification-Verification

作者:Yi Sun、 Xiaogang Wang、 Xiaoou Tang

时间:2014

链接:原文链接

论文目标

在面部识别中,关键任务是提取面部特征,并增大类间距离、减小类内距离。

相关工作

在之前的工作中,本文作者提出的DeepID使用softmax作为输出用于身份验证,达到了比较好的效果。其他诸如LDA、metric learning等方法使用线性模型或使用浅层网络,具有一定的局限性。

本文思路/解决方案

同时使用两种supervisory signal来指导模型的学习,即同时使用identification(给定输入,判断属于哪一个类别,多分类)和verification(给定两个输入,判断是否属于同一类别,二分类),前者可以增大类间距离,后者减小类内距离。

深度神经网络的结构与本文作者之前的工作基本相同,即包括四层卷积和三层最大池化,经过跨层连接得到长度为160的特征向量。

使用特征网络的输出向量分别用于identification和verification,反向传播时使用超参数 $\lambda$对两个损失函数的梯度加权。在前者使用softmax得到输出并优化cross-entropy loss。在后者使用基于L1/L2正则和cosine相似的损失函数,并对比较其效果。

基于cosine相似:$$Verif(f_i,f_j, y_{ij}, \theta_{ve}) = \frac{1}{2}(y_{ij}-\sigma(wd+b))^2$$,其中$\sigma$为sigmoid函数,$$d = \frac{f_i · f_j}{||f_i||_2·||f_j||_2}$$。

基于L2的: $$Verif(f_i,f_j, y_{ij}, \theta_{ij}) = \begin{cases} \frac{1}{2}||f_i - f_j||^2 &if\ y_{ij}=1\\ \frac{1}{2}\max(0, m-||f_i - f_j||^2)&if\ y_{ij}=-1\end{cases}$$ ,其中 $y_{ij}$表示输入是否为同一类别,$m$为指定的边界,在训练过程中手动调整。

训练过程中,每一张图片选择了400个patch,包括不同位置、大小、通道(RGB or 灰度),训练得到200个网络。

测试Verification时,通过前后向贪婪算法选择其中效果最好的25个得到 $25*160=4000$维度的特征向量,并通过PCA压缩,便于识别和预测。在预测时分别使用L2 Norm模型和联合贝叶斯模型来得到结果。

结果

对于超参数 $\lambda$的选择,通过测试可以发现在0.05处达到最高。当 $\lambda=0$或者 $\lambda=+\infty$时,据无法得到比较好的效果,说明identification和verification对于特征提取都具有重要作用。

与DeepID中的情况相同,训练时使用的类别越多,学习效果越好。

使用联合贝叶斯模型实现预测可以得到更高的准确率。同时在训练过程中,使用L2正则的损失函数效果更好。

多次选择效果比较好的patch组合,使用得到的结果结合SVM进行预测,整体系统的性能达到了99.15%的识别准确率。

总结

  1. 使用identification和verification结合的方式,合理选择权重超参数,使得学习效果进一步提升。
  2. 在verification中测试多种损失函数,最终选择了效果最好的基于L2的模型。
Lei Yang
Lei Yang
PhD candidate

My research interests include visual speech recognition and semantics segmentation.