APP下载

基于SAE和深度神经网络相结合的人脸特征提取与识别

2018-10-08王鑫

移动通信 2018年9期
关键词:权值人脸特征提取

王鑫

(1.中移信息技术有限公司,北京 100129;2.北京信息科技大学,北京 100029)

1 引言

随着移动互联网和信息化技术的快速发展,信息安全已经成为国家发展的重要战略之一。以人脸特征匹配技术为代表的生物特征识别技术已经成为信息安全研究领域的重点方向。Turk[1-2]等人于1990年首次利用PCA(Principal Component Analysis,主成分分析法)生成EigenFace(特征脸),这种方法不仅能提取人脸的整体信息,还能提取包含人脸各器官的相关关系,该方法相比之前人脸的几何特征提取显然更能反映人脸的多种特征,其人脸识别精度也得到了大大的提升。此后,人脸特征提取和匹配方法不断呈现,在特征提取上有Haar特征[3]、Gabor特征[4]、SIFT特征[5]、HOG特征[6]以及LBP特征[7],上述的特征大多数都是基于人脸结合特征的应用;而在人脸识别方面,出现了k近邻分类器[8]、支持向量机[9]、浅层神经网络[10]、adaboost分类器[11]以及cascade分类器[12]等。随着研究的深入,研究者发现人脸的倾斜、光照的变化、遮挡等复杂背景会在很大程度上影响了算法的精度,因此,近几年的联合贝叶斯算法、高斯脸、深度脸等算法被陆续提出,并且取得较好的效果。虽然上述所提出的算法自学习功能非常强大,可以设置多层神经网络反复学习实现图像数据背后的有效表示,在人脸识别上具有一定的优势,但是,这种反复学习必然带来参数过多、训练过慢、准确率不稳定等问题。考虑到人脸图片数据的稀疏性、高维度的特点,本文采用SAE(Sparse auto-Encoder,稀疏自动编码器,也称为自编码神经网络)进行人脸特征的提取,该方法能够以较少的参数重构人脸的特征,并利用自身生成的参数初始化深度神经网络隐含层的参数,达到提高模型精度的目的。

2 相关研究

2.1 稀疏自编码器

自编码神经网络是一种无监督的神经网络,属于深度学习模型之一。其思路是:将输入X映射成一个新的表达Y,输入节点等于输出节点,隐含层的节点数量较小,目的是使输入X经过非线性变换后将特征输入到节点数量较少的隐含层中,实现高维度特征向低纬度特征的映射。与其他神经网络不同的是:自编码网络的结构是对称的,中间含有多个隐含层,并且中心层的神经元是最少的。自编码神经网络通过对样本的训练后得到一组权值系数(或称为字典),输入数据借助权值系数实现高维向低维的映射,用低维数据表示输入数据。

从上述的描述可知,自编码神经网络的确能够实现任何数据或者图片的低维表达,但是随着隐含层的数量越多,每一个神经元产生的参数也就越多。那么,就得寻找一个能够让数据实现高维向低维映射的同时减少神经网络的参数数量的办法,以便提升网络的计算速度。具体就是在隐含层增加一些限制,约束隐含层中的节点,使得节点大部分不被激活,只有少数被激活,那么最后的参数数量就大大减少,这就是Sparse名字的由来——Sparse auto-Encoder。

2.2 卷积神经网络

卷积神经网络的诞生是为了解决神经网络带来参数过多的问题。假如有一张50×50像素的图片需要做人脸识别,如果采用传统的全连接神经网络,那么输入层意味着有50×50个神经元,隐含层有20个神经元,输出层有10层,那么需要计算的参数个数(w和b)有:2500×20×10+20+10=500030个。因此,从计算资源的考虑角度,不能用传统的神经网络进行人脸识别。

图1 卷积神经网络结构示意图

CNN的结构包含输入层、卷积层、池化层、全连接层以及输出层。一般来说,一个CNN网络的卷积层和池化层都有若干个,其规律是卷积层和池化层交替设置,一个卷积层后面一般都连接一个池化层。卷积神经网络结构示意图如图1所示。

卷积神经网络的每一层使用多个卷积核,卷积核的大小决定了神经网络的连接范围。假设一个3×3的卷积核在某一张图片上滑动,该卷积核的连接范围只有3×3的大小而非整张图片。这种在局部范围的连接成为稀疏连接,其能够按照卷积核的特征有效提取图片的空间局部特征,由于采用了局部连接的方式,因此,该网络的参数大大减少。

