一种数据分类方法、系统、设备及信息数据处理终端

文档序号:27323327发布日期:2021-11-10 00:56阅读:353来源:国知局
一种数据分类方法、系统、设备及信息数据处理终端

1.本发明属于机器学习与智能计算技术领域,尤其涉及一种数据分类方法、系统、设备及信息数据处理终端。


背景技术:

2.目前,人工神经网络(artificial neural network,ann)是一个由大量处理单元组成的非线性自适应信息处理系统。它是在现代神经科学研究成果的基础上提出的,试图通过模拟大脑的神经网络处理记忆信息的方式来处理信息。前馈神经网络(feedforward neural network,fnn)是人工智能领域发明最早的简单神经网络。在fnn中,信息从输入层通过隐含层单向传播到输出层,由于其结构简单,性能好而引起了广泛的关注。ann的近似定理表明,经过训练的多层前馈神经网络可以以任意精度逼近任意连续函数,它已被广泛应用于各种领域,如时间序列预测、模式识别、模拟建模、数据挖掘、医学诊断等领域。
3.fnn的结构由一些逐层排列的神经元组成,其中一层的神经元与前一层的神经元相连。解决不同的问题需要用到不同的神经网络,要找到一个合适的fnn,需要确定层的数量、神经元的数量和神经元之间的权值,这可以看作为一个优化问题。因此,训练算法在前馈神经网络的优化中非常重要。在过去,已经提出了许多训练算法和技术,一种是基于梯度的算法,它可以调整连接不同网络层的权值。然而,这些算法通常会陷入局部最优,因此人们意识到了基于元启发式优化方法的必要性。此外,多目标元启发式也被用于处理神经网络,一方面要减少神经网络的训练误差,另一方面要简化神经网络的结构。在对fnn的元启发式处理中,fnn的初始种群被搜索算子引导到最终种群,通常选择最好的fnn。极限学习机(extreme learning machine,elm)在计算效率和易于实现方面具有显著的优势,因为它随机生成输入权值和隐层偏置,然后使用moore

penrose(mp)广义逆分析计算输出权值。然而,elm的随机性很容易导致其学习性能的波动,此外,elm只计算具有固定结构的网络参数。为了弥补这些缺陷,使用协同遗传算法(cooperative binary

real genetic algorithm,cga)优化网络结构并生成好的初始输入参数,包括每代的输入权值和隐层偏置,供elm使用。
4.一般来说,基于梯度下降的学习方法通常速度较慢,需要许多次迭代来获得良好的学习性能,由于学习步长不合适,很容易收敛到局部最优。作为一种非迭代算法,elm是huang等人提出的单隐层前馈神经网络(single hidden layer feedforward neural network,slfn)的有效学习方法,它随机选择输入权值和隐层神经元偏置,可以学习不同的观察结果,且误差任意小。与传统的slfn训练算法不同,elm通过随机初始化得到输入权值和隐层神经元偏置后,通过求解线性模型的最小二乘解来确定网络的输出权值。
5.对于任意m个不同的训练样本其中具有n个输入属性x
i
=[x
i1
,x
i2
,

,x
in
]
t
∈r
n
和l个分类标签t
i
=[t
i1
,t
i2
,

,t
il
]
t
∈r
l
,一个具有k个隐层神经元的标准slfn,激活函数为g(
·
),可以用elm以零误差进行训练,如图3所示,它的输出可表示为:
[0006][0007]
其中β
j
=[β
j1

j2
,


jl
]
t
∈r
l
是连接第j个隐层神经元和输出神经元的输出权值向量,ω
j
=[ω
j1

j2
,


jn
]
t
∈r
n
是连接输入神经元和第j个隐层神经元的输入权值向量,b
j
是第j个隐层神经元偏置,j=1,2,

,k,o
i
=[o
i1
,o
i2
,

,o
il
]
t
∈r
l
是网络的计算输出,i=1,2,

,m。采用sigmoid函数作为激活函数:
[0008][0009]
当将m个训练样本输入到具有k个隐层神经元的slfn中时,如果存在合适的ω
j
、b
j
和β
j
,slfn的输出可以近似为零误差:
[0010][0011]
其中t
i
=[t
i1
,t
i2
,

,t
il
]
t
∈r
l
是期望的网络输出,即数据的分类标签。
[0012]
因此,公式(1)可以写为如下形式:
[0013][0014]
公式(4)又可被重写为矩阵形式:hβ=t
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(5)
[0015]
其中
[0016][0017]
h称为隐层的输出矩阵,t是期望输出矩阵,因此,公式(5)是一个线性模型,输出权值β可以通过找到该等式的最小二乘解来解析地确定:
[0018][0019]
其中是h的mp广义逆。利用elm训练一个标准的slfn步骤如下:
[0020]
1)在[

1,1]的区间内随机生成输入权值ω和隐层偏置b;
[0021]
2)通过公式(6)计算隐层的输出矩阵;
[0022]
3)通过公式(8)计算输出权值。
[0023]
研究表明,elm具有训练速度快、易于实现、通用性强的优点,并且通过一次学习就可以获得最优的结果,它可以解决分类、回归等任务。elm已经被成功地应用于面部表情检测、模式分类、视频异常检测和无设备定位等。
[0024]
遗传算法的灵感来自于达尔文进化和自然选择理论,最初由holland提出,并不断发展。ga是进化算法的一个经典范例,是用于训练神经网络最多的元启发式算法之一。传统上ga主要采用二进制编码,而其他编码,如实数编码、符号编码也在ga中普遍使用。通过模拟自然选择,潜在解的种群经过有限次迭代达到更优的种群。作用于种群中染色体的选择、
交叉和变异的基本操作确保了整个过程可以重复,以获得最优或接近最优的解。一个简单的位操作实现了交叉和变异操作。新旧染色体通过适应度函数进行评估,更好的染色体将被选择存活到下一代。遗传算法的步骤如下:
[0025]
1)随机初始化种群p
g
,并设置g=0;
[0026]
2)当g≤maxg时,重复步骤3

