APP下载

一种动态构建深度信念网络模型方法

2018-04-19杨小兵

中国计量大学学报 2018年1期
关键词:隐层数目重构

吴 强,杨小兵

(中国计量大学 信息工程学院,浙江 杭州 310018)

人工神经网络[1](Artifical Neural Network, ANN)是20世纪80年代人工智能领域兴起的研究热点,它是由脑科学、神经学和计算机科学等学科交叉所形成的.通过模拟人脑处理信息的方式,建立某种简单的连接模型,使得模型能够像人脑一样有着学习和记忆能力,并以此来处理未知事物.近年来,随着人工神经网络研究工作的不断深入,人工神经网络已经被广泛应用于各个领域,如:模式识别[2],人脸识别[3],预测估计[4]等,并取得了不错的成果.20世纪90年代,各种机器学习[5](Machine Learning, ML)算法层出不穷,如:支持向量机[6](Support Vector Machine, SVM),逻辑回归[7](Logistic Regression, LR)等,而人工神经网络却发展缓慢.其主要原因是浅层人工神经拟合复杂函数能力较差,而深层次人神经神经网络训练困难.直到2006年,机器学习领域的泰斗Geoffrey Hinton和他的学生Ruslan Salakhutdinov提出了一种高效的训练深层次人工神经网络的方法,使得人工神经网络又再次活跃起来并延伸到一个崭新的领域——深度学习[8](Deep Learning, DL).深度学习作为一种学习复杂层次概率模型的方法,自提出以来就受到学者们的广泛关注,其最主要的模型之一深度信念网络更是应用广泛,已经成功应用于许多机器学习的任务中.

尽管深度信念网络已经广泛应用于各个领域,但仍存在一些问题需要解决.目前深度信念网络模型缺乏有效的方法来确定网络层数及隐层神经元数目,大多依靠学者的经验来人工确定.不当的网络深度及隐层神经元数目,不仅使得模型训练困难,而且泛化能力差,不能充分发挥深度信念网络模型的优势.文献[9]提出根据重构误差来确定网络模型深度,但依据重构误差确定网络深度时倾向于选择网络深度较大的模型,且构建模型时隐层神经元数目仍是根据经验确定,模型预测精度无法达到最优.本文受贪心算法思想启发,在构建深度信念网络模型时,并非一开始就确定了网络模型深度和隐层神经元数目,而是逐层增加网络层数,并在增加过程中动态调整当前层神经元数目,在当前层模型达到最优后,再去构建下一层,如此循环,直到模型构建完成.

1 深度信念网络

随着深度学习的不断发展,出现了越来越多的深层次神经网络模型,其中深度信念网络模型的提出是深度学习领域发展过程中一个里程碑式的突破.在2006年之前,训练人工神经网络的算法多为反向传播算法[10](Back Propagation, BP),其训练效率低且容易陷入局部最小,这就大大限制了深层次神经网络模型的发展.直到2006年,Hinton提出了以逐层无监督贪婪学习算法为核心的深度信念网络[11]模型,通过组合多个完成预训练的简单模型,大大减少了优化复杂网络权值的时间复杂度,使得模型易于训练,从而有效提高模型预测或分类的准确率.

1.1 受限玻尔兹曼机

受限玻尔兹曼机[12](Restricted Boltzmann Machine, RBM)是一种包含两层节点的随机神经网络模型.层间全连接,层内无连接,其结构如图1.

图1 受限玻尔兹曼机Figure 1 Resteicted Boltzmann Machine

RBM是一种基于能量的模型,它的能量函数为

(1)

其中θ={w,a,b}为未知参数,vihj分别表示第i个可见单元的值和第j个隐藏单元的值,aibj分别表示第i个可见单元和第j个隐藏单元的偏置,wij为神经元i和j之间的连接权值.为了方便讨论,假设所有可见单元和隐藏单元的取值均为0或1.根据(1)式的能量函数,可以得到(v,h)的联合概率分布为:

(2)

(3)

其中Z(θ)为归一化因子.

由于RBM同一层节点间无连接,故同一层中的节点相互独立.在已知v或h时,hj或vi的值为1的条件概率分别为:

(4)

(5)

其中sigm为激活函数,其函数表达式为

(6)

根据公式(4)和(5),在已知v的条件下,可以求出h的概率分布;反之,也能通过h的概率分布来对v进行重构.

1.2 RBM训练过程

上一节给出了RBM的联合概率分布,其中含有未知参数θ,RBM的训练过程,实际上就是求出一个能最大化拟合训练样本的概率分布.RBM是一种概率生成模型,可以通过极大似然估计法来寻找参数θ,使得样本在该分布下概率最大.

