文章编号:1006-3080(2022)01-0087-12DOI:  10.14135/jki.1006-3080.20201127005
基于恒虚警率的深度神经网络Dropout 正则化方法
肖家麟,  李    钰,  袁晴龙,  唐志祺
(华东理工大学信息科学与工程学院,上海 200237)
摘要:为进一步提高深度神经网络算法在嵌入式机器人系统中的物体识别性能,提出了一种基于恒虚警率检测的深度神经网络Dropout 正则化方法(CFAR-Dropout )。首先,通过对权重进行量化,将权重和激活从浮点数减少到二进制值;然后,设计了一个恒虚警检测器(CFAR ),保持一定的虚警率,自适应地删减一些神经元节点,优化参与计算的神经元节点;最后,在嵌入式平台PYNQ-Z2上,使用基于VGG16的优化模型对算法的物体识别性能进行实验验证。实验结果表明,与使用经典的Dropout 正则化方法相比,CFAR-Dropout 正则化方法的错误率降低了约2%,有效防止了过拟合;与原本的网络结构相比,参数量所占内存减少到8%左右,有效防止了过参数化。
关键词:物体识别;嵌入式;深度神经网络;恒虚警率;正则化中图分类号:TP391
文献标志码:A
深度神经网络具有强大的特征提取能力,在机器学习领域表现优异[1]。将该类算法部署于嵌入式设备上,从而实现工业现场的物体识别,已经成为众多工业智能装备、机器人系统的迫切需求。深度神经网络模型拥有大量的可训练参数,并且通过增加网络层数和卷积核数量可以进一步提升其性能[2]。然而,随着层数和卷积核数量的增加,模型变得更加复杂。而嵌入式系统的硬件计算资源有限,会造成性能与资源之间的矛盾,主要表现在两个方面:一方面,大量参数的学习受限于训练数据的规模,过参数化会导致模型冗余的问题。例如,VGG16模型的参数量可达到552 MB [3];另一方面,当训练数据不足时会出现过拟合现象,导致模型泛化能力变差。因此,减小过参数化和过拟合问题的影响是深度神经网络嵌入式应用研究的重点。随着嵌入式硬件的性能提升和机器学习新算法的不断提出,对实时嵌入式物体识别算法网络结构正则化方法的研究也在不断深入。
在正则化方法中,Dropout 是非常有效的技术,能够有效防止过拟合[1]。该方法在每轮迭代中,将网络中的神经元以一定的概率丢弃,训练完成后,整体
的网络架构还会被使用。文献[1]建议输入层的丢弃概率为0.2,隐藏层的丢弃概率为0.5,输出层则不需要Dropout 。由于在相同层中节点被删除的概率相等,减少了神经元之间复杂的共适应关系,因此,每次神经元的合作运算都是全新的,不会依赖于某个神经元或某种结构,在训练中不会只依赖数据的某个特征。Salehinejad 等[4]提出了一种自适应技术,降低了由于数据集不平衡和模型参数初始化过于接近训练数据所造成的不利影响。Chen 等[5]提出了DropCluster ,在卷积层输出中寻相关特征的模型权重。
Qi 等[6]提出使用基于变分推理的Dropout 正则化将变分递归神经网络(RNN )推广到更高级的聚类,并在每次迭代时随机删除聚类;然后在模型训练过程中对聚类进行学习和更新,使它们适应数据和RNN 架构,如门控递归单元(GRU )。Luo 等[7]提出了一种基于Dropout 正则化的多尺度融合(MSF )Dropout 方法,首先训练几组具有不同Dropout 率组合的网络模型,然后使用改进的遗传算法来计算每个网络模型的最优规模。Tam 等[8]提出使用神经网络的Fiedler 值作为一个工具进行正则化。Tseng 等[9]
收稿日期: 2020-11-27
作者简介: 肖家麟(1995—),男,湖南长沙人,硕士生,主要研究方向为智能传感与信息处理、物体识别。E-mail :********************.edu 通信联系人: 李 钰,E-mail :**************
引用本文:  肖家麟, 李    钰, 袁晴龙, 等. 基于恒虚警率的深度神经网络Dropout 正则化方法[J]. 华东理工大学学报(自然科学版), 2022, 48(1): 87-98.Citation : XIAO  Jialin, LI  Yu, YUAN  Qinglong, et  al . Dropout  Regularization  Method  of  Convolutional  Neural  Network  Based  on  Constant  False  Alarm
Rate[J]. Journal of East China University of Science and Technology, 2022, 48(1): 87-98.
Vol. 48  No. 1华 东 理 工 大 学 学 报(自 然 科 学 版)
2022-02
Journal of East China University of Science and Technology
87
All Rights Reserved.
提出了Gradient Dropout方法,在深度神经网络参数的内环优化中随机降低梯度,从而降低基于梯度的元学习的过拟合风险。Steverson等[10]开发了一个测试框架来评估机器学习网络防御的对抗性鲁棒性,使用了深度强化学习和对抗性自然语言处理的技术,实验结果发现更高概率的Dropout会提高鲁棒性。Cai等[11]提出在卷积操作之前Dropout会有更好的正则化效果。胡辉等[12]提出了一种将Dropblock 算法和Dropout算法相结合的正则化策略,实现对整个卷积分类网络的浅层、中层和深层网络进行正则化。这种方法可有效加快分类网络的收敛速度和提升稳定性,还能有效提高深度卷积分类网络的分类准确率。钟忺等[13]提出了多尺度融合Dropout(MSF Dropout)方法,这种方法利用验证数据集对多个不同尺度的网络模型进行训练,通过学习得到符合该数据集特征的最佳尺度组合。MSF Dropout具备自适应数据集的能力,网络能够使用最佳尺度来进行高精确度的预测。当选择了合适的尺度数量和尺度梯度后,这种方法的预测精度获得了明显的提升,还能很好地控制计算时间。刘磊[14]提出了一种统一的Dropout算法框架,将基于不同分布采样的Dropout方法统一到一个基于β分布的Dropout框架中,进而将Dropout
方法选择问题转变为一个参数调节问题。这种方法被应用在视网膜病变的检测场景下,验证了鲁棒性和先进性。
为了增强模型泛化能力,Wan等[15]提出将每个神经元的权重或偏置以一定的概率设置为0,而不是将神经元的输出设置为0。为简化网络结构,Molchanov等[16]提出变分Dropout正则化方法,基本思想是同时对全连接层和卷积层进行稀疏化,该方法对性能的影响很小,大大减少了标准卷积网络的参数。Srivastava等[17]提出了一种基于贝叶斯理论的方法,将Dropout解释为深度高斯过程的贝叶斯近似,总结出了一种估计神经网络输出置信度的简单方法,此方法广泛应用在不确定性估计中。Provilkov 等[18]提出对BPE算法进行Dropout正则化(BPE-Dropout),使性能获得了很大的提升。
深度神经网络的参数众多,其中有些参数对最终的输出结果贡献不大,这些参数称为冗余参数。为此,一些学者提出了利用剪枝或量化来简化网络结构的方法。文献[19]提出对卷积层进行完全的剪枝,但是对卷积输出层进行剪枝时,也会对网络层造成影响。Courbariaux等[20]提出了二值化神经网络(BNN),将参数进行量化,这种方法既快速又节能,但由于参数的精度下降,一定程度上会降低识别的正确率。
以上防止过参数化和过拟合的研究为提高深度神经网络的性能提供了很好的思路,然而对自适应剪枝和针对特定嵌入式平台的研究还值得进一步深入。受恒虚警检测方法启发,本文提出了一种基于恒虚警率
检测的Dropout方法(CFAR-Dropout)。其主要思想是通过设计一个恒虚警检测器,计算每个节点的激活值,利用恒虚警思想自适应地调整阈值,从而决定哪些节点需要Dropout。该方法在防止过拟合的同时,其本质上是在Dropout时对不同样本进行了区分,使系统对样本的局部结构特征更加敏感,能趋向于保留对特征更感兴趣的节点。
1    网络模型与正则化方法
1.1    网络模型
模型和计算平台的契合程度决定了模型的实际表现。本文使用的平台是嵌入式平台PYNQ-Z2,考虑这个平台的运算能力,创建了一种基于VGG16(Visual Geometry Group Network-16)的变种卷积网络模型。VGG16模型[3]包含13层卷积层、5层池化层、3层全连接层。卷积层和全连接层都有权重系数,被称为权重层,共16个权重层(卷积-卷积-池化-卷积-卷积-池化-卷积-卷积-卷积-池化-卷积-卷积-卷积-池化-卷积-卷积-卷积-池化-全连接-全连接-全连接);池化层则不涉及权重。该模型中13层卷积层和5层池化层负责进行特征的提取,最后3层全连接层负责完成分类任务,其网络结构参数如表1所示。这种模型的优点是结构简单、权重参数较少,能在一定程度上防止过拟合,但存在需要训练的特征数量大、训练时间过长和调参难度大等问题。由于需要的特征存储容量大,不利于直接部署在嵌入式系统中。因此,需要对参数进行量化操作,减少运算量。
1.2    Dropout正则化方法
Dropout作为消除冗余的重要方法,自从提出就得到了广泛的应用,其工作原理如图1所示。图1(a)示出了原神经网络的节点连接状态,图1(b)示出了Dropout正则化后的节点连接状态,图中虚线圆是被丢弃的节点,虚线箭头是节省的运算通路,可以直观地感受到通过Dropout正则化,运算量将大大减少。
经过Dropout正则化产生的局部网络本身属于原网络的一部分,虽然总的网络个数增加了,但参数却比原网络更少,能有效防止模型过拟合问题。因此,在保持训练复杂度的情况下可以同时得到多个网络的训练结果,当测试时再将这些局部网络组合起
88华 东 理 工 大 学 学 报(自 然 科 学 版)第 48 卷All Rights Reserved.
来,可以提升网络的泛化性。另一方面,神经网络的节点之间相互影响,很容易拟合到一些噪声,可能产生过拟合现象。Dropout 正则化随机选择节点删除,打破了这种相互影响,能有效防止模型的过拟合问
题[21]。这个过程可以表示为
式中:f (x )为激活函数;x 是该层的输入;W 是该层的权值矩阵;y 为该层的输出;m 为该层的掩膜(mask ),mask 中每个元素为1的概率为p 。
Wan 等[15]提出的Dropconnect 方法是对Dropout 正则化的一种泛化。与式(1)不同的是,式(2)中的M 是一个掩模矩阵,相乘后权重以一定的概率被设置为0和1。Dropconnect 正则化方法在训练时网络层的输出可以被写成
1.3    参数的优化方法
深度神经网络训练期间更新生成的参数包含大量冗余信息。对参数的量化主要包括神经网络层的3个方面:输入激活、突触权重和输出激活。如果3个部分都是二进制的,称之为完全二值化;具有一个或两个部分是二进制的情况称为部分二值化[2]。本文对权重进行二值化。
F (ω)f 1,f 2,···,f n 深度神经网络中的目标函数  可以分解为多个函数  。考虑经验风险最小化,即
f 1,f 2,···,f n 本文采用的神经网络优化方法是随机梯度下降法(SGD ),α
t 为速率,它在每次迭代中从 中随机选择一个函数,那么
ωQ (ω)为了使用低精度的权重表示来训练网络,需要
使用量化函数Q (x )来将  量化为  。通过确定
性舍入,均匀确定量化函数,可以获得最接近浮点值的量化值:
表 1    网络结构参数表Table 1    Network structure
Type Channel Kernel CONV1643×3CONV2643×3MAXPOOL1642×2CONV31283×3CONV41283×3MAXPOOL21282×2CONV52563×3
CONV62563×3CONV72563×3MAXPOOL32562×2CONV85123×3CONV95123×3CONV105123×3MAXPOOL45122×2CONV115123×3CONV125123×3CONV13
5123×3MAXPOOL55122×2FC1(
Dropout )//FC2(Dropout )
//FC3
/
/
图 1    Dropout 正则化前后对比Fig. 1    Comparison before and after Dropout
第 1 期肖家麟,等:基于恒虚警率的深度神经网络Dropout 正则化方法89
All Rights Reserved.
ω∈{−1,1}Q d (ω)=sign(ω)其中:Δ表示量化步长或分辨率,即可表示的最小正数。考虑二进制权重时,所有权重都被约束为两个值  ,并且统一舍入成为  。然后,通过更新来得到新的量化权重:
ωb 其中:  表示低精度权重。使用全精度累积梯度更新,并在梯度计算之前对权重进行量化,将精度权值约束为{−1, 1},即
完成参数的二值化后,可以显著减少计算参数权重需要消耗的资源,但实验结果的准确性会有一定程度的下降。为了降低这种负面影响,可以适度地增加网络层数,这就需要在实验中进行权衡。
2    基于恒虚警率的Dropout 正则化方法
2.1    基于恒虚警率检测的Dropout 正则化方法(CFAR-Dropout )的基本原理
恒虚警率检测是利用信号和噪声的统计特性等信息来建立最佳判决的数学理论,常用在雷达系统中。它主要解决在受噪声干扰的观测中有无信号的判决问题[22]。恒虚警检测的基本流程是在保持虚警
概率(α)为恒定的条件下对接收机输出的信号和噪声进行判别,以确定目标信号是否存在。通过恒虚警检测保持恒虚警率,可以有效地抗干扰。
在雷达信号检测中,当外界干扰强度变化时,雷
达能自动调整其灵敏度,使雷达的虚警概率保持不变,这种特性称为恒虚警率特性。本文受此启发提出了基于恒虚警率检测的Dropout 正则化方法。设置一个恒虚警率,将深度神经网络神经元的输入看作输入信号,将神经元的激活值看作输出信号。这种方法可以在输入数据不同和输出结果分布不均匀时自适应调整阈值,使分类效果依然良好。
y =f (x )X =[X 1,X 2,X 3,···,X m ]ω=[ω1,ω2,ω3,···,ωm ]若网络的激活函数为  ,设其输入
,权重  ,输
出Y 为
那么,节点的激活值为
在Dropout 正则化方法中,M 是一个服从伯努利
分布取值的掩模矩阵,其取值概率设置之后是固定的[1]。在稀疏性Dropout 正则化方法中,节点以激活值的中值为阈值取舍,其阈值也是固定的[15]。此时,M 中的元素值取决于节点的激活值。当节点的激活值大于阈值λ时,m ij 取1;激活值小于阈值β时,m ij 取0。每次进行恒虚警检测后,系统可以自适应地调整λ值,λ值在每一层都可能不同。
在实验中,神经网络训练需要设置权重初始值,选取的初始值应当尽量使各层激活值的分布有适当的广度。分别使用标准差为1和0.01的高斯分布作为权重初始值时,各层激活值的分布如图2所示。
101010101010101010101010101010101
Activations
2345678910111213141516
800 000700 000600 000500 000400 000300 000200 000101010101010101010101010101010101
Activations
2345678910111213141516
100 000
(a) (b)
350 000300 000250 000200 000150 000100 00050 000
图 2    权重初始值是标准差为1(a )和0.01(b )的高斯分布时激活值的分布
Fig. 2    Initial weight value is the distribution with the activation value with Gaussian distribution of standard deviations 1(a ) and 0.01(b )
图2(a)显示标准差为1时,各层激活值呈偏向0和1的分布。偏向0和1的数据分布会造成反向传播中梯度的值不断变小,最后消失,会导致靠近输入层的隐藏层权值更新缓慢或者更新停滞。这就导
致在训练时,只等价于后面几层的浅层网络的学习,这种现象称为梯度消失。图2(b)显示标准差为0.01时,不同层的激活值过于集中在一个区域,这种现象意味着激活值表现的特征基本相同,很多特征被忽
90华 东 理 工 大 学 学 报(自 然 科 学 版)第 48 卷
All Rights Reserved.
1/√
n 略,最后的识别效果会受影响。为了避免这两种现象,使每一层能根据当前状态自动调整,当前一层节
点数为n 时,将初始值设为标准差为  的高斯分布。此时激活值的分布如图3所示。
101010101010101010101010101010101
Activations
2345678910111213141516
10 000
20 00030 00040 00050 0001/√
n 图 3    权重初始值是标准差为  的高斯分布时激活值
的分布
1/√
n
Fig. 3    Initial  value
of  the  weight  is  the  distribution  of  the
activation  value  with  a  Gaussian  distribution  of  standard
deviation
1/√
n 从图3中可以发现,将权重初始值设为标准差
为  的高斯分布时,激活值的分布更有广度,神经网络既不会梯度消失,也不会过于关注某些特征,
正则化网络
能更高效地学习。
{R 1,R 2,···,R m }R l j (j =n −i )对模型中的某一层进行恒虚警检测时,首先,进行初始化,λ取集合  的中值;然后,将激活值大于等于λ的节点定义为高激活值节点R i h ,小于λ的节点定义为低激活值节点  ,公式
如下:
理论上,高激活值的节点代表对样本感兴趣程度高的部分,低激活值的节点代表对样本感兴趣程度低的部分,所以低激活值节点R j l 应该删除。但在实际应用中,数据分布并不均匀,中值并不能很好地区分高低激活,所以本文提出了基于恒虚警检测的Dropout 正则化方法。
在雷达系统中,当接收机有信号输入(D 0),而检测器判为无信号(H 1)时,称为漏警,漏警率为P M ;当接收机无信号输入(D 1),而检测器判为有信号(H 0)时,称为虚警,虚警率为P F 。这两个概率都是越小越好,但理论上两者无法同时达到最小。在其他条件一定时,虚警概率越小,漏警概率就会越大;漏警概率越小,虚警概率就会越大。转化为统计的语言就是一个假设检验犯第一类错误和第二类错误的概率,无法同时变小。所以,可采用的方法是给定其中
一个错误的概率不超过某个值时,让另一个错误的概率尽量小。本文中让虚警率恒定,使漏警率最小,从而求得阈值。虚警率P F 和漏警率P M 分别为
利用拉格朗日乘子λ构造目标函数
当P F =α时,漏警率可以达到最小值。此时,目标函数J 对输入z 求导。可得
然后,可由式(14)求出阈值λ
本文中假定激活值数据服从高斯分布,如果某个节点为高激活值节点,但判为低激活值节点,称为漏警R hl 。如果某个节点为低激活值节点,但判为高激活值节点,这种情况称为虚警R lh 。虚警率P F 和漏
警率P M 分别为
由P F =α,可以求出R 0,则λ为
经过以上步骤,得到调整后的阈值,可以将节点分为高激活值节点和低激活值节点。
γ(0⩽γ⩽1)文献[23]指出相关性接近0的弱相关节点对相关性高的节点有补充作用,所以低激活节点并非全无用。若保留比例为  ,则相应的高激活值节点删除的比率为1−γ。高激活值节点的掩模矩阵中的元素以伯努利概率P +取值为0或1,低激活值节点的掩模矩阵中的元素以伯努利概率P −取值为0或1。
按以下方式处理节点
其中:S 为保留节点的比率;R +为保留的节点;R −为删除的节点。CFAR -Dropout 的原理如图4所示。
当进入新的一层进行计算时,输入发生变化,依旧需要将虚警率保持为α,所以将α称为恒虚警率。
第 1 期肖家麟,等:基于恒虚警率的深度神经网络Dropout 正则化方法91
All Rights Reserved.

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。