一种深度置信提升网络集成分类模型

2021-02-28 14:22宋晓明曲文龙阚明阳汪慎文
关键词:隐层集上准确率

宋晓明,曲文龙,b,阚明阳,汪慎文,b

(河北地质大学 a.信息工程学院;b.机器学习与人工智能实验室,石家庄 050031)

分类是机器学习与数据挖掘核心问题之一,分类模型的本质是:基于已有的标记信息进行挖掘分类规则、构建分析模型,从而对未标记的对象进行识别。分类方法已广泛应用于模式识别[1]、智能控制[2]、故障检测[3]等诸多领域。

传统机器学习方法在面对高维、复杂和非结构化的海量数据时,由于网络结构设计的局限性,导致模型和算法的鲁棒性和学习能力有限。深度学习(deep learning,DL)技术的出现有效地解决了浅层机器学习特征提取能力不足的问题[4],其通过模拟人类大脑的组织结构和学习机制,利用分层思想对数据进行非线性处理,让机器能够自主学习数据的本质特征。深度学习模型在计算机视觉、语音识别和自然语言处理中展现了巨大的潜力[5-7]。

深度置信网络是由G.E.Hinton等[8]在2006年提出的一种深度模型,作为深度神经网络主要实现方式之一,具备从原始数据中抽象出更高阶特征的能力。DBN不仅能够无监督对数据进行高效自主学习,而且能够利用受限玻尔兹曼机[9](restricted Boltzmannmachine,RBM)的逐层表示学习能力进一步提高识别性能。集成学习[10]通过训练数据构建多个差异性学习器以获得更高的性能,与单个学习器相比,集成学习能够很大程度上提高学习系统的泛化能力。文献[11]提出了一种深度置信网络堆叠结构,通过多个DBN对雷达信号进行特征提取,克服了单一深度模型学习能力差的问题。文献[12]提出采用3个单一的DBN个体分类器用于肺部图像识别,通过“相对多数投票策略”进行集成。上述方法中,均使用浅层神经网络作为分类器,使深度学习的分类性能受到限制。文献[13]提出了一种基于DBN XGBDT的入侵检测方法,利用DBN对高维复杂的数据集进行降维,通过XGBDT算法进行二分类,使用单一XGBDT作为分类器,存在分类器的稳定性较差、学习能力有限等问题。

针对以上的不足,本文提出了一种深度置信提升网络集成分类模型。该模型采用集成DBN从原始数据中提取出高阶特征向量,借鉴深度学习的思想,采用XGBoost和GBDT作为基学习器,通过级联构成深层提升网络,进而对高阶特征向量进行逐层监督学习,深层提升网络克服了深层神经网络反向传播过程中存在的耗时问题,并且超参数少,鲁棒性强。基于UCI公开数据集和MNIST数据集,本文所提出模型与传统深度学习方法和集成学习方法进行了性能比较实验,实验结果表明,本文模型具有良好的识别性能。

1 理论技术

1.1 深度置信网络

DBN是以概率图模型为基础的深层表示学习模型,能够模拟真实数据的联合分布。深度置信网络是由多层无监督的受限玻尔兹曼机和一层有监督的反向传播(back propagation,BP)网络组成[14],其拓扑结构如图1所示。从图1中可以看出,输入数据从底层向上依次传递,每层RBM输入特征向量维度分别为n0,n1,n2,经过逐层抽象得到深层次特征表示,最后一层为BP网络,利用真实样本标签反向传播精调模型参数。

图1 DBN模型拓扑结构框图

RBM的基本结构是由可视层和隐藏层2部分构成。通过可视层输入数据,隐藏层对数据进行重构。假设可视层神经元和隐藏层神经元的输入特征值均为二进制数值,则:

式中:vi表示第i个可视层神经元的状态;0表示非激活状态;1表示激活状态;hj表示第j个隐藏层神经元的状态。

可视层和隐藏层之间任意2个神经元的连接权重为W,能量函数定义为:

式中:v和h分别代表可视层节点和隐藏层节点;wij为2个神经元连接权重矩阵W的元素;n为可视层节点数目;m为隐藏层节点数目;ci和bj分别表示vi和hj的偏移量。