通过最大化训练样本的似然函数来得到RBM的未知参数,这要求对所有的训练样本进行遍历,当样本数据量较大时,计算复杂度非常高,难以实现.故实际计算时大多采用Gibbs[13]采样方法来拟合数据输入,简化的Gibbs采样方法即Hinton在2002年提出的名为对比散度[14](Contrastive Divergence,,CD)的算法,它只需要很少的采样步骤就能得到良好的近似,CD算法现已成为训练RBM的标准算法.

1.3 深度信念网络模型

深度信念网络(Deep Belief Network, DBN)是由若干个受限波尔兹曼机依次堆叠所形成的深度学习模型,其结构如图2.

图2 深度信念网络模型Figure 2 Deep belief network model

深度信念网络有强大的特征学习能力.学习时每两层节点构成一个RBM,先用CD算法训练第一层RBM,得到第一层RBM的参数;然后固定该参数,将此RBM的输出作为下一个RBM的输入,继续训练下一层RBM,如此循环,直到整个网络训练完成.最后,再使用有标签的数据来反向微调整个网络的参数.利用无监督贪婪算法对网络模型进行预训练,使得网络的初始参数处于一个较优的状态,避免了网络因随机初始化参数而陷入局部最小的问题,且深层次的网络结构保证了模型能够学习到底层特征并形成抽象的高层表示,使得模型在预测或分类方面的结果更加准确.

2 模型构建方法

2.1 验证集错误分类率

验证集错误分类率(Error Classification Rate of the Verification Set, ECR),即模型预训练完成后,在进行反向微调前,将模型用于验证集进行分类,错误分类的个数所占的比例,即

(7)

其中I为指示函数:

(8)

yi表示模型预测值,ci为样本标签值,N为验证集样本数量.

对相同的数据集,当网络模型的结构较优时,即网络模型深度和神经元数目较优时,其分类准确率较高;反之,其分类准确率较低.验证集错误分类率在一定程度上能够反映模型对训练数据的拟合程度,验证集错误分类率越小,模型对数据的拟合度就越高,其泛化能力就越强.因此,可以根据验证集错误分类率来确定网络层数和神经元数目.

2.2 模型构建过程

前面提到,深度信念网络模型的训练算法为无监督贪心算法,它对不同的网络模型深度及隐层神经元数目,网络的训练误差是不同的,其泛化能力也有很大区别.因此,在解决实际问题时,如何选择合适的网络层数以及神经元数目是需要解决的第一个问题.本文在此引入两条引理[9]作为理论依据:

引理1DBN的训练精度随着网络深度的增加提高

引理2神经网络的训练误差随着神经元数目增加呈减小趋势

根据上述引理,随着网络深度和神经元数目的增加,网络训练误差会降低,其验证集错误分类率会提高,达到最优值后,模型过拟合,其验证集错误分类率会迅速降低.因此,可以从单隐层开始,根据验证集错误分类率逐层增加网络深度和神经元数目.

为了构建准确的模型,这里需要引入两个预设阈值参数:

1)模型最大分类错误率ε:即对给定数据集,模型错误分类率最大为ε,ε用来控制模型的精确度.根据不同的实验要求,可以预设不同的ε来使模型达到精度要求;

2)验证集错误率最大差值α:即当前模型的验证集错误分类率减去上一次模型的验证集错误分类率差值最大为α.前面提到,当模型过拟合时,验证集错误分类率会迅速增大.因此,可以通过设定合适的α值防止模型过拟合.

模型详细构建步骤如下:

1)初始化当前隐层神经元数目,计算当前验证集错误分类率,设置阈值ε和α;

2)神经元个数增加n,计算当前验证集错误分类率,若小于ε,模型构建完成.否则,转入下一步;

3)计算当前验证集错误分类率与上一次验证集错误分类率的差值,若小于α,返回步骤2,否则网络深度增加一层,返回步骤1.

首先设置网络隐层数为1,初始化隐层神经元数目,计算验证集错误分类率.增加神经元个数,计算当前验证集错误分类率,若当前验证集错误率与上一次验证集错误率之差小于给定阈值α,则继续增加神经元个数.否则,将网络深度加一层,再用此方法确定下一层神经元数目.依此类推,直到验证集错误分类率小于ε时,停止增加网络深度和神经元数目.模型构建过程如图3.

图3 模型构建流程图Figure 3 Model construction process

2.3 模型调整

在上一节给出了模型的构建方法,网络深度及隐层神经元数目都已经确定,网络模型结构已接近最优.但在根据验证集错误分类率调整神经元数目时,神经元数目每次增加的数量均为n,模型的最优神经元数目可能在确定的数值附近,因此,需要对神经元数目进行微调.

