当前位置:首页 期刊杂志

基于FNN模型的决策算法研究

时间:2024-05-04

侯庆山,邢进生

(山西师范大学 数学与计算机科学学院,山西 临汾 041000)

0 引 言

数据挖掘技术的不断发展和完善,吸引了相关信息产业和大量研究人员的注意。随着计算机相关技术的不断成熟和进步,数据量变得越来越庞大,更多的数据可以被利用。利用相关的数据挖掘技术可以将这些数据转化为更有意义的信息和知识。收集到的信息可以应用到市场调查、生产控制、进化分析和科学探索[1-2]等领域。样本分类是一种重要的数据挖掘技术,涉及到从现实世界的大型数据库中提取出有效的知识模式。与有效知识数据挖掘的相关研究是非常重要的,决策过程的复杂程度以及决策结果的好坏往往取决于所用的分类方法是否有效。

由于输入数据的不精确性、模糊性、类别间边界的重叠性以及特征定义的不明确性,在对数据样本进行分类时的任何阶段都可能存在不确定性。传统的样本分类算法中证据理论是模糊决策的有效工具,在对样本分类时,往往需要对样本的特征进行筛选、降维以及为样本分配权重等处理。这些处理过程往往需要人工的参与,因此传统的样本分类算法通常是比较复杂的。首次出现的Dempster-Shafer证据理论[3]被认为是智能系统中推理不确定性信息的有效模型,但当高度冲突的证据被组合起来时,样本数据的分类结果往往是错误的[4-6]。Murph等人[7]提出了一种基于计算所有证据平均值的证据组合方法,但并没有考虑证据权重对于融合结果的影响,将所有的权重设定为同一值。Han等人[8]提出了一种改进的基于证据距离测量的平均组合方法,每个证据主体的权重都被考虑在内。但其组合规则不能有效地处理高度冲突的证据组合。Deng等人[9]提出了一种新的加权平均证据组合方法,但随着样本特征增多,利用不确定性度量来确定证据主体的权重变得困难。

总体上看,数据样本分类[10-11]就是发现区分数据类型的相关模型算法,以便模型能够预测具有未知类标签值的样本。人工神经网络[12-14]是一种流行的数据建模工具,可以执行类似于人脑的智能任务。多层感知器反向传播网络[15-16]算法是神经网络领域中进行数据分类的可靠方法之一。径向基函数神经网络[17-18]是另一种利用径向基函数作为激活函数的强大神经网络模型。此外,针对输入样本数据的不确定性,基于经典集合论的模糊集合论[19-21]在处理现实生活中的不确定性方面是非常灵活的。在模糊系统中,特征与不同样本类别的隶属度相关联。

该文提出的算法与传统的证据理论算法相比,利用神经网络模型并结合模糊理论对数据集进行有效的分类,避免了人工参与样本特征分配权重、特征选择等问题,过程更为简单,效果更加良好。神经网络处理数值和定量数据,模糊系统处理符号和定性数据。该算法有效地结合了这两种方法的优势,利用基于模糊集理论的方法将模糊系统的类人逻辑推理与神经网络的学习相结合,样本分类的算法效率大幅提升。

1 基础理论

1.1 模糊理论

1.1.1 模糊因素集和模糊因素权重集

模糊因素集被定义为Ω={b1,b2,…,bm},其中bi,i∈[1,m]表示第i个决定分类结果的模糊因素。W={w1,w2,…,wm},其中wi,i∈[1,m]表示第i个影响因素对分类结果的影响程度。

1.1.2 隶属度函数

模糊决策的结果与隶属度函数存在紧密的联系,隶属度函数定义如下:对于模糊数据集Ω中的任意元素bi,都有一个数F(bi)∈[0,1]与其相对应,当bi在Ω中变动时,F(bi)称作隶属度函数。隶属度的大小表明了输入样本属于该类可能性的大小。

1.2 前馈神经网络模型

1.2.1 结构组成

前馈神经网络由多层连续的非线性函数构成,包含输入层、隐含层、输出层三部分。结构如图1所示。

图1 前馈神经网络结构

1.2.2 前向传播

前馈神经网络可通过式(1)进行传播。通过逐层的网络传递,由输出层将最终结果输出。网络的传递及输出过程可由式(2)表达。

(1)

其中,fl(·)表示第l层网络节点的激活函数,W(l)∈Rm(l)×m(l-1)表示第l-1层和第l层之间的权值矩阵,其中m(l)表示第l层的节点个数。b(l)∈Rm(l)表示第l-1层和第l层之间的偏置值。z(l)∈Rm(l)表示第l层网络节点的输入值,a(l)∈Rm(l)表示第l层网络节点的输出值。