通过以上定义,RBM的联合概率分布为:

在实际应用中,通过用学习到的边缘概率分布生成尽可能拟合真实样本分布的数据集,即需要计算p(v|h),有:

RBM需要训练。对于样本数据x,主要采用RBM标准的对比散度算法[15]进行训练,训练完成后得到参数 θ=(wij,ci,bj),进而得到非常接近真实分布的p(v),最后通过将整个网络参数输入到BP网络中,并结合样本数据标签进行参数精准调优,使分类误差达到最小。

1.2 极限梯度提升树

XGBoost算法[16]被称为极限梯度提升算法,它是基于梯度提升决策树(见本文1.3节)的改进算法,是一种利用Boosting思想将多个基学习器的输出与权重相结合的算法。由于单个决策树的准确性和泛化性能不强,容易出现识别精度低和过拟合的情况,极限梯度提升数的核心思想是:为了降低上一层弱分类器残差,每个弱分类器都建立,然后把弱学习器进行累加得到最终的强学习器。

相对于传统的随机森林和GBDT,XGBoost有以下优点:

1)与传统GBDT相比,XGBoost不仅可以使用分类回归树(classification and regression trees,CART)作为基学习器,而且支持线性分类器。

2)XGBoost对代价函数进行2阶泰勒展开,充分利用了1阶导数和2阶导数信息。为了控制模型的复杂程度,在代价函数中加入了正则化惩罚项,防止模型过拟合。

3)与传统随机森林对训练集采用相同的训练方式不同,XGBoost通过对基学习器赋予不同权重,使特征具有区分性,并且在处理分类问题上,XGBoost具有更高的精度和识别性能。

与传统的随机森林和GBDT相比,XGBoost体现出显著的优势,所以本文通过XGBoost作为基学习器构建深层网络。

1.3 梯度提升决策树

GBDT是G.H.FriedMan[17]提出的一种Boos ting方法,是一种基于决策树的集成算法。核心思想是:每次计算多个弱学习器的输出结果和上一次输出结果的残差,利用梯度下降法进行训练,即在残差减小的方向上构建一个新的回归模型。GBDT处理分类问题时,通过将目标函数得到的对数数值转换为概率值,利用评测(概率)与真实(概率)之间的差值作为残差,即所提升的是关于概率的近似残差。考虑到集成学习中学习器的多样性,本文将GBDT作为构建深层网络的另一种基学习器。

2 一种深度置信提升网络集成分类模型

周志华等[18]提出了多粒度级联森林(multi gained cascade forest,gcForest),它是基于决策树的多层随机森林的集成方法。gcForest的提出是为了简化深层神经网络的网络结构、降低超参数的数量和提升训练效率,实验结果表明,gcForest不仅训练时间和超参数少于深层神经网络,而且在大规模数据集上和深层神经网络表现能力相当。本文对gcForest进行了改进,将特征提取阶段的多粒度扫描替换为集成DBN,将用于深层网络学习的随机森林替换为基于梯度提升策略的决策树。提出了基于深度置信提升网络的集成分类模型。

2.1 整体模型结构

深度置信提升网络的集成分类模型由输入层、隐层、输出层等3个部分构成。

输入层采用集成DBN作为特征提取器,以MNIST数据集为例,通过3个单一DBN(每层节点数为100\150\300)对MNIST数据进行不同层次的深入学习,将每层RBM的输出和最后一层DBN输出进行融合,同时进行特征选择去除冗余特征,最后将3个单一DBN的学习结果融合成900维增强特征向量并作为隐层的输入,即784维的原始数据由900维的增强特征向量重新表示。

隐层使用XGBoost与GBDT作为基学习器,采用深层网络结构对增强特征向量进行深入学习。隐层的第一层对增强特征向量进行高级特征提取,从隐层的第二层开始,将上一层所有基学习器输出结果(4维)和增强特征向量(900维)融合作为输入。隐层层数根据每层的学习结果进行自适应,如果当前层输出平均预测准确率和上一层输出平均预测准确率相比,没有提升且当前层输出预测准确率矩阵的方差小于自适应因子ε,则停止增加网络层数,训练结束。