6;
[0027]
3)评估p
g
的所有染色体的适应度函数值;
[0028]
4)根据适合度函数值选择染色体作为父代;
[0029]
5)对父代个体进行交叉和变异操作,并产生下一代种群p
g+1

[0030]
6)令g=g+1;
[0031]
7)输出最好的染色体作为优化问题的最优解。
[0032]
通过上述分析,现有技术存在的问题及缺陷为:
[0033]
(1)现有前馈神经网络的训练算法存在局限性,如收敛速度慢、易陷入局部最优及对初始权值依赖性强等问题。
[0034]
(2)现有神经网络存在较大的训练误差,且神经网络结构较复杂。
[0035]
(3)elm的随机性容易导致其学习性能的波动,进一步导致slfn的分类性能不稳定,且只计算具有固定结构的网络参数。
[0036]
(4)由于学习步长不合适,现有基于梯度下降的学习方法容易收敛到局部最优解,需要求解梯度信息且迭代计算,导致计算量大。
[0037]
解决以上问题及缺陷的难度为:需要设计一种优化网络的算法,使得网络的性能足够好,同时得到的网络紧致,还要克服容易陷入局部最优的缺点,减小计算量,提升计算速度。
[0038]
解决以上问题及缺陷的意义为:通过该训练算法得到的网络,泛化能力强且网络结构简单,与其他先进算法相比,在保证计算速度的前提下能获得一个较高的准确率,从而可用于实际问题的分类判断。


技术实现要素:

[0039]
针对现有技术存在的问题,本发明提供了一种数据分类方法、系统、设备及信息数据处理终端,尤其涉及一种基于极限学习机的协同遗传算法同时优化前馈神经网络结构和权值的数据分类方法、系统、设备及信息数据处理终端。
[0040]
本发明是这样实现的,一种数据分类方法,所述数据分类方法包括以下步骤:
[0041]
步骤一,将每个数据集划分为两个子集:训练集和测试集,随机选择75%的数据作为训练集,剩余25%的数据作为测试集,并对所有数据的特征属性值进行预处理,均归一化为[

1,1]之间的数;训练集用来训练网络,让网络学习数据之间的关系,测试集用来测试所得的网络性能,归一化为了消除特征间单位和尺度差异的影响,从而对每维特征同等看待;
[0042]
步骤二,初始化单隐层前馈神经网络的结构和部分网络参数,包括隐层神经元的状态、输入权值和隐层偏置,并计算最优输出权值;给出初始种群,以便进行后续优化;
[0043]
步骤三,评估生成的染色体的适应度函数值,从而评价当前解的好坏;
[0044]
步骤四,通过基于极限学习机的协同遗传算法cga

elm同时优化网络结构和连接参数,得到最优解作为最终的单隐层前馈神经网络;
[0045]
步骤五,使用测试集测试生成的网络性能,输出平均分类准确率。
[0046]
进一步,步骤二中,所述初始化单隐层前馈神经网络的结构和部分网络参数,并计算最优输出权值,包括:将所有参数编码到一个染色体中,每个染色体都包含了一个隐层神经元状态的二进制向量θ=[θ1,θ2,


k
]∈r
k
,输入权值向量和隐层偏置向量b=[b1,b2,

,b
k
]∈r
k
;所有参数都是随机产生的,ω和b中的元素位于区间[

1,1],而θ中的元素只有两个取值:0或1,取值为1时表示相应的隐层神经元被激活,取值为0表示相应的隐层神经元不被激活,所述染色体表示为:
[0047]
x
i
(g)=[θ
i
(g),ω
i
(g),b
i
(g)]
t

ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(9)
[0048]
其中x
i
(g)是第g代的第i个染色体。种群表示为:
[0049]
p
g
=[x1(g),x2(g),

,x
pop
(g)];
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(10)
[0050]
其中pop是种群规模。种群p
g
中的每个染色体包含一个k维的二进制向量和一个(n+1)
×
k维的实数向量,因此每个染色体的维数是d=(n+2)
×
k。
[0051]
进一步,步骤三中,所述评估生成的染色体的适应度函数值,包括:
[0052]
网络的训练误差定义为:
[0053][0054]
其中t
i,j
是网络的期望输出,o
i,j
是网络的实际计算输出,m
tr
是训练数据的数量,l是输出神经元的个数。
[0055]
网络的复杂度定义为:
[0056][0057]
其中,θ
i
∈{0,1}是第i个隐层神经元的激活状态。
[0058]
在适应度函数的计算中,同时考虑训练误差和网络复杂度:
[0059]
fitness(x)=λ
×
f1+(1

λ)
×
f2;
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(13)
[0060]
其中,λ∈(0,1)是权重系数,优化的目标是最小化这个适应度函数,并且适应度函数值越小,表明染色体越好。
[0061]
适应度函数值的计算步骤如下:
[0062]
(1)染色体x被分为一个k维二进制向量和一个(d

k)维实数向量;
[0063]
(2)通过二进制向量确定slfn的结构,通过实数向量确定slfn的输入权值和隐层神经元偏置;
[0064]
(3)对于给定的训练集,计算相应的slfn的输出权值;
[0065]
(4)计算训练误差f1,同时计算网络复杂度f2;
[0066]
(5)计算染色体的适应度函数值fitness(x)。
[0067]
进一步,步骤四中,所述基于极限学习机的协同遗传算法cga

