董镇林,伍世虔+,叶 健,银开州
(1.武汉科技大学 信息科学与工程学院,湖北 武汉 430081;2.武汉科技大学 机器人与智能系统研究院,湖北 武汉 430081;3.北京奥信化工科技发展有限责任公司 项目部,北京 100040)
RBF神经网络[1-8]研究的关键在于如何确定网络结构[9],即如何确定最小隐节点个数。许多学者为此进行研究:①聚类算法。Jia等提出一种基于改进的Canopy-K均值算法的RBF神经网络[10],Liu等提出了一种基于K近邻优化聚类算法的RBF神经网络[11]。该类算法通过确定初始聚类中心,降低聚类的随机性,继而优化神经网络结构。但是不能动态地增减隐节点,从而影响网络结构的精简性。②结构动态优化算法。Li等提出一种基于误差校正-敏感度分析的RBF神经网络[12],Meng等将快速密度聚类算法用于RBF神经网络[13]。该类算法通过自组织聚类确定神经网络结构,具有较好的效果,但是仅考虑隐节点对网络输出的贡献率,未考虑隐节点之间的相似程度。
基于以上问题,本文提出基于自组织聚类和JS散度的RBF神经网络(self-organizing clustering and Jensen-Shannon divergence RBF,SCJS-RBF)。利用自组织聚类思想,解决聚类算法初始聚类中心的问题;采用戴维森堡丁(Davies-Bouldin index,DBI)指数提高K-means聚类精度;结合敏感度指数(sensitivity index,SI)和詹森-香农散度(Jensen-Shannon divergence),解决隐节点相似和冗余的问题。最后实验结果表明,SCJS-RBF的网络结构更精简、预测效果更好、运行时间更短。
RBF神经网络为一个典型的三层前馈型神经网络。网络结构表示为“n-m-p”,其中n为输入层神经元个数;m为隐层神经元个数;p为输出层神经元个数。神经网络结构如图1所示。
图1 RBF神经网络结构
X∈RNum×n为网络输入矩阵,Y∈RNum×p为网络输出矩阵,Num为样本点个数。隐层的径向基函数选用标准高斯核函数,如下式所示
(1)
式中:φi(x) 为第i个径向基函数,ci为第i个径向基函数的中心,δi为第i个径向基函数的扩展宽度。
本文采用聚类算法确定隐节点中心及其扩展宽度,将得到的聚类中心作为隐节点中心,扩展宽度计算方法如下所示
(2)
式中:dimax为第i个隐节点与其它隐节点的最大欧式距离,N为隐节点个数。采用最小二乘方法求解线性方程组得到隐层和输出层之间的网络权值矩阵。
基于聚类的RBF神经网络存在以下缺陷:需要预设聚类中心个数并随机初始化位置;迭代停止条件仅考虑类内的相似性;确定的聚类中心作为隐节点可能存在冗余或相似情况。因此,本文提出一种基于自组织聚类和JS散度的RBF神经网络,解决以上问题。
为解决传统的K-means聚类算法需要人为给定聚类中心个数和随机初始化聚类中心的不确定性问题,提出一种基于距离的初始聚类,基于自组织聚类思想,计算样本点与聚类中心之间的欧式距离并与阈值距离进行比较,判断是否增加聚类中心个数。
定义样本数据集的阈值距离如下式所示
(3)
式中:xi为第i个样本点,xj为第j个样本点,Dismean为所有样本点间的平均距离,Dis(xi,xj) 为样本点xi和xj之间的欧式距离,λ1为调节系数。
初始时刻,聚类中心点个数为0,依次读取样本数据集,读取第一个输入样本时,将其作为第一个聚类中心。
读取第k个样本点xk时,假设已经存在j个聚类中心,计算该样本与每个聚类中心的欧式距离,比较出最小值Dis(xk,cl) 并得到第l个聚类中心。下面分两种情况讨论:
(1)类内点增加。当Dis(xk,cl)≤V时,认为第l个聚类中心与样本点xk的距离足够近,则把该样本点归为第l类;
(2)聚类点增加。当Dis(xk,cl)>V时,认为第l个聚类中心与样本点xk的距离足够远,则把该样本点新增为第j+1个聚类中心。
当数据读取完毕后,即完成了基于距离的自组织初始聚类,得到确定的初始聚类中心个数和位置,并将其作为K-means算法的输入,从而避免因K-means算法对初值敏感而造成的聚类效果不够准确。
传统的K-means聚类算法按照最小距离原则划分样本数据集,迭代停止条件为聚类中心不再发生变化,仅考虑了类内的样本点的稠密程度,并没有考虑类与类之间的相异性。基于此,提出采用DBI指数作为K-means聚类算法的准则函数。
DBI指数[14],又称为分类适确性指标,为常用的聚类算法评价指标之一。相关定义和概念如下:
(1)类间距离
类间距离Dis(ci,cj) 表示第i个聚类中心ci与第j个聚类中心cj之间的欧式距离,如下式所示
(4)
(2)类内标准误差
类内标准误差Si表示为第i个类Ci中每一个样本数据点u与该类的聚类中心ci之间的欧式距离标准误差和,如下式所示
(5)
式中:Ni表示为第i个聚类中心Ci包含的样本数据个数。
(3)DBI指数
DBI指数的值由聚类中心与聚类中心之间和类内点之间的欧式距离关系决定,如下式所示
(6)
理想的聚类效果应为不同类之间的相似程度尽可能小,并且类内的相似程度尽可能大。DBI指数既衡量类与类之间的相异性,即类与类之间的空间分布尽可能相互远离,也就是Dis(ci,cj) 越大越好,还考虑了类内的相似性,即类内点之间的空间分布情况尽可能稠密,也就是Si+Sj越小效果越好。因此,DBI指数的值越小,说明聚类结果越接近于样本数据真实分布,表示聚类效果越好。
敏感度指数是衡量一个模型输出对输入依赖性的重要指标。有很多方法来定义敏感度,但是共同点均为模型的输入参数对输出变量的贡献程度。本文将确定的聚类中心作为隐节点,为删减可能存在的冗余隐节点,得到更为紧凑的神经网络结构,在不影响网络整体性能的前提下,采用敏感度分析衡量RBF神经网络每个隐节点对网络输出的贡献率,删减对网络输出贡献率较低的隐节点。
第i个隐节点的敏感度计算公式如下所示
(7)
式中:Std(wiφi(x)) 为第i个隐节点到网络输出的标准差,wi为第i个隐节点与输出层隐节点间的权值。SIi越小,则说明其对网络输出的贡献率越低,可删除该隐节点。为了便于选取删减隐节点的阈值,将敏感度进行如下归一化
(8)
其次,计算所有贡献率的平均值如下式所示
(9)
当所有隐节点的敏感度中的最小值NSImin<λ2NSImean时,认为第i个隐节点对网络输出的贡献率过低,将该隐节点删除。其中,λ2为调节系数。
在删除隐节点后,网络中可能仍存在相似度较高的隐节点,在不影响网络整体性能的前提下,本文提出一种基于JS散度的隐节点合并方法,进一步精简网络结构。在信息论中,JS散度常用于衡量两个概率分布之间的相似程度[15]。给定一个连续概率分布P,信息熵表示为
(10)
式中:p(x) 为分布P的概率密度函数。KL散度(Kullback-Leibler divergence),又称相对熵,用于衡量两个概率分布之间的相似程度,当两个概率分布相等时,KL散度为0,当两个概率分布差别较大时,KL散度值也越大。计算公式表示为
(11)
式中:H(P,Q) 表示分布P和Q之间的交叉熵,可知DKL(P‖Q)≠DKL(Q‖P), 即KL散度具有不对称性。为解决这个问题,在KL散度的基础上引入JS散度,计算公式表示为
(12)
JS散度为KL散度的一种变体,能很好解决KL散度的不对称性问题,思想在于构造p(x) 和q(x) 的平均概率分布。JS散度具有对称性,即DJS(P‖Q)=DJS(Q‖P), 取值范围[0,1],当两个概率分布完全相反时为1,完全相同时为0。当两个概率分布的相似程度越高,其JS散度值也越小。将此思想引入RBF神经网络,分析两隐节点间的相似程度,相似程度足够大,则可合并隐节点。计算两个隐节点间的JS散度关键在于计算概率密度函数。考虑到径向基函数和正态分布的概率密度函数的相似性,将径向基函数φi(x) 归一化,如下式所示
(13)
式中:fi(x) 即为正态分布的N概率密度函数,其中变量x的维度为n,期望值为ci,标准差为δi。由式(11)~式(13)可得,两两隐节点间对应的JS散度计算如下
(14)
其次,计算所有JS散度的平均值如下式所示
(15)
当两隐节点间的JS散度中最小值DJS(fi‖fj)min<λ3JSmean时,认为第i和第j个隐节点的相似程度足够大,可以合并为一个新的隐节点,中心位置调整为两个隐节点位置的均值。其中,λ3为调节系数。
本算法中首先提出基于距离的初始聚类以得到确定的聚类中心个数和位置,作为K-means聚类算法的初始值;然后提出采用聚类算法评价指标DBI指数作为K-means聚类的准则函数,并将聚类中作为网络隐节点;接着采用基于敏感度分析的隐节点删除方法,删除对网络输出贡献率过低的隐节点,更新网络参数;最后提出基于JS散度的隐节点合并方法,合并相似度较高的隐节点,更新网络参数。算法的详细步骤如下:
步骤1 网络初始化,此时聚类个数为0,输入样本点依次传入网络;
步骤2 当第一个样本点进入网络后,增加一个聚类中心,并将第一个样本点归为该类;
步骤3 当第k个样本点进入网络后,假设存在j个聚类中心,计算其与每个聚类中心的距离,比较出最小值Dis(xk,cl), 即找出第l类;
步骤4 当Dis(xk,cl)≤λ1时,即满足类内点增加原则,则将第k个输入样本数据归入类l,否则,转向步骤5;
步骤5 当Dis(xk,cl)>λ1时,即满足聚类点增加原则,则增加到j+1个聚类中心,将第k个输入样本数据归入类j+1;
步骤6 重复步骤3~步骤5,直到输入样本点读取完毕,至此输入数据完成划分,得到N个初始聚类中心个数和位置;
步骤7 完成K-means聚类的迭代过程,准则函数为DBI指数;
步骤8 完成网络参数学习,得到隐节点扩展宽度和隐层与输出层之间的网络权值矩阵;
步骤9 计算每个隐节点的敏感度值与敏感度均值,如果敏感度最小值NSImin<λ2NSImean,认为对应隐节点的贡献率过低,删除该隐节点,并重复步骤7~步骤8,更新网络参数,否则转到步骤10;
步骤10 计算两两隐节点间的JS散度与JS散度均值,如果JS散度最小值DJS(fi‖fj)min<λ3JSmean, 认为第i和第j个隐节点的相似程度足够大,可以合并为一个新的隐节点,并重复步骤7和步骤8,更新网络参数,否则训练结束。
为检验SCJS-RBF的非线性映射能力和在实际应用中的有效性,本文选取典型的非线性sinE函数、非线性动态系统辨识和实例进行仿真实验,与其它算法进行实验结果对比,并给出结论。实验环境为Intel(R) Core(TM) i7-6700HQ CPU @ 2.60 GHz,内存8 G,操作系统为Windows10 X64专业版,仿真工具为MATLAB R2020b。
非线性函数sinE的数学表达式如下式所示
y=0.8e-0.2xsin(10x)
(16)
图2 非线性sinE函数初始聚类中心变化曲线
图3 非线性sinE函数逼近效果
由图2可知,经基于距离的初始聚类后,获得的初始聚类中心个数为12。经基于敏感度分析的隐节点删除方法后隐节点为11个,经基于JS散度的隐节点合并方法后为隐节点为9个。由图3可知,经过SCJS-RBF训练,测试输出与期望曲线基本吻合,可以很好的逼近非线性sinE函数。
此外,为了显示SCJS-RBF的优良逼近能力,将该网络与浅层BP神经网络和FDC-RBF[13]进行实验结果对比,见表1。当BP神经网络设定结构同为1-9-1时,其运行时间和测试MSE均高于SCJS-RBF;在逼近非线性sinE函数时,SCJS-RBF需要的隐节点个数、测试MSE以及网络运行时间均低于FDC-RBF,结构更精简,逼近能力更强,运行时间更短。
表1 非线性sinE函数逼近实验结果对比
非线性动态系统辨识表达式如下式所示
(17)
式中:u(t)=sin(2π/25),t∈[1,400],y(0)=0,y(1)=0。 函数表达关系为:f(t+1)=f(y(t),y(t-1),u(t)), 输入为三维:y(t),y(t-1),u(t), 输出为一维:f(t+1)。 选取100组训练样本数据,其中t∈[1,100], 100组测试样本数据,其中t∈[300,400]。 调节系数λ1=0.25,λ2=0.1,λ3=0.2。初始聚类中心个数的变化如图4所示。SCJS-RBF的系统辨识效果如图5所示。
图4 非线性动态系统初始聚类中心变化曲线
图5 非线性动态系统辨识效果
由图4可知,经基于距离的初始聚类后,获得的初始聚类中心个数为14。经基于敏感度分析的隐节点删除方法后隐节点为12个,经基于JS散度的隐节点合并方法后为隐节点为9个。由图5可知,经过SCJS-RBF训练后,可以很好的对非线性动态系统进行辨识。
此外,为了显示SCJS-RBF的优良辨识能力,将该网络与浅层BP神经网络和FDC-RBF[13]进行实验结果对比,见表2。当BP神经网络设定结构同为3-9-1时,其运行时间和测试MSE均高于SCJS-RBF;与FDC-RBF比较,隐节点个数更少,测试MSE更小,网络结构更为精简且辨识效果更好。可见,SCJS-RBF进行非线性动态系统辨识时,可以得到更为紧凑的结构,辨识效果更好,运行时间更短。
表2 非线性动态系统辨识实验结果对比
在露天矿山爆破作业中,矿石爆破后的块度尺寸为衡量爆破质量的首要指标。一般情况下,用平均块度的尺寸来衡量爆破效果。偏大,会增加矿石二次爆破成本和运输成本;偏小,会增加钻爆成本。块度的大小主要受岩石性质和爆破设计参数的影响。目前用户主要通过经验公式来设计爆破参数以达到期望的块度尺寸,以满足生产要求。然而经验公式的适用范围有限,无法满足露天矿山爆破的高效和经济生产的要求。神经网络无需确定的函数关系,以数据为驱动建立输入和输出之间的非线性映射关系,更加适合用于块度尺寸预测。
为进一步验证本算法在实际应用中的有效性,现把某露天矿山的225组平均块度数据作为样本数据,随机取200组作为训练样本数据,25组作为测试样本数据,部分测试样本数据见表3。输入为岩石系数、单位炸药消耗量和单孔装药量,输出为平均块度。调节系数为λ1=0.4,λ2=0.1,λ3=0.05。初始聚类中心个数变化如图6所示,初始聚类中心个数为28。经基于敏感度分析的隐节点删除方法后隐节点为26个,经基于JS散度的隐节点合并方法后隐节点为19个。
表3 部分测试样本数据
图6 初始聚类中心个数变化曲线
测试结果对比如图7所示,相较RBF预测曲线,本算法预测曲线更加吻合实际曲线,即测试误差更小,预测效果更好。实验结果对比见表4,可知,在隐节点个数相同的情况下,SCJS-RBF的运行时间和测试MSE优于RBF。本算法可以较好地指导该矿山的爆破作业,提高生产效率,控制生产成本。
表4 实验结果对比
图7 测试结果
针对RBF神经网络结构的确定问题,提出了一种基于自组织聚类和JS散度的RBF神经网络。提出基于距离的初始聚类解决传统聚类算法的随机化初始聚类中心问题;采用DBI指数解决K-means算法聚类精度的问题;采用敏感度分析删减隐节点,解决隐节点冗余的问题;提出基于JS散度的隐节点合并方法,解决隐节点相似的问题,得到更加精简的网络结构。最后通过仿真实验验证了SCJS-RBF的有效性。