重构误差(Reconstruction Error, RE)是训练数据经过RBM的分布进行一次Gibbs转移以后得到的值与实际值之间的差异,即:

(9)

重构误差反映了模型特征提取的能力.当网络模型神经元数目较优时,其特征提取能力较强,相应地重构误差值较小;反之,重构误差值较大.因此,可以根据重构误差来微调各层神经元数目.

假设确定的网络模型隐层结构为[h1,h2…,hm],其中h1,h2…,hm表示各隐层神经元数目,m表示隐藏层数量.对每一个隐层,固定其它层神经元数目,将当前层神经元数目hi从hi-n变化到hi+n,计算重构误差值,将最小重构误差值对应的神经元的值设为当前层神经元数目.至此,模型调整完成.

由于每次模型的构建都是建立在当前层最优的基础上,故模型结构优于按照经验构建的模型,模型经过微调后,已接近最优状态.

3 实验分析

3.1 MNIST手写字体实验

为了验证模型构建方法的可行性,利用MNIST手写字体数据集设计了一个模型构建实验.MNIST数据集来源于美国国家标准与技术研究所,训练集包含60 000多个样本,测试集包含10 000多个样本,每个样本由28×28的像素点构成.选取10 000个样本作为训练集,2 000个样本作为测试集,2 000个样本作为验证集用来构建深度信念网络模型.

首先初始化网络隐藏层数为1,隐层神经元数目为50个;要求模型分类正确率要达到90%以上,即ε的值设为0.1;通过多次实验,当α的值大于0.03时,即当前验证集错误分类率减去上一次错误分类率之差大于0.03时,模型过拟合,其准确率迅速降低,因此α的值设为0.03,神经元数目每次增加10个,第一层验证集错误分类率随着神经元数目的变化如图4.

图4 第一隐层验证集错误分类率Figure 4 Verification set error classificationrate on the first hidden layer

为了方便叙述,设当前模型验证集错误分类率减去上一次模型验证集错误分类率的值为BER.

从图4可以看出,随着神经元数目的增加,验证集分类错误率呈震荡减小的趋势.当神经元数目为小于180时,所有BER的值均小于0.03,再次增加神经元数目,验证集错误分类率反而增加,而此时BER值大于0.03.因此,停止增加神经元个数,确定第一层神经元个数为180个,而此时验证集分类错误率为0.142 0,大于预设值0.1,因此,固定第一层网络参数,将网络模型深度加1,继续构建网络模型.

同样的,仍初始化第二层网络神经元个数为50个,每次增加10个,其验证集分类误差如图5.

图5 第二隐层验证集错误分类率Figure 5 Verification set error classificationrate on the second hidden layer

观察图5可知,验证集错误分类率在神经元数目达到160个时最小,再次增加神经元个数,验证集错误分类率的差大于预设值0.03,而此时验证集错误分类率为0.119 6仍大于0.1,不满足预设条件.因此,固定第一层和第二层神经元数目,再继续将模型深度加1层.

同理,第三层验证集错误分类如图6.

图6 第三隐层验证集错误分类率Figure 6 Verification set error classificationrate on the third hidden layer

当第三层神经元数目为180时,此时验证集错误分类率为0.089 5<0.1,此时模型满足精度要求,停止网络层数和神经元个数的增加,至此,模型构建完成,其隐藏层数为3,网络隐层结构为[180,160,180].

接下来再根据重构误差对隐层神经元数目进行调整,调整后模型结构变为构为[178,155,183].

依据文献[9]提出的理论,跟据重构误差构建了一个深度信念模型,模型网络深度为4,网络深度确定以后,根据文献[9]的方法,通过实验的方法选出了一组使得模型分类误差小的神经元数目组合,根据实验得到的模型结构为[150, 160, 150, 180].为了便于描述,将按照本文提出方法构建的模型称为验证集模型,将按照文献[9]方法构建的模型称为重构误差模型.将两个模型用于测试集进行实验,其分类准确率如表1.

表1 不同模型分类准确率

分析表1可知,依据本文提出的方法所构建的模型比依据重构误差构建的模型其分类准确率提高了1.35%.

3.2 CIFAR-10数据集实验

CIFAR-10数据集是机器学习中的一个通用的用于图像识别的基础数据集,包含了60 000张图像,共10个类,图像大小为32×32,其中50 000张为训练集,10 000张为测试集.同样选取10 000张作为训练集,2 000个样本作为验证集,2 000个作为测试集来构建模型.