输出层采用相对多数投票策略得到最终的分类结果。模型结构如图2所示。

图2 集成分类模型总体结构框图

2.2 集成DBN特征提取

集成DBN分为单一DBN网络构建和集成DBN构建2个部分。假设输入数据m维,首先构建单个DBN分类器,探讨不同隐层层数和不同隐层节点数对分类准确率和训练时间的影响,选取最优的网络结构(m-n-n),为了保持提取特征的多样性,其余2个DBN结构选为隐层层数相同、隐层节点数分别为n±0.5n。考虑到RBM编码时存在重构误差,所以将倒数第二层RBM输出和最后层输出进行融合。最后将3个单一DBN进行集成,输出增强特征向量。

针对DBN融合浅层特征深层特征过程中可能存在特征冗余问题,利用基于欧几距离(euclide an distance,ED)度量特征之间的差异性[19],使用基于条件方差方式(conditional variance,CV)度量特征与标签的相关性[20],使得特征子集尽可能具有较高的差异性和互补性。设样本特征子集为征子集的差异性度量和特征与标签的相关性度量为:

式(5)(6)中:EDi表示第i个特征与其他特征的平均相似度;CVi表示第i个特征与类别标签的相关程度,取值范围[0,1],取值接近1表示xi与y存在强相关性,相反,取值接近0表示,两者相互独立;Var(xi)表示第i特征的边际方差;E[Var(xi|Y)]表示条件方差期望值。

特征之间的总平均相似度(overall average similarity,OAS)和特征与类别标签的总平均相关度为(overall average correlation,OAC)分别为:

算法1为集成DBN模型的训练标准算法,分为DBN网络训练和特征融合等2个部分。设置算法输入训练数据集为D={(x1,y1),(x2,y2),…,(xn,yn)}T,可视层和隐藏层连 接 权重为W =(Wij)T,可视层偏执为c={c1,c2,…,cn}T,隐藏层偏执为b={b1,b2,…,bm}T,集成DBN网络由DBN(1,2,…,p)构 成, 每 层 DBN 网 络 输 出为DBN1out(1,2,.…,N)。

算法1 集成DBN模型训练过程。

输入:训练数据集D,迭代次数n_step,采样的步数cd_k

2.3 深层提升网络

深层提升网络是基于梯度提升策略的决策树的多层级联结构。本文使用XGBoost和GBDT作为个体学习器,采用级联的方式构成深层网络,进而对集成DBN输出的增强特征向量进一步深层学习。深层提升网络第一层将增强特征向量作为输入;从第二层开始,每一层都是接收前一层处理的信息融合增强特征向量,并将处理后的结果输入到下一层。为了降低过拟合风险,每次产生一个新的隐层,计算当前层输出预测准确率c和当前层各个体学习器输出预测准确率矩阵的方差η,将η与自适应因子ε进行比较,自适应因子ε为学习结果变化的参数。如果η<ε或当前层平均精度c小于上一层平均精度,训练结束。

假设样本个数为N,隐层基学习器个数为K,第i层的第k个学习器的输出和预测准确率分别用Aij和ci表示,则方差η和当前层预测精度ci公式为:

算法2 深层提升网络训练算法。

输入:训练样本x_trian,训练样本标签y_train,测试样本x_test,测试样本标签y_test。

输出:训练样本x_trian,训练样本标签y_train,测试样本x_test,测试样本标签y_test,隐层数目m。

初始化参数:隐层个体学习器(Gi1,Gi2,Li1,Li1)的学习率为α,最大迭代次数为n,最大深度为d

/ 深层提升网络训练过程 /

f←0 //停止标志

do while(f等于1) //1为达到停止条件,0为未达到停止条件

gi1←Gi1(x_train,y_train)gi2←Gi2(x_train,y_train)li1←Li1(x_train,y_train)li2←Li2(x_train,y_train)

//通过训练集训练Gi1,Gi2生成2个XGBoost模型,通过训练集训练Li1,Li2生成2个GBDT模型