卷积神经网络除了稀疏性的特征外,还具有权值共享性:同一个卷积核中所连接的神经元使用相同的权值,如图2所示,箭头颜色相同的神经元之间的权值是相同的。共享权值在很大程度上减少网络需要计算的参数个数,并且使得卷积核所输出的特征具有可识别性。

图2 卷积神经网络共享权值示意图

3 基于SAE和深度神经网络相结合的人脸特征提取与匹配

3.1 人脸特征提取与匹配流程

本文采用无监督的特征学习算法稀疏自编码网络学习到的特征作为卷积神经网络的输入,实现高维空间向低维空间的映射,实现了人脸特征的提取;然后将输入的特征经过卷积和池化后,采用softmax分类器来实现人脸的匹配。人脸特征提取与匹配流程如图3所示。

图3 人脸特征提取与匹配流程图

3.2 SAE特征提取

自编码神经网络模型如图4所示。假设每一个图片预处理后的数据表达形式为X={x1,x2,…xk},希望重构一个数据X′={x(1),x(2),…x(N)},那么SAE的实现过程如下所述。

首先,构建一个三层的神经网络,包括输入层、隐含层以及输出层。现在经典的sigmoid为神经元的激活函数。对于一个无标签的输入数据X,在隐含层的输出中得到一个特征表达为h(X,W,b)=σ(WX+b)。

上述自编码神经网络输出的值是hw,b(x)=x,并且通过隐含层较少的神经元实现输入的压缩。在上述的模型的隐含层的输出用a表示,那么aj(2)(x(i))则表示给定x的情况下,隐含层神经元j的激活度。进一步,隐含层整体神经元的平均激活度可以表示为:

为了有效控制网络参数的数量,引入一个额外的惩罚因子——稀疏惩罚项,其作用是有效控制神经元激活的数量,如果神经元的输出接近1,那么认为该神经元是“活跃的”;如果一个神经元的输出接近0,那么认为该神经元是“不活跃”。为了控制神经元的输出分布都接近0,引入ρ(ρ=0.05),一个接近于0的较小值,让隐含层神经元ρ^的平均活跃度接近0.05。为了实现稀疏限制,代价函数可以表示为:

其中,nl是稀疏自编码神经网络的层数;λ是规则化系数,可根据模型自由设定;hw,b(x)是稀疏自编码神经网络的输出值;β是控制稀疏性惩罚项的系数。KL(ρ^||ρ)是相对熵,是衡量ρ^的分布于真实值ρ之间的分布的差异。在ρ^=ρ时,KL(ρ^||ρ)存在唯一的极小值。KL(ρ^||ρ)的表达式为:

公式(2)的前两部分是非凸函数,因此通常采用迭代法进行计算,通过层层迭代后,自编码神经网络在各层残差向量计算如下:

图4 自编码神经网络模型

计算公式(4)的关键在于如何计算平均激活度ρ^,因此,在计算稀疏自编码神经网络的后向传播前,对神经网络进行前向传播的计算,即可得到神经元的激活值。

最后,自编码神经网络采用线性解码的方式,得到稀疏自编码神经网络初始的权重向量和偏置向量的梯度下降方向为:

在确定l=1, 2后,满足稀疏自编码神经网络的迭代规则——最大迭代次数或者准确率达到算法收敛的规定后,隐含层单元就获得了学习好的特征,也就是训练好了神经网络的权值向量w偏置向量b。

3.3 深度神经网络的卷积和池化

自编码神经网络的输入层和隐含层都是全连接的,因此它不适用于人脸图片等具有高分辨率的图像。本文采用上面稀疏自编码神经网络学习到的参数依次对图像进行卷积运算并采用不同的神经元提取训练图像的各个特征。

深度神经网络的卷积过程完整的数据模型如图5所示,整个卷积操作由2部分组成:∑wx(卷积)和f(激活),其中∑wx(卷积)用到了稀疏自编码网络学习的参数进行图像各个特征的提取。

图5 卷积层操作机理

图片经过卷积操作后,实现特征提取和特征映射的作用。特征提取:每一个神经元从上一层的局部接受域得到突触输人,因而迫使它提取局部特征。一旦一个特征被提取出来,只要它相对于其他特征的位置被近似地保留下来,它的精确位置就变得没有那么重要了。特征映射:网络的每一个计算层都是由多个特征映射组成的,每个特征映射都是平面形式的。平面中单独的神经元在约束下共享相同的突触权值集(权重),这种结构形式具有如下的有益效果:平移不变性和自由参数数量的缩减(通过权值共享实现)。

