作者:Y Srivastava、V Murali、S R Dubey

深度人脸识别中不同损失函数的性能对比

人脸识别是当前手机设备中使用最广泛的生物识别特征之一。而损失函数在训练用于人脸识别的 CNN 过程中有重要作用。因此,本文对用于人脸识别的多种损失函数进行了性能对比。

无约束人脸识别计算机视觉领域中最难的问题之一。人脸识别在罪犯识别、考勤系统、人脸解锁系统中得到了大量应用,因此已经成为人们日常生活的一部分。这些识别工具的简洁性是其在工业和行政方面得到广泛应用的主要原因之一。但是同时,这种易用性掩盖了工具设计背后的复杂度和难度。很多科学家和研究人员仍然在研究多种技术以获得准确、稳健的人脸识别机制,未来其应用范围仍然会以指数级增加。2012 年,Krizhevsky 等人 [1] 提出 AlexNet,这一变革性研究是人脸识别领域的一项重大突破,AlexNet 赢得了 ImageNet 挑战赛 2012 的冠军。之后,基于 CNN 的方法在大部分计算机视觉问题中如鱼得水,如图像识别、目标检测、语义分割和生物医疗图像分析等。过去几年研究者提出了多种基于 CNN 的方法,其中大部分方法处理问题所需的复杂度和非线性,从而得到更一般的特征,然后在 LFW [12]、Megaface [13] 等主要人脸数据集上达到当前最优准确率。2012 年之后,出现了很多基于深度学习人脸识别框架,如 DeepFace [14]、DeepID [15]、FaceNet [16] 等,轻松超越了手工方法的性能。

图像识别性能的提升伴随着 CNN 深度的增加,如 GoogLeNet [17] 和 ResNet [4]。然而,研究发现,在深度到达一定程度后,性能趋向于饱和,即深度的增加几乎不会再带来性能的提升。同时,人脸识别的大规模应用成本高昂,因为其深度架构所需的计算成本很高。因此,近年来研究者也在研究 CNN 模型的其它方面,如损失函数、非线性、优化器等。其中一个重要研究是开发适合人脸识别损失函数。关于损失函数的早期研究包括 Center Loss 和 Triplet Loss,主要用于减少当前样本和正样本之间的距离、增加当前样本和负样本之间的距离,从而更紧密地与人脸识别产生关联。近期的损失函数(如 Soft-Margin Softmax Loss [19]、Congenerous Cosine Loss [20]、Minimum Margin Loss [21]、Range Loss [22]、L2-Softmax Loss [23]、Large-Margin Softmax Loss [24] 和 A-Softmax Loss [25])在更轻量级的 CNN 模型上展示出了强大性能,有些结果甚至优于大型 CNN 模型。

本论文对近期提出的用于深度人脸识别损失函数进行了综合性能对比。该研究实施了大量实验,从不同方面(比如架构的影响(如深度和重量)、训练数据集的影响)来判断不同损失函数的性能。然后使用训练准确率、测试准确率收敛速率评估标准对结果进行分析。

论文:A Performance Comparison of Loss Functions for Deep Face Recognition

论文链接:https://arxiv.org/pdf/1901.05903.pdf

摘要:生物识别工具的出现及其在日常设备中日渐增加的应用使得用户验证过程更加简单,尤其是与之前使用的密码和图案解锁相比。生物识别工具的易用性减少了人类手工劳作,促进更快、更自动的验证过程。在不同的生物识别特征中,人脸是无需用户配合即可获取的。此外,人脸识别是目前设备中最广泛应用的特征之一,因此也应该是最需要优先解决的重要问题。按照近期趋势,基于 CNN 的方法在多个计算机视觉任务中获得了高度成功,包括人脸识别。其中损失函数被用于判断网络的性能,损失函数在 CNN 训练过程中发挥重要作用。如果网络在当前参数设置下无法获得优秀性能的话,它就会生成大的损失。本文对用于人脸识别的不同损失函数进行了性能对比,如交叉熵损失、Angular Softmax、Additive-Margin Softmax、ArcFace 和 Marginal Loss。实验所用 CNN 架构是 ResNet 和 MobileNet,训练数据集为 CASIA-Webface 和 MS-Celeb-1M,测试数据集为 LFW 人脸数据集。

损失函数

本文对比了五种损失函数交叉熵损失、Angular Softmax Loss、Additive-Margin Softmax Loss、ArcFace Loss 和 Marginal Loss。其中 Angular Softmax Loss 和 Additive-Margin Softmax Loss 等损失函数是专为人脸识别任务提出的。

交叉熵损失

Angular-Softmax Loss

Additive Margin Softmax Loss

ArcFace Loss

Marginal Loss

网络架构

ResNet 模型

图 1a:ResNet 所用基础残差块。b:MobileNet 使用两个不同的卷积来减少计算量。D_k 表示滤波器大小,M 表示输入维度。

表 1:ResNet50 架构的表格表示。第一二三列分别表示层命名、输出大小和滤波器大小。

MobileNet

表 2:MobileNet 架构概览。