elm,包括:
[0068]
建立一个n

k

l型网络,该网络只含有一个输入层、一个隐含层和一个输出层,其中输入层含有n个神经元,对应样本数据的n个属性,输出层含有l个神经元,对应于l个分类标签,隐含层含有k个神经元,设置初始值k=2
×
n+1。
[0069]
所述基于极限学习机的协同遗传算法cga

elm的步骤如下:
[0070]
(1)随机初始化种群p
g
的pop个染色体,每个染色体包括一个二进制向量和一个实数向量,并设置g=0;
[0071]
(2)评估初始种群p
g
中染色体的适应度函数值;
[0072]
(3)当g≤maxg时,重复步骤(4)

步骤(15);
[0073]
(4)对于重复步骤(5)

步骤(7);
[0074]
(5)利用轮盘赌选择从种群p
g
中随机选择两个父代个体;
[0075]
(6)进行二进制交叉操作,产生两个二进制子代;进行实数交叉操作,产生两个实数子代,获得两个结合二进制向量和实数向量的混合子代染色体;
[0076]
(7)评估两个子代染色体的适应度函数值;
[0077]
(8)对于重复步骤(9)

步骤(11);
[0078]
(9)从种群p
g
中随机选择一个父代个体;
[0079]
(10)进行二进制变异操作,产生一个二进制子代;进行实数变异操作,产生一个实数子代,获得一个结合二进制向量和实数向量的混合子代染色体;
[0080]
(11)评估产生的子代染色体的适应度函数值;
[0081]
(12)将种群p
g
中的pop个父代染色体、交叉产生的nc个子代染色体和变异产生的nm个子代染色体合并,形成具有pop+nc+nm个染色体的大种群;
[0082]
(13)根据适应度函数值对大种群的所有染色体进行升序排序,选择前pop个染色体作为下一个种群p
g+1

[0083]
(14)储存具有最小适应度函数值的最好染色体;
[0084]
(15)令g=g+1;
[0085]
(16)获得最好的染色体,从而得到经过训练的slfn;
[0086]
(17)使用测试集测试slfn的性能。
[0087]
进一步,步骤(5)中,所述利用轮盘赌选择从种群p
g
中随机选择两个父代个体,包括:
[0088]
使用轮盘赌选择随机选择两个父代来执行交叉操作,将适应度函数值转换为以下尺度函数,确保染色体的尺度函数值越大,被选择的概率就越高:
[0089][0090]
其中,ρ为选择压力,worstfitness是当前种群中最差的适应度值,取ρ=8。
[0091]
种群中每条染色体x
i
,i=1,2,...,pop被选择的概率p
i
均由以下方程式计算:
[0092][0093]
根据选择概率,染色体通过轮盘赌随机选择,并根据适应度值的排序选择生成下一个种群。
[0094]
进一步,步骤(6)中,所述进行二进制交叉操作,产生两个二进制子代;进行实数交
叉操作,产生两个实数子代,获得两个结合二进制向量和实数向量的混合子代染色体,包括:
[0095]
交叉操作是在遗传基因中产生新染色体的主要操作过程,它以一个交叉概率交换或改变两条染色体之间的部分基因,在交叉操作过程中,需要随机选择两个父代。这里,种群中的两个父代x
1,j
,x
2,j
以轮盘赌选择方式随机选择,以产生两个子代y
1,j
,y
2,j

