深度网络模型压缩及其在人脸识别的应用
文献来源:黎李强. 深度网络模型压缩及其在人脸识别的应用[D].华南理工大学,2018.
摘要: 深度学习在图像、语音、自然语言处理等众多领域的应用取得巨大的成功,但深度网络模型因其复杂的网络结构和大量的网络参数,需要很多的运算量和存储空间开销,难以在存储和计算资源有限的硬件设备上进行部署,尤其是在移动设备。因此,如何在保证深度网络模型准确度不下降的前提下,通过对网络模型进行精简处理,以减少对硬件设备计算能力的要求和存储资源的开销,这是一个具有重要意义的研究问题。本文主要针对深度网络模型压缩进行研究,并将其应用于深度人脸网络模型。
一、 深度网络压缩的研究现状
目前,深度神经网络在计算机视觉,语音识别以及自然语言处理等多个方面取得卓越的成效。研究表明,深度卷积神经网络具备强大的表征能力,且网络结构越深,其网络模型的表征能力越强。不过,由于网络层数的加深会带来更多计算量和存储资源的开销,使得深度网络模型难以在存储和计算资源有限的硬件设备上进行部署,尤其是在移动设备,因而如何降低深度网络模型运算量和存储资源的开销是具有重要的价值和意义。至今己有不少相关的研究,主要可以分为以下四类。
- 低秩分解。卷积操作是卷积神经网络模型最主要的计算开销,每个卷积核可看成一个4维张量,通过运用矩阵或张量分解来估算网络模型中主要成分的参数,去除其余冗余参数。
- 网络结构变换。
- 知识精炼。
- 网络剪枝与权值共享。
二、深度卷积神经网络基础
深度卷积神经网络是一种可以从图像中自动学习多层特征的技术,因其具备优秀的
表征能力,被广泛应用于计算机视觉领域。典型的卷积神经网络结构通常包括输入层、卷积层(Convolution Layer)、池化层(Pooling Layer)、全连接层(Full Connected Layer)和输出层等模块,其基本结构如下图所示。
- 卷积层(Convolutional Layer):通过使用多种滤波器对输入数据提取多种不同类型的特征,每个滤波器对输入数据进行卷积操作得到一种特征图。
- 池化层(Pooling Layer ):对输入的特征图进行下采样处理,该处理是将在一个小区域内的某个特定值作为输出值,可实现特征降维,简化网络计算复杂度。常见的采样方式有最大池化、平均池化和随机池化。
- 全连接层(Fully Connected Layer ):顾名思义就是以全连接的方式与前一个网络层进行相连,即是全连接层中的每个神经元均与前一层的全部神经元相连。可知,通常全连接层占据网络模型的网络连接参数数量最多。
三、基于网络权重初始和最终状态差异的冗余权重去除方法
3.1 网络剪枝
网络剪枝早期指去除网络中冗余的参数,减小网络的复杂度,抑制过拟合和提高网
络的泛化能力。在卷积神经网络方面,网络剪枝主要是去除网络的冗余连接,减少多余的浮点计算,提高网络的运算效率。一般而言,目前所得到的网络模型通常包含大量冗余的参数,如何有效地解决卷积神经网络存在参数冗余问题,减少计算和存储资源的浪费。有的文献指出在保证网络准确率不损失的条件下,采用三个步骤进行网络剪枝,具体流程如下图所示。
- 网络连接的学习,使用常规的训练方法得到一个准确率不错的网络模型。
- 网络连接的剪枝,一般而言,权值绝对值越大的连接对网络准确率的影响越大。通过将小于某一阂值的权值置零,从而实现网络剪枝,去除网络的冗余连接
- 网络连接的再训练,由于剪枝后网络模型的准确率会有所下降,故需要对剪枝后的网络模型进行再训练。经过剪枝操作后的网络模型不仅会减少层与层间神经元的连接,而且会去除每层网络中的部分神经元。剪枝前后的网络模型效果图,如下图所示。
3.2 算法原理和步骤
在卷积神经网络结构不变时,网络模型的准确率主要取决于网络的重要连接参数。
在充分训练的网络模型中,权值大的连接参数比权值小的连接参数对网络准确率的影响更大。与初始网络权重相比,网络模型在训练过程中学习到重要连接参数会逐渐增多,而不重要连接参数会逐渐减少,以确保网络准确度的不断提升。因此,网络模型的最终状态比初始状态拥有更多权值较大的重要连接参数和权值较小的不重要连接参数。网络重要连接参数不仅与其权值大小有关,还与权值变化幅度相关。有的文献根据网络连接参数的权值更新程度将其划分为动态参数和静态参数,其中,动态参数在整个学习过程频繁地更新,而静态参数几乎不会改变。冗余参数相比,网络重要连接参数的更新程度较为频繁、幅度变化更大。
本文根据网络权重的起止状态差异,提出了一种新的网络重要连接参数的选取方法。通过每层网络权重的初始状态和最终状态的网络连接参数在各个区间的变化情况,进行每层网络重要连接参数的分布范围的判断。具体而言,以每层网络连接参数为单位,根据各区间网络连接参数在训练过程中的变化大小和变化快慢,以选取各区间网络连接参数变化显著的点作为重要网络连接参数的阂值。具体操作如下:
- 分别对每层网络权重的初始状态和最终状态进行直方图统计并进行曲线拟合,分别得到初始状态和最终状态的网络权重直方图拟合曲线。通过将初始状态的网络权重直方图拟合曲线减去最终状态的网络权重直方图拟合曲线,得到网络权重直方图的差值曲线以反映各区间网络连接参数在训练过程中的变化大小。
- 对网络权重直方图的差值曲线进行求导,得到差值变化曲线以反映各区间网络连接参数在训练过程中的变化快慢。
- 选取差值变化曲线的极值点作为重要网络连接参数正负阂值的候选值,并根据剪枝后网络准确度筛选重要网络连接参数正负阂值。
- 根据每层网络重要网络连接参数阂值进行相应的网络剪枝和再训练。
3.3 小结
针对重要连接参数的选择问题,本文提出了通过判断每层网络权重的初始状态和最终状态的差异,确定重要与不重要连接参数的阂值,并根据该阂值和权重幅度变化进行网络重要的连接参数的选取,最后通过网络再训练的方法减少网络剪枝引起网络准确率的下降,从而有效地实现网络冗余参数的去除。该方法在基于MNIST的LeNet-5模型、基于Imagenet的AlexNet模型和基于CASIA-WebFace的Light-CNN模型上,在基本保持原有模型准确率的情况下,可分别将这3个模型的网络权重数量减少为原有网络权重总数量的7.68%, 16.73%和30.52%。
四、基于残差网络和MFM激活函数的人脸识别
4.1 残差网络结构
该网络结构可有效地改善深层网络结构所造成梯度消失的问题,实现对更深层网络结构的训练。 残差网络模块通过捷径连接(shortcut connection),将模块的输入与输出对应的像素相加,这不仅不需要新的参数和计算复杂度,还使得模型的训练速度加快和准确度增加,并有效地解决深层网络结构的退化问题。
4.2 MFM激活函数
ReLU激活函数能有效地克服Sigmoid和Tanh激活函数中存在梯度消失问题,然而,ReLU函数会将不处于激活状态的信息设置为0,可能会损失一些信息,因此,文献提出了MFM(Max-Feature-Map)激活函数。具体方式是通过比较两个特征图的同一位置的值,选择较大的值作为输出值,与ReLU激活函数相同,每个卷积层经过MFM激活函数处理后会得到稀疏的梯度,但不同的是,ReLU激活函数会输出稀疏的特征,而MFM激活函数能得到紧凑的特征并实现特征降维的效果。
4.3 A-Softmax损失函数
R深度卷积神经网络在人脸识别领域通常使用Softmax损失函数进行人脸特征学习,
但是Softmax损失函数只能学习可分离但不具有足够可判别性的人脸特征。使用欧氏间距学习特征似乎是被大家广泛认可的选择,但问题是欧氏间距是否适合学习有判别性的人脸特征。针对该问题,有人提出了A-Softmax(Angular Softmax)损失函数,他的主要思想是将weight归一化,使得特征上的点映射到单位超球面上。
4.4 小结
首先简要地叙述本章使用的网络结构,其中包括残差网络结构、MFM激活函数和A-Softmax损失函数。接着简单介绍残差网络模块和MFM激活函数模块这两种网络模块的具体结构和在Caffe深度学习平台上的实现,并采用这两种网络模块搭建一个在人脸识别应用的深度卷积神经网络。然后,通过使用MTCNN算法和仿映射变换实现人脸图片的对齐和裁剪,接着介绍训练参数的具体设置和实验流程。最后,通过实验结果表明本文算法在公开数据库CASIA-WebFace上训练取得不错的性能,可在LFW上达到99.22%的准确率。
五、深度网络模型压缩在人脸识别的应用
深度卷积神经网络模型主要需要训练的网络层包括卷积层和全连接层。卷积层具有局部感知、权值共享的特点,需要训练的参数不多,但卷积操作在每一次网络前向计算中需要大量计算资源,耗时较大;相反,全连接层占用网络前向计算时间不多,但需要训练参数的数量可占整个网络参数的80%以上。为了解决深度网络模型对设备计算能力和存储要求都比较高的问题,Han等人在ICLR 2016中提出的一种网络模型的深度压缩算法。该算法主要通过网络剪枝、权重量化和哈夫曼编码压缩这三个步骤,在保证压缩后的网络准确率基本不下降的前提下,将一个己训练好的网络模型压缩至原始大小的2%~3%。
本文算法主要是基于Han所提出的深度网络模型压缩算法的框架进行改善。由于Han的深度网络模型压缩算法的网络剪枝步骤在关于如何确定网络连接参数的重要性方面没有给出明确和有效的方法,为了有效地判断网络的重要连接参数,实现网络中非重要连接参数的去除,本文在第三章提出了基于网络权重初始和最终状态的冗余权重去除方法,通过实验结果表明该方法可有效去除网络中的冗余权重,因此,本文将该方法取代Han的算法中的网络剪枝操作。