x_train←gi1(x_train)∪gi2(x_train)∪

li1(x_train)∪li2(x_train)

//通过将4个初级学习器类向量原始数据进行融合生成新的训练样本

x_test←gi1(x_test)∪gi2(x_test)∪

li1(x_test)∪li2(x_test)

//通过将4个初级学习器类向量原始数据进行融合生成新的测试样本

计算当前层预测准确率矩阵方差η和当前层预测精度ci

Ifη<εor ci<ci-1

f←1

else

i=i+1

end do。

深层提升网络从第二层开始都是建立在上一层学习结果的基础上进行归纳学习,采用监督学习的方式进行训练,从而能够刻画复杂数据结构,同时隐层层数自动调整,根据数据规模利用每层的输出结果自适应调节,更加准确地了解学习过程的变化情况。

2.4 相对多数投票策略

集成多个基学习器进行学习时,输出层通常由单个基学习器的输出投票产生。投票法一般分为绝对多数投票法[21]和相对多数投票法[22],前者多用于处理二分类问题,后者多用于处理多分类问题,因此,本文选用相对多数投票法。假设对于未知样本x,第k个基学习器输出结果为i(样本类别数为3),则分类器函数定义为:

将式(11)进行求和,有:

采用相对多数投票策略,即:

3 实验分析

3.1 实验设计

实验设计为相同实验环境下10次相同的实验结果的均值,其中包括参数设置和模型验证。参数设置部分分为DBN参数对识别性能的影响探究和自适应隐层层数的探究;模型验证部分通过将提出模型与DBN、XGBoost和DBN XGBDT[13]等3种经典机器学习模型进行对比,进一步验证提出模型的优越性。

3.2 实验环境与评估指标

实验环境。实验使用的计算机配置为Intel(R)Core(TM)i7-9750H 2.60GHz处理器,8 GB内存,运行环境为Windows10操作系统下的Python 3.7.0,开发工具为Pycharm。

评价指标。为了评估本文提出模型在训练时间和其他模型的检测性能,本文使用准确率和F1-度量作为评价指标。

3.3 实验方法

本文使用10折交叉验证的方法,将数据集随机划分生成训练集和测试集,其中训练集和测试集的比例为7∶3,交叉验证重复10次,利用统计方法计算准确率和F1-度量的平均值作为整体模型性能的评估。

3.4 实验数据和预处理

实验数据基于UCI公开数据集[23](Breast Cancer、Dermatology、Chess、Arrhythmia和MNIST数据集)进行检测实验。数据集信息如表1所示。

UCI公开数据集中的数据类型均为多变量,因为数量单位不统一,所以在实验前需要对数据进行归一化处理。通过将数据值映射到[0,1]区间,使各个指标均在一个数量级,从而容易对不同模型输出分类结果进行对比。本文归一化使用的是sklearn库中MinMaxScaler方法。

表1 数据集信息

3.5 模型参数分析实验

参数设置为2个部分:一部分探讨DBN网络结构,通过实验确定DBN的隐层层数、隐层节点数、学习率,从而为后续实验选择最优的网络结构;另一部分通过改变提出模型隐层级联结构来观察分类准确率的变化,从而确定自适应因子ε的范围。

3.5.1 实验1:DBN网络层数对分类结果的影响

在训练集成DBN模型时,首先设置非监督学习率均为1,动量学习率为0.5,后期设置为0.9,激活函数为sigmoid函数,RBM训练最大迭代次数50。BP算法学习率0.1,最大迭代次数50。通过实验确认DBN网络层数,每次网络训练都将其中一个网络参数作为变量,其他的网络参数固定。

针对Breast Cancer、Dermatology、Chess、Ar rhythmia和MNIST数据集,隐层节点分别为10、40、20、100、400,设置各层节点数均相同,研究DBN网络的隐层层数{1,2,3,4,5}对分类准确率的影响,实验结果如表2所示。