[0096]
(1)二进制交叉:二进制ga中的交叉用于k维二进制向量:
[0097][0098][0099]
其中,α
j
是一个随机选择的二进制变量。
[0100]
(2)实数交叉:实数ga中的交叉用于(n+1)
×
k维实数向量:
[0101][0102][0103]
其中,α
j
是一个连续参数,在[

0.4,1.4]中随机选择。
[0104]
进一步,步骤(10)中,所述进行二进制变异操作,产生一个二进制子代;进行实数变异操作,产生一个实数子代,获得一个结合二进制向量和实数向量的子代染色体,包括:
[0105]
变异操作是指从种群中以变异概率选择的基因位点上基因值的变化,是产生新染色体的辅助方法。
[0106]
(1)二进制变异:二进制ga的变异是通过改变某些随机分配的基因点上的基因值来实现的,即将某些基因点的基因值从1变为0或从0变为1;从{1,2,

,k}位点中随机采样个位点,其中符号是向上取整函数,对这些位置上的基因值进行取反操作;设s是一组个随机采样位点,二进制ga的变异如下:
[0107][0108]
z
i
=x
i
,i∈{1,2,

,k}\s.;
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(21)
[0109]
其中,z
i
是获得的子代,而x
i
是被选择的父代。
[0110]
(2)实数变异:实数ga的变异用于染色体的连续变量,从{k+1,k+2,

,d}位点随机采样个基因位,对这些基因位上的基因值进行高斯变异;设q是含有个随机采样位点,则实数ga中的变异描述如下:
[0111][0112]
其中,n(0,σ)表示一个平均值为0,方差为σ的正态分布,这里σ=0.2。
[0113]
z
i
=x
i
,i∈{k+1,k+2,

,d}\q.。
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(23)
[0114]
本发明的另一目的在于提供一种应用所述的数据分类方法的数据分类系统,所述数据分类系统包括:
[0115]
数据集划分模块,用于将每个数据集划分为两个子集:训练集和测试集,随机选择其中75%的数据作为训练集,剩余25%的数据作为测试集,并对所有数据的特征属性值进
行预处理,均归一化为[

1,1]之间的数;
[0116]
网络初始化模块,用于初始化单隐层前馈神经网络的结构和部分网络参数,包括隐层神经元的状态、输入权值和隐层偏置,并计算最优输出权值;
[0117]
函数值评估模块,用于评估生成的染色体的适应度函数值;
[0118]
神经网络构建模块,用于通过基于极限学习机的协同遗传算法cga

elm同时优化网络结构和连接参数,得到最优解作为最终的单隐层前馈神经网络;
[0119]
网络性能测试模块,用于使用测试集测试网络性能,输出平均分类准确率。
[0120]
本发明的另一目的在于提供一种计算机设备,所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如下步骤:
[0121]
将每个数据集划分为两个子集:训练集和测试集,并对所有数据的特征属性值进行预处理,均归一化为[

1,1]之间的数;
[0122]
初始化单隐层前馈神经网络的结构和部分网络参数,包括隐层神经元的状态、输入权值和隐层偏置,并计算最优输出权值;评估生成的染色体的适应度函数值;通过基于极限学习机的协同遗传算法cga

elm同时优化网络结构和连接参数,得到最优解作为最终的单隐层前馈神经网络;使用测试集测试网络性能,输出平均分类准确率。
[0123]
本发明的另一目的在于提供一种信息数据处理终端,所述信息数据处理终端用于实现所述的数据分类系统。
[0124]
结合上述的所有技术方案,本发明所具备的优点及积极效果为:本发明提供的数据分类方法,主要用于单隐层前馈神经网络对数据样本的分类,cga

elm可以以快速收敛的速度同时优化单隐层前馈神经网络的网络结构和连接参数,以得到一个接近最优的紧致网络;cga

elm比协同遗传算法cga和极限学习机elm算法的准确率更高,具有更好的泛化性能;cga

elm与基于梯度的算法和其他的元启发式训练算法相比,能以较快的速度和较高的分类精度保持良好的识别性能,更具竞争力。
[0125]
本发明提出了一种基于极限学习机的协同遗传算法,称作cga

elm,它能够同时调整slfn的结构和参数,以实现具有良好泛化性能的紧致网络。在cga

elm中,设计了一种混合编码方案来优化网络结构和输入参数(即输入神经元和隐层神经元之间的输入权值以及隐层神经元的偏置),而输出参数(即隐层神经元和输出神经元之间的输出权值)由elm确定。本发明将训练误差和网络复杂度的组合作为适应度函数来评估slfn的性能;在协同遗传算法中,二进制遗传算法主要负责优化网络结构,而实数遗传算法和elm协作优化网络参数。数据分类的实验结果表明,本发明提供的cga

elm在泛化能力方面显著优于cga和elm;此外,与其他先进的算法相比,cga

elm能在保持收敛速度的前提下达到更高的识别能力,具有更大的竞争能力。
附图说明
[0126]
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图做简单的介绍,显而易见地,下面所描述的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下还可以根据这些附图获得其他的附图。
[0127]
图1是本发明实施例提供的数据分类方法流程图。
[0128]
图2是本发明实施例提供的数据分类系统结构框图;
[0129]
图中:1、数据集划分模块;2、网络初始化模块;3、函数值评估模块;4、神经网络构建模块;5、网络性能测试模块。
[0130]
图3是本发明实施例提供的单隐层前馈神经网络结构图。
[0131]
图4是本发明实施例提供的基于极限学习机的协同遗传算法cga