性能评估和观测

研究者使用 ResNet50 和 MobileNetv1 架构和上述损失函数,在 MS-Celeb-1M 和 CASIA-Webface 数据集上执行训练,在 LFW 数据集上执行测试。作者提供了基于测试准确率收敛速率和测试结果的对比。

图 2:损失函数性能评估的训练和测试框架。

图 3:该研究中不同模型在 LFW 数据集上获得的最高测试准确率

图 4:给定损失函数获得最佳模型性能所需的最少 epoch 数量。

表 3:ResNet50 和 MobileNetv1 这两个架构在 MS-Celeb-1M 和 CASIA-Webface 数据集上获得的训练准确率对比,和在 LFW 数据集上获得的测试准确率对比。

理论损失函数人脸识别
4
相关数据
深度学习技术

深度学习(deep learning)是机器学习的分支,是一种试图使用包含复杂结构或由多重非线性变换构成的多个处理层对数据进行高层抽象的算法。 深度学习是机器学习中一种基于对数据进行表征学习的算法,至今已有数种深度学习框架,如卷积神经网络和深度置信网络和递归神经网络等已被应用在计算机视觉、语音识别、自然语言处理、音频识别与生物信息学等领域并获取了极好的效果。

交叉熵技术

交叉熵(Cross Entropy)是Loss函数的一种(也称为损失函数或代价函数),用于描述模型预测值与真实值的差距大小

参数技术

在数学和统计学裡,参数(英语:parameter)是使用通用变量来建立函数和变量之间关系(当这种关系很难用方程来阐述时)的一个数量。

收敛技术

在数学,计算机科学和逻辑学中,收敛指的是不同的变换序列在有限的时间内达到一个结论(变换终止),并且得出的结论是独立于达到它的路径(他们是融合的)。 通俗来说,收敛通常是指在训练期间达到的一种状态,即经过一定次数的迭代之后,训练损失和验证损失在每次迭代中的变化都非常小或根本没有变化。也就是说,如果采用当前数据进行额外的训练将无法改进模型,模型即达到收敛状态。在深度学习中,损失值有时会在最终下降之前的多次迭代中保持不变或几乎保持不变,暂时形成收敛的假象。

人脸识别技术

广义的人脸识别实际包括构建人脸识别系统的一系列相关技术,包括人脸图像采集、人脸定位、人脸识别预处理、身份确认以及身份查找等;而狭义的人脸识别特指通过人脸进行身份确认或者身份查找的技术或系统。 人脸识别是一项热门的计算机技术研究领域,它属于生物特征识别技术,是对生物体(一般特指人)本身的生物特征来区分生物体个体。

损失函数技术

在数学优化,统计学,计量经济学,决策理论,机器学习和计算神经科学等领域,损失函数或成本函数是将一或多个变量的一个事件或值映射为可以直观地表示某种与之相关“成本”的实数的函数。

计算机视觉技术

计算机视觉(CV)是指机器感知环境的能力。这一技术类别中的经典任务有图像形成、图像处理、图像提取和图像的三维推理。目标识别和面部识别也是很重要的研究领域。

准确率技术

分类模型的正确预测所占的比例。在多类别分类中,准确率的定义为:正确的预测数/样本总数。 在二元分类中,准确率的定义为:(真正例数+真负例数)/样本总数

GoogLeNet技术

同样在2014年,谷歌提出了 GoogLeNet(或Inception-v1)。该网络共有22层,且包含了非常高效的Inception模块,它同样没有如同VGG-Net那样大量使用全连接网络,因此参数量非常小。GoogLeNet最大的特点就是使用了Inception模块,它的目的是设计一种具有优良局部拓扑结构的网络,即对输入图像并行地执行多个卷积运算或池化操作,并将所有输出结果拼接为一个非常深的特征图。

MobileNets技术

MobileNet是专用于移动和嵌入式视觉应用的卷积神经网络,是基于一个流线型的架构,它使用深度可分离的卷积来构建轻量级的深层神经网络。通过引入两个简单的全局超参数,MobileNet在延迟度和准确度之间有效地进行平衡。MobileNets在广泛的应用场景中有效,包括物体检测、细粒度分类、人脸属性和大规模地理定位。

语义分割技术

语义分割,简单来说就是给定一张图片,对图片中的每一个像素点进行分类。图像语义分割是AI领域中一个重要的分支,是机器视觉技术中关于图像理解的重要一环。

优化器技术

优化器基类提供了计算梯度loss的方法,并可以将梯度应用于变量。优化器里包含了实现了经典的优化算法,如梯度下降和Adagrad。 优化器是提供了一个可以使用各种优化算法的接口,可以让用户直接调用一些经典的优化算法,如梯度下降法等等。优化器(optimizers)类的基类。这个类定义了在训练模型的时候添加一个操作的API。用户基本上不会直接使用这个类,但是你会用到他的子类比如GradientDescentOptimizer, AdagradOptimizer, MomentumOptimizer(tensorflow下的优化器包)等等这些算法。

推荐文章
暂无评论
暂无评论~