从表2可知,在Breast Cancer数据集上,隐层数为2时,准确率达到最高值,最高为68.53%,随着层数升高结果没有显著变化,因此隐层数目选择为2;在Dermatology数据集和Chess数据集上,隐层数为2时,分别取得了很好的结果,分别为74.54%和82.86%;在Arrhythmia数据集上,隐层数为2时,准确率达到最高,最高值为55.09%;在MNIST数据集上,隐层数为2时,准确率最高,最高值为88.88%。

根据实验结果可知,随着DBN隐层层数的增加,分类准确率呈现先升高后降低的趋势。考虑到模型结构的复杂性和训练时间,将DBN的隐层层数固定为2。

3.5.2 实验2:集成DBN隐层节点数对分类结果影响

基于实验1的结果,研究不同隐层节点数对数据集的影响,针对不同的数据集,选择最优的隐层节点数以提升DBN的识别性能。实验结果如表3所示。

表2 DBN不同隐层层数的分类准确率

表3 不同隐层节点下分类准确率

由表3可知,随着隐层节点数的增加,DBN识别性能呈现了先上升后下降的趋势,考虑到集成DBN中单个DBN结构的多样性,第1个DBN选择识别性能最优的隐层节点数n(DBN结构为mn-n,m为输入特征个数),然后其余2个DBN隐层节点数固定为n±0.5n。在Breast Cancer数据集上,识别性能最优时隐层节点数为15(DBN结构为30-15-15),则其余2个DBN结构固定为(30-7-7,30-22-22);在Dermatology数据集上,分类准确率最大时隐层节点数为20,则其余2个DBN隐层结构为(34-10-10,34-30-30);在Chess数据集上,分类准确率最大时隐层节点数为40,其余2个DBN隐层结构为(71-20-20,71-60-60);在Arrhythmia数据集上,分类准确率最大时隐层节点数为150,其余2个DBN隐层结构为(277-75-75,277-225-225);在MNIST数据集上,分类准确率最大时隐层节点数为300,其余2个DBN隐层结构为(784-150-150,784-450-450)。根据以上选择,最终配置如表4所示。

表4 DBN参数最终配置

3.5.3 实验3:学习率对DBN分类效果的影响

根据实验2的结果,针对不同的数据集DBN选取最优隐层节点数。实验选取学习率的区间为[0,1],实验结果如图3所示。

图3 不同学习率对DBN影响情况

实验结果表明,在Breast Cancer数据、Derma tology数据、Chess数据和Arrhythmia数据上学习率在[0.1,0.3]上取得准确率较高,随着学习率的增加,代价函数反而出现了不稳定的趋势。在MNIST数据上,学习率在[0.02,0.3]上取得准确率较高并且稳定,因此固定学习率 λ=(0.3+0 1)/2=0.2。

3.5.4 实验4:深度提升网络层数对分类结果的影响

深度提升网络是由2个XGBoost与2个GBDT组成的多层级联结构。为了更好地对实验分类结果进行类比,对XGBoost和GBDT的超参数进行设置,如表5所示。

表5 XGBoost和GBDT参数配置

研究网络层数对不同数据集下分类准确率的影响。为了体现实验结果统一性和类比性,将其他参数保持不变,每次网络训练都将网络层数作为变量,实验结果如表6所示。

表6 隐层不同级联层数的分类准确率

根据表6可以得出,随着网络层数的增加,分类准确率的变化趋势呈现出逐渐上升的趋势,但当增加到一定程度,随着层数增加,出现过拟合现象,导致识别精度开始降低,为了能够保持较高的识别精度,自适应因子ε的范围固定为[0.004,0 015]时,分类性能达到最优。在Breast Cancer数据集上,隐层层数为2时分类准确率达到最大值,最大值为97.82%;在Dermatology数据集上,网络层数为2时分类准确率达到98.92%;在Chess数据集上,网络层数为4时分类准确率达到98 01%;在Arrhythmia数据集上,网络层数为2时分类准确率达到71.32%;在MNIST数据集上,隐层层数为3时分类准确率达到93.24%。

综上可知,网络层数对分类结果存在一定的影响。需要在一定范围内确定隐层层数,通过当前层各学习器输出准确率矩阵的方差变化情况和当前层输出准确率与上一层输出准确率的变化情况自适应层数,从而提升模型训练效率。