elm流程图。
[0132]
图5是本发明实施例提供的所有数据集在不同种群规模下的分类精度的变化趋势示意图。
[0133]
图6是本发明实施例提供的所有数据集在不同迭代次数下的分类精度的变化趋势示意图。
具体实施方式
[0134]
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0135]
针对现有技术存在的问题,本发明提供了一种数据分类方法、系统、设备及信息数据处理终端,下面结合附图对本发明作详细的描述。
[0136]
如图1所示,本发明实施例提供的数据分类方法包括以下步骤:
[0137]
s101,将每个数据集划分为两个子集:训练集和测试集,随机选择其中75%的数据作为训练集,剩余25%的数据作为测试集,并将所有数据的特征属性值归一化为[

1,1]之间的数;
[0138]
s102,初始化单隐层前馈神经网络的结构和部分网络参数,包括隐层神经元的状态、输入权值和隐层偏置,并计算最优输出权值;
[0139]
s103,评估生成的染色体的适应度函数值;
[0140]
s104,通过基于极限学习机的协同遗传算法cga

elm同时优化网络结构和连接参数,得到最优解作为最终的单隐层前馈神经网络;
[0141]
s105,使用测试集测试网络性能,输出平均分类准确率。
[0142]
如图2所示,本发明实施例提供的数据分类系统包括:
[0143]
数据集划分模块1,用于将每个数据集划分为两个子集:训练集和测试集,随机选择其中75%的数据作为训练集,剩余25%的数据作为测试集,并对所有数据的特征属性值进行预处理,均归一化为[

1,1]之间的数;
[0144]
网络初始化模块2,用于初始化单隐层前馈神经网络的结构和部分网络参数,包括隐层神经元的状态、输入权值和隐层偏置,并计算最优输出权值;
[0145]
函数值评估模块3,用于评估生成的染色体的适应度函数值;
[0146]
神经网络构建模块4,用于通过基于极限学习机的协同遗传算法cga

elm同时优化网络结构和连接参数,得到最优解作为最终的单隐层前馈神经网络;
[0147]
网络性能测试模块5,用于使用测试集测试网络性能,输出平均分类准确率。
[0148]
下面结合实施例对本发明的技术方案作进一步描述。
[0149]
实施例1
[0150]
在slfn中同时优化网络结构和连接参数是一项具有挑战性的任务。极限学习机是近年来流行的一种学习方法,它通常以极快的学习速度使得slfn具有良好的泛化性能。本发明提出了一种基于极限学习机的协同遗传算法,称作cga

elm,它能够同时调整单隐层前馈神经网络的结构和参数,以实现具有良好泛化性能的紧致网络。在cga

elm中,设计了一种混合编码方案来优化网络结构和输入参数(即输入神经元和隐层神经元之间的输入权值以及隐层神经元的偏置),而输出参数(即隐层神经元和输出神经元之间的输出权值)由elm确定。将训练误差和网络复杂度的组合作为适应度函数来评估slfn的性能。协同遗传算法中二进制遗传算法主要负责优化网络结构,而实数遗传算法和elm协同优化网络参数。数据分类的实验结果表明,cga

elm在泛化能力方面显著优于cga和elm。此外,与其他先进的算法相比,cga

elm能在保持收敛速度的前提下达到更高的识别能力,具有更大的竞争性。
[0151]
考虑到elm只优化固定结构的slfn的连接权值,且输入权值和隐层偏置的随机性对slfn的性能有较大影响,我们引入二进制遗传算法优化slfn的结构,并使用实数遗传算法来优化slfn的输入权值和隐层偏置,以减少随机性的影响,然后利用elm计算slfn的输出权值。采用二进制遗传算法和实数遗传算法协同进化,同时elm与实数遗传算法相配合,提出了一种基于极限学习机的协同遗传算法,即cga

elm,同时进行网络的参数优化和结构学习,实现一个接近最优的网络,包括以下步骤:
[0152]
1.随机初始化种群;
[0153]
2.评估初始种群中染色体的适应度函数值;
[0154]
3.用轮盘赌选择从种群中随机选择两个父代个体;
[0155]
4.对混合编码个体进行二进制交叉和实数交叉操作,产生两个子代染色体;
[0156]
5.评估两个子代染色体的适应度函数值;
[0157]
6.从种群中随机选择一个父代个体;
[0158]
7.对混合编码个体进行二进制变异和实数变异操作,产生一个子代染色体;
[0159]
8.评估产生的子代染色体的适应度函数值;
[0160]
9.将父代染色体、交叉产生子代染色体和变异产生的子代染色体合并;
[0161]
10.根据适应度函数值选择下一代种群的父代染色体;
[0162]
11.将适应度函数值最小的染色体作为最优解,从而得到经过训练的slfn;
[0163]
12.使用测试集测试训练的slfn的性能。
[0164]
算法运行30次取平均结果,以观察其统计特性,其中平均准确率体现了算法生成的网络的泛化性能,标准差体现了算法的稳定性,该算法还给出了生成的网络结构。
[0165]
本发明主要用于单隐层前馈神经网络对数据样本的分类,与现有技术相比,本发明的技术方案所带来的有益效果是:
[0166]
1)cga