在完成卷积操作后,进入池化操作:进行子抽样然后再进行局部平均。池化过程不涉及参数的运算,仅起到降维的作用。具体的做法是:将输入切分成不重叠的一些n×n区域,每一个区域最终只有一个输出值。计算方法可以是求平均、取最大等。假设n=2,那么4个输入变成一个输出,输出图像就是输入图像的1/4大小。池化操作不仅能够实现统计特征降维的效果,还能防止模型出现过拟合的现象。

3.4 softmax多分类器

人脸识别的本质就是分类问题,分类问题有二分类与多分类,其实不同分类方法的实质上没有多大区别,都是采用公式y=wx+b来实现类别的划分。一般,二分类问题采用逻辑回归,其激活函数采用sigmoid,这个激活函数除了给函数增加非线性之外还会把最后的预测值转换成在[0, 1]中的数据值,也就是预测值是0<y<1。可以把最后的这个预测值当做是一个预测为正例的概率。在进行模型应用的时候会设置一个阈值,当预测值大于这个阈值的时候,判定为正例子,反之判断为负例,而多分类函数的激活函数采用softmax。

从图6可知,最后的一层中使用的激活函数就是softmax,跟二分类在输出层之后一个单元不同的是,使用softmax的输出层拥有多个单元——有多少个分类就会有多少个单元。将对有标签数据集用于softmax分类器进行训练并实现权值向量和偏置向量的微调,整个训练过程结束。

在具体的人脸识别过程中,会设置若干个单元,并分别对数据库检索出来的若干个候选人脸图像计算与待识别人脸的相似度,并选取最大相似度作为最终的输出。

4 实验结果与分析

4.1 数据集介绍

实验选用标准的人脸库YaleB进行测试,本实验将人脸图片统一为64×64的灰度图,将本文基于SAE和深度神经网络相结合的人脸特征提取与匹配的算法与传统的BP神经网络进行比较。

人脸库YaleB包括38个人在64种光照影响下的2400多正脸照片,本文从数据集随机选取每个人的20张图片作为无标签训练集进行特征提取和初始化参数的学习;再随机选取每个人的20张图片作为有标签的训练集用于softmax分类器的训练,剩下的图片作为测试集用于测试深度神经网络人脸识别的准确率。

4.2 实验结果

本文稀疏自编码神经网络的输入层和输出层均为192个神经元,而深度学习的隐含层神经元数量为400。为了更好地进行性能的测试,本文分别采用192个隐藏神经元的BP神经网络和400个隐藏神经元的BP神经网络对上述的有标签训练集和测试集进行训练,在进行10次训练所得到的10个模型,将其用于检验测试集,所得到的测试集准确率结果如表1所示。

从表1可知,无论是传统BP网络的隐含层神经元数量等于自编码神经网络的输入层神经元的数量还是BP网络的隐含层神经元数量等于深度神经网络隐含层神经元的数量,其平均准确率均低于本文提出的算法。而且从表1可知,BP神经网络的隐含层神经元数量越多,其分类的准确率并不一定越高,有可能产生过拟合。实验结果表明,基于无监督的稀疏自编码神经网络在特征学习上具有强大的泛化能力,其特征提取的参数依次对图像进行卷积计算,并通过softmax进行参数的微调,能够在很大程度上提升了算法的精准度。

图6 深度神经网络的softmax分类器

表1 实验对比结果图

5 结束语

本文提出的基于SAE和深度神经网络相结合的人脸特征提取与匹配算法采用无监督的方法学习不同人脸的特征,这种方法的优势在于不需要提取人脸图片中的颜色、纹理以及人脸的形状,而是采用基于像素级别的人脸特征提取,从而在一定程度上提高了人脸识别的精度。深度神经网络采用稀疏自编码神经网络学习到的特征依次对图像进行卷积运算;采用不同的神经元提取训练图像的各个特征;最后对稀疏自编码神经网络学习到的权重向量和偏置向量等参数进行微调,提高了模型训练的速度和精度。由于本文选取的数据集较少,因此在未来将对几万甚至几十万的大型数据集进行训练并调整本文算法的相关参数。除此以外,探究增加深度神经网络的层数以及隐含层神经元的数量是否会在一定程度上提升算法的精度。最后,研究深度神经网络并行处理的方式,通过并行处理来提高模型运行的速度。

猜你喜欢

权值人脸特征提取
一种融合时间权值和用户行为序列的电影推荐模型
有特点的人脸
CONTENTS
基于Daubechies(dbN)的飞行器音频特征提取
三国漫——人脸解锁
基于权值动量的RBM加速学习算法研究
Bagging RCSP脑电特征提取算法
马面部与人脸相似度惊人
基于MED和循环域解调的多故障特征提取
长得象人脸的十种动物