3.6 实验仿真结果

通过实验1~4,探讨模型参数对识别性能的影响,确定最优的模型参数。基于UCI数据集和MNIST数据集进行仿真实验,仿真结果如图4和图5所示。

图4 基于UCI数据集分类准确率

图4 、5均为训练集上准确率和测试集上准确率对比结果。由图4所知,本文模型在Chess数据和Dermatology数据上分类性能比较稳定。由图5所知,本文模型在Breast Cancer数据和MNIST数据上分类性能较为稳定,但是在Arrhythmia数据上训练结果和测试结果相差较大,原因是样本分布不均匀导致,由于训练集和测试集采用随机划分,某些少数类别只划分在测试集,在模型训练过程中并没有此类别样本,因此出现了检测结果波动较大的现象。

图5 基于MNIST数据集分类准确率

3.7 模型整体性能分析

将所提出模型与传统模型进行对比,将实验数据按一定比例划分为训练集和测试集,分别输入DBN模型、XGBoost模型、DBN+XGBoost模型和所提出模型,通过分类准确率评价指标进行对比,对比结果如表7所示。其中DBN和XGBoost的参数设置见表4和表5。

表7 不同模型分类结果对比

续表(表7)

由表7可知,使用DBN模型的预测F1-度量值在74.07% ~90.07%,平均值为85.06%,使用XGboost模型的预测F1-度量值在31.49%~96 42%,平均值为81.45%,使用DBN XGBDT模型的预测F1-度量值在78.16% ~97.29%,平均值为91.37%,本文模型的预测F1-度量值在94 69%~98.01%,平均值为92.638%,比DBN、XGBoost和DBN XGBDT的预测F1-度量值都高。本文模型的分类准确率与DBN相比,平均提升13.8%,与XGBoost相比,平均提升6.98%,与DBN XGBoost相比,平均提升4.18%,由此可见,本文模型不仅分类准确率上具有明显提升,而且在F1-度量上具有明显优势。

在处理小规模数据时XGBoost模型的分类精度明显优于DBN模型,通过将XGBoost用于分类器,一定程度上可以提升DBN模型处理小规模数据的能力。通过与DBN、XGBoost、DBN XGBDT模型对比,本文模型不仅在大规模高维数据上识别性能表现良好,而且处理小规模数据时也能表现出优秀的分类性能。因为采用集成DBN算法特征提取,所以导致训练时间较长,虽然训练时间明显高于其他3种模型,但是可以通过优化模型参数来进一步提升训练效率。通过对比实验得出结论,本文模型整体分类识别能力良好,尤其处理高维非线性数据时,更是表现出优秀的学习能力。

4 结论

针对单一浅层神经网络学习能力不足问题,本文提出基于深度置信提升网络的集成分类模型。模型采用集成DBN进行特征提取,借鉴深度学习的思想,采用XGBoost和GBDT构成的深层提升网络对提取的特征进行表征学习,采用自适应网络层数以降低模型复杂度。基于UCI公开数据集和MNIST数据集进行实验,结果表明,本文提出模型的分类准确率均高于现有方法,可以为深度学习和集成学习结合提供新的方向。因为采用集成DBN方法进行特征提取,所以模型训练时间较于传统方法更长。下一步研究采用何种方法选择最优参数以提升训练效率,以及将其应用解决实际问题。

猜你喜欢
隐层集上准确率
基于RTD可编程逻辑门的n变量函数实现算法
乳腺超声检查诊断乳腺肿瘤的特异度及准确率分析
不同序列磁共振成像诊断脊柱损伤的临床准确率比较探讨
2015—2017 年宁夏各天气预报参考产品质量检验分析
Cookie-Cutter集上的Gibbs测度
基于BP神经网络学习算法的图像压缩技术研究
链完备偏序集上广义向量均衡问题解映射的保序性
分形集上的Ostrowski型不等式和Ostrowski-Grüss型不等式
基于RDPSO结构优化的三隐层BP神经网络水质预测模型及应用
高速公路车牌识别标识站准确率验证法