elm可以以快速收敛的速度同时优化单隐层前馈神经网络的网络结构和连接参数,以得到一个接近最优的紧致网络。2)cga

elm比协同遗传算法cga和极限学习机elm算法的准确率更高,具有更好的泛化性能。3)cga

elm与基于梯度的算法和其他的元启发式训练算法相比,能以较快的速度和较高的分类精度保持良好的识别性能,更具竞争力。
[0167]
实施例2
[0168]
1、如图3所示,是单隐层前馈神经网络的示意图,本发明建立的是一个n

k

l型网络,该网络只含有一个输入层、一个隐含层和一个输出层,其中输入层含有n个神经元,对应
样本数据的n个属性,输出层含有l个神经元,对应于l个分类标签,隐含层含有k个神经元,初始设置为k=2
×
n+1。
[0169]
图4是本发明的算法流程图,具体步骤如下:
[0170]
1.随机初始化种群p
g
的pop个染色体,每个染色体包括一个二进制向量和一个实数向量,并设置g=0;
[0171]
2.评估初始种群p
g
中染色体的适应度函数值;
[0172]
3.当g≤maxg时,重复步骤4

15;
[0173]
4.对于重复步骤5

7;
[0174]
5.用轮盘赌选择从种群p
g
中随机选择两个父代个体;
[0175]
6.利用公式(16)和(17)进行二进制交叉操作,产生两个二进制子代,利用公式(18)和(19)进行实数交叉操作,产生两个实数子代,因此获得两个结合二进制向量和实数向量的混合子代染色体;
[0176]
7.评估两个子代染色体的适应度函数值;
[0177]
8.对于重复步骤9

11;
[0178]
9.从种群p
g
中随机选择一个父代个体;
[0179]
10.利用公式(20)和(21)进行二进制变异操作,产生一个二进制子代,利用公式(22)和(23)进行实数变异操作,产生一个实数子代,因此获得一个结合二进制向量和实数向量的混合子代染色体;
[0180]
11.评估产生的子代染色体的适应度函数值;
[0181]
12.将种群p
g
中的pop个父代染色体、交叉产生的nc个子代染色体和变异产生的nm个子代染色体合并,形成一个具有pop+nc+nm个染色体的大种群;
[0182]
13.根据适应度函数值对大种群的所有染色体按升序排序,选择前pop个染色体作为下一个种群p
g+1

[0183]
14.储存具有最小适合度函数值的最好染色体;
[0184]
15.令g=g+1;
[0185]
16.获得最好的染色体,从而得到经过训练的slfn;
[0186]
17.使用测试集测试slfn的性能。
[0187]
步骤1的实施主要包含了一个编码方案:
[0188]
在本发明中,每个染色体都包含了一个隐层神经元状态的二进制向量θ=[θ1,θ2,


k
]∈r
k
,输入权值向量和隐含偏置向量b=[b1,b2,

,b
k
]∈r
k
。所有的参数都是随机产生的,ω和b中的元素位于区间[

1,1],而θ中的元素只有两个取值:0或1,取值为1时表示相应的隐层神经元被激活,取值为0表示相应的隐层神经元不被激活。染色体可表示为:
[0189]
x
i
(g)=[θ
i
(g),ω
i
(g),b
i
(g)]
t
[0190]
其中x
i
(g)是第g代的第i个染色体。种群可表示为:
[0191]
p
g
=[x1(g),x2(g),

,x
pop
(g)]
[0192]
其中pop是种群规模。种群p
g
中的每个染色体包含一个k维的二进制向量和一个(n
+1)
×
k维的实数向量,因此每个染色体的维数是d=(n+2)
×
k。
[0193]
步骤2的适应度函数计算采取以下方式:
[0194]
网络的训练误差定义为:
[0195][0196]
其中t
i,j
是网络的期望输出,o
i,j
是网络的实际计算输出,m
tr
是训练数据的数量,l是输出神经元的个数。
[0197]
网络的复杂度定义为:
[0198][0199]
其中θ
i
∈{0,1}是第i个隐层神经元的激活状态。
[0200]
在以下的适应度函数中,同时考虑训练误差和网络复杂度:
[0201]
fitness(x)=λ
×
f1+(1

λ)
×
f2[0202]
其中λ∈(0,1)是权重系数,优化的目标是最小化这个适应度函数。
[0203]
适应度函数值的计算按如下步骤:
[0204]
1)染色体x被分为一个k维二进制向量和一个(d

k)维实数向量;
[0205]
2)通过二进制向量确定slfn的结构,通过实数向量确定slfn的输入权值和隐层神经元偏置;
[0206]
3)对于给定的训练集,计算相应的slfn的输出权值;
[0207]
4)利用公式(11)计算训练误差,利用公式(12)计算网络复杂度;
[0208]
5)利用公式(13)计算染色体的适应度函数值fitness(x)。
[0209]
下面对步骤5的选择操作进行详细介绍:
[0210]
选择操作是基于对每条染色体适应度函数值的评估,在父代种群、交叉以及变异的后代种群中,进行升序排列,选择前pop个染色体来构成下一代群体。其主要目的是改善种群多样性,提高全局收敛性和计算效率。轮盘赌选择是一种流行的选择方法,需要将最小化适应度函数转化为最大化尺度函数。本发明使用轮盘轮选择随机选择两个父代来执行交叉操作。为此,必须将适应度函数转换为以下尺度函数,以确保染色体的尺度函数值越大,被选择的概率就越高。
[0211][0212]
其中ρ为选择压力,worstfitness是当前种群中最差的适应度值,取ρ=8。
[0213]
种群中每条染色体x
i
,i=1,2,