x=a(0)→z(1)→a(1)→z(2)→…→a(L-1)→

z(L)→a(L)

(2)

其中,L表示网络的层数。

1.2.3 反向传播

对于输入样本(X,y),网络损失采用交叉熵损失,损失定义如式(3)所示。

(3)

(4)

(5)

通过随机梯度下降法对网络参数进行学习和调整,在网络的迭代训练过程中,第l层权重和偏置参数的更新可由式(6)、式(7)表达。

(6)

(7)

其中,α表示学习率。

2 算法设计与实现

2.1 隶属度函数设计

考虑N个输入样本,每个输入样本包含k个属性,输入样本共属于M个类别。定义输入样本集S={s1,s2,…,sn},样本属性集A={a1,a2,…,ak},样本类别集C={c1,c2,…,cM}。定义的样本属性隶属度函数可由式(8)表达。

(8)

i∈[1,k],j∈[1,n]

式中,参数z决定了隶属度函数的中心位置,参数e,l控制交界点处的斜率。隶属度函数的形状及位置由参数e,l,z决定,通过调控相关参数得到满足需求的属性隶属度函数。输入样本某一类别的隶属度可由式(9)表达。

(9)

j∈[1,n],i∈[1,k],m∈[1,M]

对输入样本的类别隶属度进行归一化操作,可由式(10)表达。

(10)

2.2 基于模糊理论的神经网络设计

(1)求解输入样本的隶属度矩阵。

假定包含N个输入样本s以及M个预测类别c,每个样本包含了k个样本特征a。

(11)

(2)设置神经网络激活函数与网络损失。

在输入样本前向传播的过程中,样本信息可由式(12)进行表达,将输入信息z经过网络节点的激活函数,得到网络节点的激活值。为简化计算,神经网络的激活函数选取ReLU与Swish-B激活函数,由式(13)定义表达。

(12)

式中,W=[w1,w2,…,wn]∈Rd为权重向量,b表示偏置值。

(13)

针对样本分类问题,神经网络的损失采用交叉熵损失函数,可由式(14)表达。

(14)

式中,n表示输入样本的数量,m表示输入样本种类,yij表示第i个样本属于分类j的标签值,取值为0或1。f(xij)表示样本i被预测为j类别的概率。

(3)网络参数调节。

将求解好的隶属度矩阵输入到神经网络中,利用反向传播算法对网络的参数进行不断的迭代修正。算法描述如下:

步骤:

①对网络的权值参数W和b随机初始化。

②对样本训练集Ω中的样本进行随机抽取排序。

③从样本训练集Ω中依次选取训练样本(X(n),y(n))。

④通过前向传播计算每一层的输入值与激活函数的值。

⑤通过反向传播算法调整每一层的误差值,更新网络的权值与偏置值。

⑥重复步骤②~⑤直到网络模型在样本验证集上的错误趋于稳定。

输出:权值矩阵W与偏置b。

(4)预测集样本的预测。

利用训练好的人工神经网络对样本预测集数据进行预测,对网络性能做出评估。

3 实 验

3.1 相关数据集说明

选取鸢尾花数据集作为算法网络的实验数据集,鸢尾花数据集作为统计学习与样本分类领域的经典数据集,常被用于实验测试。数据集中记录了150条数据,分为3类鸢尾花(Iris-Setosa,Iris-Versicolour,Iris-Virginica),每类鸢尾花包含了50条数据。每条数据记录了鸢尾花的四个特征,即花瓣的长度和宽度,花萼的长度和宽度,通过鸢尾花的特征预测鸢尾花的品种。

3.2 数据可视化分析

(1)读取鸢尾花数据集的csv文件,鸢尾花数据集中的部分数据如表1所示。每条数据包含了Sepal.Length、Sepal.Width、Petal.Length、Petal.Width四个属性以及品种类别Species。数据集各类属性的均值、方差、中位数、最大值和最小值等如表2所示。

表1 数据集部分数据

表2 数据集属性值数据

(2)绘制3类鸢尾花数据各属性值与ID之间的关系图,如图2所示。

(a)花萼长与ID之间关系

(b)花萼宽与ID之间关系

(c)花瓣长与ID之间关系

(d)花瓣宽与ID之间关系

ID为1~50的为Setosa鸢尾花,51~100的为Versicolour鸢尾花,剩余的为Virginica鸢尾花。通过关系图可以直观地分析各类鸢尾花的属性值分布范围。

3.3 训练与预测

3.3.1 数据处理

在进行相关参数设定之前,首先要对鸢尾花数据集进行一系列的数据操作,对数据集的操作可从以下两个方面考虑:

(1)基于3.2节的数据分析,分析鸢尾花数据集中是否存在异常点,如果存在,将异样点删除,并处理某些样本属性的丢失值。丢失的样本属性值通常由该属性基于统计信息的平均值替换。

(2)对数据集进行相关性分析,分析样本属性之间是否存在相关性,如果存在,去除相关的冗余属性。

对处理过的数据进行划分,将原始数据集划分为训练数据集、测试数据集以及验证数据集三个部分。其中,训练数据集包含80组鸢尾花数据,验证数据集包含40组鸢尾花数据,验证集用于监测过拟合现象以及超参数的调整,测试数据集包含30组鸢尾花数据,用于验证模型的准确性。

3.3.2 参数设定

根据鸢尾花种类,设定3种不同参数的隶属度函数,求解样本基于不同鸢尾花种类的隶属值。基于鸢尾花数据集的可视化分析,隶属度函数中心位置参数Z分别设置为:Z1=5,Z2=6,Z3=7,其中Z1表示Setosa隶属度函数的中心,Z2表示Versicolor隶属度函数的中心,Z3表示Virginica隶属度函数的中心。e1=1,e2=e3=2,l1=l2=l3=2。

3.3.3 神经网络设计

基于对鸢尾花数据集的分析,设计具有单隐含层的神经网络模型,采用随机梯度下降法对网络模型的参数进行学习。神经网络输入层中的节点个数等同于隶属度函数的种类个数。输出层节点的数量与数据集中存在的类的数量相同。神经网络的输入层为数据样本对各类鸢尾花的隶属度值,共有3个神经元,输出层为类别种类,共有3个输出神经元。对隐含层设置不同个数的神经元,通过实验选择最优隐含层神经元个数,以样本分类准确率为评价指标,实验结果如表3所示。

表3 神经元数目准确率测试结果

根据实验结果,最终隐藏层神经元数目设定为4,选取ReLU作为隐含层和输出层的激活函数,Swish-B作为输入层和隐含层的激活函数,设置网络误差为0.000 1,学习率为0.01,最大迭代次数为100。模型训练过程的性能变化如图3所示。

图3 不同隐层神经元数目下的训练性能

3.3.4 数据集训练和预测

在神经网络的训练阶段,首先将鸢尾花数据集分为训练集、验证集、预测集三部分,对其进行模糊化处理。把经模糊化处理后的训练集应用于提出的模糊神经网络,训练网络以建立模糊神经网络分类模型。在测试阶段,通过模糊化处理后的测试集对模型性能进行评估,根据测试集样本预测的准确性对模型进行评估。其详细步骤如下:

Step1:随机抽取鸢尾花数据集中的80条样本数据作为训练集,随机抽取40条样本数据作为验证集,剩余部分数据作预测集。

Step2:利用式(8)~式(10)求解出预测集样本和验证集样本的隶属度矩阵D1、D2。

Step3:设置网络误差、学习率等相关参数,利用训练集的隶属度矩阵D1对网络进行100次的迭代训练,利用验证集的隶属度矩阵D2对神经网络的超参数进行调整。模型迭代过程中的损失变化如图4所示。

图4 模型训练过程中的迭代损失变化

Step4:利用测试集样本预测的准确率对模型的性能进行评估。

3.4 实验结果对比

选取引言部分四种经典的基于证据理论的样本分类算法,计算传统算法基于鸢尾花数据集的分类准确率,与文中提出的样本分类方法进行比较,结果如图5、表4所示。

表4 准确率比较

图5 相关算法精确度比较

随着模糊神经网络训练迭代次数的增加,样本分类的准确性最终稳定到0.98,与基于证据理论的分类算法相比,样本分类的准确率明显提升。

4 结束语

由于基于证据理论的分类算法在进行样本分类时过于复杂,样本的某些属性间存在相关性。另外,在复杂数据集上,基于证据理论的样本分类算法往往不够理想,随着样本属性的增加,算法过程变得越来越复杂,数据集中样本的冲突变得明显。该文提出了一种基于模糊神经网络的样本分类算法,并采用鸢尾花数据集对算法进行检验。与传统的样本分类算法相比,一方面,基于模糊神经网络的样本分类算法不需要过多关注求解过程中的计算以及样本某些属性间是否存在相关性。另一方面,基于证据理论的样本分类算法中存在如何将权重合理分配给相关特征等问题,基于模糊神经网络的样本分类算法引入随机梯度下降的方法,通过多次迭代训练结合反向传播算法自动求解出合理的权重值。由实验结果可知,基于模糊神经网络的样本分类算法对分类问题的平均准确性为98%,样本分类的准确性与传统数据算法相比显著提高。

免责声明

我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!