在构建模型的过程中,初始化神经元数目为100个,要求模型精度达到80%以上,即ε的值为0.2,通过实验发现当前验证集错误分类率减去上一次错误分类率之差大于0.1时,模型过拟合,即α的值设为0.1.构建模型过程中验证集错误分类率随着各层神经元数目变化如图7.

图7 验证集错误分类率变化图Figure 7 Verification set error classification rate

观察图7可知:第一隐层在神经元数目超过220时,其α值大于0.1,但ε不满足要求,故网络深度需要增加一层;同样,第二隐层在神经元数目超过200时α不满足要求,此时ε仍大于0.2,继续增加网络深度;当第三隐层神经元数目为190,ε满足要求,停止继续增加深度和神经元数目.因此模型结构为[220,200,190].同样地,根据重构误差对模型神经元数目进行微调,最后,网络模型结构为[224,198,195](验证集模型).

与上一个实验类似,根据文献[9]提出的理论构建了一个深度信念模型,其网络结构为[200,220,180,200](重构误差模型),将两个模型用于测试集进行测试,其准确率如表2.

表2 不同模型分类准确率

观察表2可知,用此方法构建的模型比按照重构误差构建的模型分类准确率要高.

4 结 语

本文详细介绍了深度信念网络的结构及其训练算法,针对网络隐层数及神经元数目难以确定问题,在贪心算法思想的基础上,根据验证集错误分类率来动态调整网络隐层数及神经元数目,当模型当前层达到最优时再去调整下一层,使得模型构建完成后接近最优.这种构建深度信念网络模型的方法能有效提高运算效率,降低运算成本,提高预测或分类的准确率.

【参考文献】

[1]CHAE Y T, HORESH R, HWANG Y, et al. Artificial neural network model for forecasting sub-hourly electricity usage in commercial buildings[J].Energy&Buildings, 2016,111:184-194.

[2]MURTY M N, DEVI V S. Introduction to pattern recognition and machine learning[J].JournalofCellularPhysiology, 2015,200(1):71-81.

[3]SUN T H, TIEN F C. Using backpropagation neural network for face recognition with 2D+3D hybrid information[J].ExpertSystemswithApplications, 2008,35(1,2):361-372.

[4]ZAJI A H, BONAKDARI H. Efficient methods for prediction of velocity fields in open channel junctions based on the artifical neural network[J].EngineeringApplicationsofComputationalFluidMechanics, 2015,9(1):220-232.

[5]ROBERT C. Machine learning, a probabilistic perspective[J].MathematicsEducationLibrary, 2012,58(8):27-71.

[6]FUREY T S, CRISTIANINI N, DUFFY N, et al. Support vector machine classification and validation of cancer tissue samples using microarray expression data[J].Bioinformatics, 2000,16(10):906-914.

[7]CUCCHIARA A. Applied logistic regression[J].Technometrics,1992,34(1):358-359.

[8]LECUN Y, BENGIO Y, HINTON G. Deep learning[J].Nature, 2015,521(3):436-444.

[9]潘广源,柴伟,乔俊飞.DBN网络的深度确定方法[J].控制与决策,2015(2):256-260.

PAN G Y, CHAI W, QIAO J F. Calculation for depth of deep belief network[J].ControlandDecision, 2015(2):256-260.

[10]温林强,夏凤毅,沈洲.BP神经网络多波长法的COD预测[J].中国计量大学学报,2016,27(3):306-312.

WEN L Q, XIA F Y, SHEN Z. COD prediction based on BP neural networks with multi-wavelength methon[J].JournalofChinaUniversityofMetrology, 2006,27(3):306-312.

[11]HINTON G E. Deep belief networks[J].Scholarpedia, 2009,4(6):5947.

[12]HINTON G E. A practical guide to training restricted boltzmann machines[J].Momentum, 2012,9(1):599-619.

[13]CASELLA G, GEORGE E I. Explaining the Gibbs sampler[J].AmericanStatistician, 1992,46(3):167-174.

[14]SHERI A M, RAFIQUE A, PERDYCZ W, et al. Contrastive divergence for memristor-based restricted Boltzmann machine[J].EngineeringApplicationsofArtificialIntelligence, 2015,37:336-342.

猜你喜欢

隐层数目重构
基于RTD可编程逻辑门的n变量函数实现算法
一种自适应确定隐层节点数的增量半监督超限学习机算法
视频压缩感知采样率自适应的帧间片匹配重构
长城叙事的重构
移火柴
高盐肥胖心肌重构防治有新策略
基于RDPSO结构优化的三隐层BP神经网络水质预测模型及应用
代价敏感正则化有限记忆多隐层在线序列极限学习机及图像识别应用
北京的重构与再造
《哲对宁诺尔》方剂数目统计研究