,pop被选择的概率p
i
由以下公式计算:
[0214][0215]
根据选择概率,参加交叉的父代染色体可以通过轮盘轮随机选择,根据适应度函数值的排序选择生成下一代种群。
[0216]
下面对步骤6的交叉操作进行详细介绍:
[0217]
交叉操作是在遗传算法中产生新染色体的主要操作过程,它以交叉概率交换或改变两条染色体之间的部分基因,在交叉操作过程中,需要随机选择两个父代。在这里,种群中的两个父代x
1,j
,x
2,j
以轮盘赌选择方式随机选择,以产生两个子代y
1,j
,y
2,j

[0218]
(1)二进制交叉:二进制ga中的交叉用于k维二进制向量,具体如下:
[0219][0220][0221]
其中α
j
是一个随机选择的二进制变量。
[0222]
(2)实数交叉:实数ga中的交叉用于(n+1)
×
k维实数向量,具体如下:
[0223][0224][0225]
其中α
j
是一个连续参数,在[

0.4,1.4]中随机选择。
[0226]
下面对步骤10的变异操作进行详细介绍:
[0227]
变异操作是指在种群中以变异概率随机选择一个父代染色体,将该染色体上随机指定的基因位上基因值的改变,它是产生新染色体的辅助方法。
[0228]
(1)二进制变异:二进制ga的变异是通过反转某些随机分配的基因位上的基因值来实现的,即将某些基因位的基因值从1变为0或从0变为1。为此,首先从{1,2,

,k}位点中随机采样个位点,其中符号是向上取整函数,对这些位置上的基因值进行取反操作。设s是一组个随机采样位点,二进制ga的突变如下:
[0229][0230]
z
i
=x
i
,i∈{1,2,

,k}\s.
[0231]
其中z
i
是获得的子代染色体,而x
i
是被选择的父代染色体。
[0232]
(2)实数变异:实数ga的变异用于染色体中的连续变量。首先从{k+1,k+2,

,d}位点中随机采样个基因位,然后对这些基因位上的基因值进行高斯变异。设q是含有个随机采样位,则实数ga中的变异描述如下:
[0233][0234]
其中n(0,σ)表示一个均值为0,方差为σ的正态分布,这里σ=0.2。
[0235]
z
i
=x
i
,i∈{k+1,k+2,

,d}\q.
[0236]
2、实验结果及分析
[0237]
在常用的分类数据集上评估了所提出的cga

elm的性能,这些标准分类数据集选自机器学习数据库uci(http://archive.ics.uci.edu)。表1提供了十个分类数据集的详细信息。此外,表1也提供了cga

elm中使用的初始隐层神经元的最大数量:maxk=2
×
n+1,其中n是属性个数。
[0238]
表1 uci标准测试分类数据集及算法中初始隐层神经元个数
[0239][0240]
cga

elm中使用的标准控制参数设置见表2。在实验中,进行了30次的独立运行来观察该算法的统计特性,采用sigmoid函数作为激活函数。
[0241]
表2 cga

elm中标准控制参数设置
[0242][0243]
1.为了说明该算法的优越性,将cga

elm与具有相同控制参数的cga和elm进行了比较。所提出的cga

elm充分利用了cga和elm的优势,cga具有强大的全局搜索能力和鲁棒性,而elm具有较高的计算效率和分类精度。cga

elm和cga之间的主要区别在于:(1)编码方式。cga

elm使用混合编码,包括网络结构的二进制编码和部分连接参数的实数编码,即输入权值和隐层偏置。而cga也使用了混合编码,包括网络结构的二进制编码和整个连接参数(输入权值、隐层偏置和输出权值)的实数编码。因此,cga

elm缩短了的编码长度,减少了染色体的搜索空间。(2)计算输出权值。在cga

elm的每一代中,利用cga优化slfn的输入权值和隐层偏置,通过elm算法求解线性系统的最小二乘解得到输出权值。而在cga每一代中,slfn的输入权值、隐层偏置以及输出权值都是通过cga的优化过程得到的。因此,cga

elm比cga具有更好的收敛性能,此外,cga

elm还可以加快收敛速度。elm是一种用于优化固定结构的连接参数的非迭代方法,首先随机生成slfn的输入权值和隐层偏置,然后计算输出权值,从而得到slfn的连接参数。cga

elm可以认为是一种进化的elm,同时进行参数优化和结构学习。表3给出了cga,elm和cga

elm三种算法对不同数据集的平均分类精度和标准差的比较。
[0244]
表3三种算法对不同数据集的平均分类精度和标准差的比较
[0245][0246]
从表3可知,对于所有的数据集,cga

elm都取得了最好的实验结果。cga

elm的平均分类精度均高于cga和elm,对所有数据集的平均分类精度均有显著提高。此外,除diabetes外,所有数据集的标准差都有所降低,表明cga

elm的性能比cga和elm更稳定。
[0247]
表4提供了三种算法获得的网络结构,包括隐层神经元的最佳数量(指在30次运行中达到最高分类精度时对应的隐层神经元个数),隐层神经元的平均数量和标准差。
[0248]
表4三种算法所获得的隐层神经元数量的比较
[0249][0250]
对于elm,由于其网络结构是预先确定的,其隐层神经元数量的平均值和最佳值都等于隐层神经元的最大数量,且其标准差为零。在表4中,对于所有的数据集,cga

elm使用的隐层神经元比cga多,但它实现了更高的分类精度。在网络的复杂性和分类精度之间,本发明更加关注分类精度。此外,cga

elm获得的隐层神经元数量的标准差小于cga,表明该算法更稳定。与elm相比,cga

elm使用的隐层神经元更少,但网络性能也得到了提高。结果表明,cga

elm可以实现一个具有良好泛化能力的紧致网络。通过与cga和elm算法的比较,说明了cga

elm算法的可行性和有效性。
[0251]
2.为了证明所提出的cga

elm的分类性能,本发明将它与elm的一些变体进行了比较,其中有huang等人提出的elm(huang gb,zhu qy,siew ck(2004)extreme learning machine:a new learning scheme of feedforward neural networks.in:proceedings of the ieee international joint conference on neural networks,pp 985

990);
optimization,mantegna le

vy flight and neighborhood search.heliyon 5(4)e01275)。
[0256]
表6给出了在十一个uci标准分类数据集上cga

elm和bp、lfpso、psolf和lpsons的平均分类精度和平均运行时间。本表提供了30次独立运行得到的分类精度的最佳值、平均值以及分类精度的标准差。从表6中发现,对于几乎所有的分类数据集,cga

elm的性能都优于bp和其他元启发式算法。就最佳分类精度而言,cga

elm在九个数据集上的表现优于其他算法,在heart和liver数据集上的表现要低于bp,但远优于比较的元启发式算法。对于平均精度,cga

elm在所有数据集上的性能都优于bp、lfpso、psolf和lpsons。
[0257]
表6 cga

elm与bp、psolf、lfpso和lpsons的比较
[0258][0259]
这表明了所提出的cga

elm在分类问题上的良好性能。cga

elm还实现了七个数据集上的最低标准差,这表明它比其他算法更稳定。根据平均运行时间,cga

elm在所有数据集上的收敛速度明显快于其他算法。
[0260]
每种算法在所有分类数据集上的总体性能由fridman检验进行统计测量。表7显示
了每种算法通过fridman检验获得的最佳精度、平均精度、标准差和平均运行时间的平均排名。fridman检验表明了五种算法的差异,且平均排名越低,说明算法性能越好。cga

elm在最佳精度、平均精度、标准差和平均运行时间方面都达到了最低的平均排名。在这五种算法中,cga

elm在每个度量标准中都排名第一。
[0261]
表7 fridman检验的最佳精度、平均精度、标准差和运行时间的平均排名
[0262][0263]
综上所述,实验结果表明,cga

elm明显优于其他算法,并能以较快的收敛速度保持较好的识别性能。
[0264]
4.种群规模和最大进化代数是cga

elm的关键参数,它们与算法的收敛性,有效性有关。本发明研究了这些关键参数在十个基准数据集上对cga

elm的分类精度的影响。每个数据集运行30次,取平均值观察统计特性,以分类精度作为评估cga

elm性能的主要指标。
[0265]
(1)实验一:研究了不同种群规模(10,20,30,40,50,60,70,80,90,100)对cga

elm的性能影响。图5中描述了随着种群规模的增加,十个标准数据集的分类精度的平均变化。从图5中可以看到,除了数据集wine外,几乎所有数据集分类精度变化曲线在不同的种群规模下都有波动。对于wine数据集,cga

elm在不同的种群规模下都可以达到100%的准确率。对于climate、diabetes、statlog和yeast数据集,变化量较小,因此,除了wine和statlog外,cga

elm对大多数数据集的种群规模较敏感。考虑到种群规模对每个数据集的影响不同,在所有实验中将种群规模设置为50。
[0266]
(2)实验二:研究不同的最大进化代数(10,20,30,40,50,60,70,80,90,100)对cga

elm的性能影响。在标准数据集上cga

elm对不同最大进化代数的分类精度变化曲线如图6所示。如图6所示,除了wine数据集之外,几乎所有数据集的平均精度曲线都或多或少地有些波动。在性能没有显著提高的情况下,为了避免浪费迭代次数,本发明所有实验中的最大进化代数设置为60,而不是调整到每个数据集的最优参数。
[0267]
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用全部或部分地以计算机程序产品的形式实现,所述计算机程序产品包括一个或多个计算机指令。在计算机上加载或执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输)。所述计算机可读取存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘solid state disk(ssd))等。
[0268]
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,都应涵盖在本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1