前言:想要写出一篇令人眼前一亮的文章吗?我们特意为您整理了5篇训练神经网络的优化方法范文,相信会为您的写作带来帮助,发现更多的写作思路和灵感。

安全评价的关键与基础是选取与确立评价的指标体系,它对评价的结果是否符合实际情况至关重要。化工企业安全评价指标体系应尽可能反映化工企业的主要特征和基本状况。评价过程中指标体系的要素组成非常关键,如果选取的要素太多,有可能使评价指标体系更加庞大和冗杂,从而增加评价的困难程度,甚至会使一些重要因素被忽略;如果指标因素太少,则难以较完整地反映被评价系统的客观实际情况。•33•通过查阅研究某大型炼油化工企业的相关文献和资料[4],由人、机和环境3个方面构成的系统模型出发,把生产系统所有重要环节包含其中,从而建立出化工企业的安全评价指标体系如图1和表1至表4所示。
2化工企业的遗传神经网络安全评价模型
2.1遗传神经网络遗传算法优化神经网络的方法主要有2种:对神经网络的初始权值和阈值进行优化;对神经网络的结构进行优化[5]。本文在保持神经网络的结构不变的情况下,用遗传算法对BP神经网络初始权值和阈值进行优化。
2.2遗传神经网络评价模型遗传神经网络优化的数学模型[6]如下:本文构建的遗传神经网络模型的运行过程如下:(1)初始化BP神经网络。(2)把BP神经网络的全部权值与阈值实数编码,确定其长度l,确定其为遗传算法的初始种群个体。(3)设置遗传算法的相关参数以及终止条件,执行遗传算法;遗传算法包括对群体中个体适应度进行评价,执行选择、交叉、变异遗传操作,进化生成新的群体;反复操作至设定的进化代数,最终取得最佳染色体个体。(4)把最佳染色体个体解码,分解为BP网络对应的权值、阈值,输入训练样本,利用BP网络进行训练。(5)得到训练好的BP神经网络,则可输入实例样本进行评价。
3遗传神经网络评价模型在化工企业的应用
3.1学习样本的准备根据前文所确定的评价指标体系和对某大型炼油化工有限公司成氨分厂提供的空气分离、渣油气化、碳黑回收、一氧化碳变换、甲醇洗涤、液氮洗涤等工序的安全原始数据,参考文献中化工企业安全评价指标取值标准,进行分析和整理,得出11个实例样本,如表5所示。选择10个样本作为遗传神经网络的训练样本,1个样本作为测试样本。
3.2BP网络结构的确定BP网络拓扑结构一般是由网络层数、输入层节点数、隐含层节点数、隐含层数以及输出层节点数等来确定。本文建立的遗传神经网络模型是根据经验来确定神经网络的层数,一般选取BP神经网络的层数为3层[7]。通过化工企业安全评价指标的分析,得出BP神经网络输入层神经元数目为评价指标的总数12+6+8+5=31。模型最后输出的结果为综合安全评价结果,因此,神经网络的输出层节点数确定为1。隐含层中节点数的范围通过经验公式来确定,本文在其确定范围内选12。依据训练样本的规模,设定学习率为0.1,最大训练误差值设为10-5,循环学习次数为1000次。网络输出层为1个节点,即化工企业的安全评价结果。化工企业安全等级一般分为5级[7],如表6所示。
3.3遗传算法优化遗传算法中,参数设定如下:种群规模设为300,交叉概率设为0.7,进化代数设为100,变异率设为0.05。本文运用MATLAB软件中的遗传算法工具箱gads,在GUI操作界面中输入以上参数,并输入适应度函数,对神经网络的权阈值进行优化。经过遗传操作后,运行遗传算法工具箱,则可得出最佳适应度曲线图和最佳个体图(图2),得到最佳适应度个体,将其进行解码,作为该网络的初始权值和阈值赋给BP神经网络。
3.4GA-BP神经网络训练在MATLAB界面中编程语言,得到输出向量和网络均方差变化图。训练结果与期望输出见表7,BP网络训练过程如图3所示。从训练结果可以看出,该网络的误差值不超过10-5,满足设定要求。用该网络对实例样本进行安全评价,得到结果为3.9956,对照安全评价输出结果等级表为较安全,与目标值吻合。从而训练后的网络稳定性得到验证,可以用于化工企业安全评价。
4结论
[关键词] 小生境遗传算法 神经网络 股票 预测
一、引言
股票和股票市场对国家企业的经济发展起到了积极的作用,如可以为投资者开拓投资渠道,增强投资的流动性和灵活性等。但股票价格的形成机制是颇为复杂的,股票价格既受到多种因素,诸如:政治,经济,市场因素的影响,亦受技术和投资者行为因素的影响,个别因素的波动作用都可能会影响到股票价格的剧烈波动。因此,股票价格和各影响因素之间很难直接建立明确的函数关系表达式。针对这一情况,将可有效处理非线性问题的神经网络引入到股票价格的预测中来,但神经网络收敛慢,易陷入局部极小点,出现振荡,鲁棒性差。所以有的学者用遗传算法(ga)来优化神经网络,这种神经网络可能获得个别的甚至局部的最优解,即ga早熟现象。本文引进能较有效地保持种群多样性的小生境遗传算法(nga),采用nga优化与用ga优化的bp网络权值进行对比,证实了nga的判别准确性和寻优能力。
二、小生境遗传算法优化的神经网络
1.bp神经网络
反向传播(bp)算法又称为误差逆传播校正方法,它是1974年p.werbos(哈佛大学)提出的。133229.CoMbp算法用来训练多层前馈神经网络,属于监督学习算法。bp网络具有结构清晰,易实现,计算功能强大等特点。因而是目前最常见,使用最广泛的一种神经网络。但是在实际应用中,传统的bp算法存在以下问题:收敛速度慢;若加快收敛速度易产生振荡;存在局部极小和平台问题;泛化能力差;隐节点数和初始值的选取缺乏理论指导;未考虑样本选择对系统学习的影响等。所以很多学者提出许多改进的方法,用小生境遗传算法优化神经网络权值的神经网络来预测股票价格。
2.小生境遗传算法
小生境遗传算法(iche genetical gorihm)的基本思想是:首先比较任意两个个体间的距离与给定值的大小,若该距离小于给定值,则比较其适应值大小。对适应值较小的个体施加一个较强的惩罚,极大地降低其适应值。也就是说,在距离l内将只有一个优良个体,从而既维护了群体的多样性,又使得各个体之间保持一定的距离,并使得个体能够在整个约束空间中分散开来。
3.神经网络连接权的优化
用小生境遗传算法可以优化神经网络连接权,神经网络结构,学习规则等,这里我们对神经网络的连接权进行优化,具体步骤如下:
(1)随机产生一组权值分布,采用某种编码方案对该组中的每个权值(或阈值)进行编码,进而构造出一个码串(每个码串代表网络的一种权值分布),在网络结构和学习规则已确定的前提下,该码串就对应一个权值和阈值取特定值的一个神经网络。
(2)对所产生的神经网络计算它的误差函数,从而确定其适应度函数值,误差越大,则适应度越小。
(3)选择若干适应度函数值最大的个体,直接遗传给下一代。
(4)利用交叉和变异等遗传操作算子对当前一代群体进行处理,产生下一代群体。
(5)重复(2)(3)(4),使初始确定的一组权值分布得到不断地进化,直到训练目标得到满足为止。
这种由小生境遗传算法训练神经网络的方法也可以称做混和训练法。将基于小生境遗传算法的遗传进化方法和基于梯度下降的反传训练相结合,这种训练方法吸取两种方法的各自特点,所以收敛速度快。
三、股票价格预测仿真
根据经验选取输入预测日前四天开盘价、收盘价归一化后做为作为输入量,输出为第五天收盘价归一化数值。所以,本文采用神经网络结构为(8,5,1),即网络的输入层6个节点,隐含层9个节点,输出层1个节点。本文选择了“xdg 新梅(600732)”从2006年3月14日到2006年7月1日数据进行了仿真。利用matlab6.5编程,取70组训练样本和30组测试样本。如图(1)表示用遗传算法和小生境遗传算法对神经网络的权值进行优化时,误差曲线变化;从图中可以看出,小生境遗传算法收敛速度要快;图(2)表示股票预测值和实际值比较,从图中可以看出,遗传算法和小生境遗传算法对神经网络的权值的模型进行股票价格的预测,都能预测出股票走向趋势,但是,后者的预测精度显然要比前者高。
四、结束语
股票市场的不确定因素太多,股票的价格更是多种因素影响的集合体,是典型的非线性动力学问题。股票价格的中长期准确预测很难。本文建立了用小生境遗传算来优化神经网络模型来预测股票价格,结果表明,这种方法比单用遗传算法优化的神经网络收敛速度快,预测精度高。对于股票价格预测具有较好的应用价值。
参考文献:
[1]龙建成李小平:基于神经网络的股票市场趋势预测[j].西安电子科技大学学报(自然科学版.2005.3(32):460-463
[2]王波张凤玲:神经网络与时间序列模型在股票预测中的比较[j].第27卷第6期武汉理工大学学报·信息与管理工程版.2005.9(27):69-72
关键词:网络入侵;神经网络;参数优化;人工鱼群算法
中图分类号:TP393 文献标识码:A 文章编号:2095-2163(2015)03-
Application of Back Propagation Neural Network Optimizing by Artificial Fish Swarm Algorithm in Network Intrusion Detection
LIU Chun
(Network Management Center , Sichuan College of Architectural Technology, Deyang Sichuan 618000, China)
Abstract: In order to detect the network intrusion effectively, an artificial fish swarm (AFSA) algorithm is proposed to optimize the BP neural network (BPNN) intrusion detection model. In this paper, firstly, weights and threshold coding state of BP neural network is artificial fish of the AFSA, followed by artificial fish swarm foraging, Poly Group, rear end, which is used to optimize the parameters of BP neural network, to find the optimal parameters of the BP neural network; After that, using the establishment of optimal BP neural network model, the behavior of the network intrusion are detected. In the Windows XP operating system, on the platform of MATLAB 2012 by the KDD cup 99 data set of simulation test, compared with the traditional BP neural network model, the proposed model can significantly improve the network intrusion detection accuracy and has a more extensive application prospects.
Keywords: Network Intrusion; Neural Network; Parameter Optimization; Artificial Fish Swarm Algorithm
0 引言
随着互联网规模越来越大,网络的用途越来越广泛,在网络给人们生活带来便利的同时,其受到入侵的可能性页随之增加,未经授权用户对计算机进行操作,可能窃取系统中的信息,给计算机系统造成一定的安全隐患,网络安全问题日渐受到学界关注,在网络安全防御研究领域,网络入侵检测已然成为迫切需要解决的一个重要课题[1-2]。
按照入侵检测方式的不同,可将其分为误用入侵检测和异常入侵检测[3]。其中,误用入侵检测方法主要是依据检测知识库,对网络入侵行为进行匹配,如果检测知识库不完备,则可能存在某些未知的入侵行为无法检测。而异常入侵检测是通过对可接受行为进行描述,如果某项行为与正常行为存在偏差,则认为该行为是入侵行为,异常入侵检测方法能够对未知网络攻击行为进行有效检测,从而成为当前网络入侵研究的热点研究内容[4]。
网络入侵检测是依据网络行为与正常行为进行比较,以判断是否存在网络入侵、攻击行为,因此,可以将网络入侵检测认为是一个数据分类问题。网络入侵检测处理的分类数据属于大样本数据,具有高维、复杂、非线性等特征;相应地,传统的数据分类检测方法在实际应用执行时,即表现了计算速度慢、复杂、正确率低的结果现象[5]。近年来,随着人工智能技术的快速发展,神经网络被越来越多地用于数据分类问题。神经网络有多种类型,其中,BP神经网络(Back Propagation Neural Network,BPNN)结构简单、学习能力强,切具有非线性逼近映射能力,相较于其它类型的神经网络,BP神经网络的用途更为广泛。但是,利用BP神经网络进行网络入侵检测,其检测的准确率与网络的初始权值、阈值等参数有关,为了获得较高的网络入侵检测正确率,就需要对BP神经网络进行参数优化。即在利用学习样本对BP神经网络进行训练过程中,不是随机产生BP神经网络的初始权值和阈值,而是利用智能算法,如粒子群、遗传、蚁群等算法等对BP神经网络初始权值和阈值进行优化,使BP神经网络避免陷入局部最优,并且找到全局最优参数,从而使BP神经网络分类精度更高,网络入侵检测性能也随之提升[6-8]。在这些智能算法中,人工鱼群算法(Artificial Fish Swarm Algorithm,AFSA)是近年来提出的一种新的智能仿生算法,该算法鲁棒性强,可并行操作,同时便于实现[9]。利用AFSA算法来对BP神经网络参数进行寻优,能够避免BP神经网络易陷入局部极小的缺陷,实现了BP神经网络参数的最优获取,因而可知这是一种非常适合BP神经网络参数寻优的理想方法。同时,仿真试验又对AFSA-BPNN(人工鱼群算法优化BP神经网络)模型的网络入侵检测性能进行了有效验证。
1 网络入侵检测数学模型
网络入侵是指未经授权的用户实施的任何试图以非法手段来获取计算机资源的行为。进行网络入侵检测,主要是通过收集网络或系统中的若干关键点的未经授权用户的访问、操作等信息,并对这些信息进行对比分析,以确定系统中是否存在被攻击的迹象[10]。
在计算机网络中,存在两种现象,一种为无入侵信号,一种为有入侵信号,用 表示无入侵信号, 表示有入侵信号,则网络数据信号数学表达式:
(1)
其中, 表示收集到的所有信号, 表示在抽样间隔中接收到的信号所有字节的长度; 表示网络数据中的噪声, 表示入侵信号。
在进行网络入侵检测时,存在噪声,并且,接收到的信息还存在非线性的关系,为了保护网络安全,有效地防范未经授权用户对网络安全形成的潜在隐患,有必要对这些网络访问行为进行识别、检测,由上可知,BP神经网络即可有效地进行网络入侵检测。
2 AFSA优化BPNN的网络入侵检测模型
2.1 人工鱼群算法
AFSA可以地对BP神经网络进行全面参数寻优,通过模拟鱼群的觅食、聚群、追尾等典型行为,不断地对BP神经网络参数进行优化[11]。算法中典型行为的实现机理如下:
(1) 觅食行为。设Xi表示人工鱼当前所处的位置,Xj表示一个随机选择的位置,对Xi和Xj的食物浓度进行比较,如果Xj处的食物浓度大于Xi处的食物浓度,则向Xj处前进,否则人工鱼留在原处不动,而后,重新随机选择位置Xj,再对Xi和Xj的食物浓度进行判断,反复试探nj次后,如果选取的位置处食物浓度仍然小于初始位置的食物浓度,则人工鱼随机前进一步。该行为的数学描述可如式(2)所示:
(2)
式中,Rand()表示一个(0,1)之间的随机数;Step表示人工鱼移动的步长。
(2) 聚群行为。设nf表示人工鱼视野范围内所有的伙伴数目,Xc表示所有鱼群的中心位置,若Yc/nf>δYi(δ为拥挤度因子),则表明当前人工鱼所处位置的食物浓度小于伙伴处的食物浓度,人工鱼便朝伙伴中心前进一步,否则,人工鱼继续执行觅食行为。这一行为的数学实现则如式(3)所示:
(3)
(3) 追尾行为。在人工鱼视野范围内,浓度最高Yj的人工鱼位置为Xmax,若Yj/nf> Yi,则人工鱼群向Xj处前进一步,否则人工鱼执行觅食行为。
(4)
(4) 随机行为。人工鱼没有执行明确的觅食或聚群行为,而是在视野范围内随机选择某个位置,随后向其移动,该行为属于人工鱼觅食行为的一种缺省行为。
(5) 公告板。公告用于记录食物浓度最高的人工鱼的状态。
2.2 BP神经网络模型
BP神经网络学习过程如下[12]:
(1)确定BP神经网络结构。设输入层、隐层和输出层的神经元数分别为N、L和M,网络输入向量为 ,隐含层输出向量为 ,网络实际输出向量为 ,网络输入层神经元节点 到隐含层神经元节点 的权重系数表示为 ,隐含层神经元节点 到输出层神经元节点 的权重系数表示为 ,训练集的目标输出向量为 。此外,分别用 和 来表示输出神经元和隐神经元的阈值,设:
(5)
于是,得到隐含层各神经元节点的输出为:
(6)
同理,输出层各神经元节点为:
(7)
(2)将输出神经元 与目标向量 进行比较,计算出输出误差项:
(8)
(9)
(3)依次计算出各权重的调整量:
(10)
(11)
式中, 表示网络的学习速率,其取值在0-1之间。
(4)调整网络权重,公式如下:
(12)
(13)
(5)判断是否达到最大迭代次数,如果没有,将网络输出值与期望值进行比较,如果大于误差允许的范围,返回步骤(1),继续迭代,在每次迭代过程中,都进行判断,误差是否达到预定目标,或者是否达到最大迭代次数,如果满足终止条件,则停止迭代。
2.3 SAFSA-BPNN网络入侵检测流程
(1) 收集BP神经网络状态信息,设置人工鱼状态;
(2) 随机生成n条人工鱼,每一条人鱼代表一组BP神经网络参数,用passed_iterate表示BP神经网络训练迭代的次数;
(3) 登记每条人工鱼所在位置的食物浓度,并对每条人工鱼处的食物浓度进行排序登记,将食物浓度值最高处的人工鱼个体的位置及食物浓度登记写入公告板;
(4) 随机选择一条人工鱼,对其觅食、追尾和聚群行为后所处位置的食物浓度进行判断,将其所处位置的食物浓度与公告板中的所登记的食物浓度进行比较,如果该人工鱼处的食物浓度高于公告板的食物浓度,则该人工鱼向此方向前进一步。
(5) 更新公告板内容,将步骤(4)中得到的最好人工鱼的位置及食物浓度记入公告板。
(6) 判断BP神经网络是否寻优得到最优参数,或训练是否达到最大迭代次数,如果没有满足上述情况,则人工继续执行觅食、追尾、聚群行为,passed_iterate=passed_iterate+1,并转步骤(4)继续迭代执行,如果达到最大迭代次数,则BP神经网络训练寻优结束,输出公告板中的人工鱼的位置及食物浓度;
(7) 根据寻优结束后BP神经网络模型,进行网络入侵检测。
利用AFSA-BP神经网络模型,进行网络入侵检测流程如图1所示。
图1 AFSA优化BPNN参数流程
Fig. 1 the flow chart of BPNN parameters optimized by AFSA
3 仿真测试
3.1 数据来源
为了验证本文模型的网络入侵检测效果,利用KDD CUP 99的数据集进行仿真试验,并在Windows XP,Matlab 2012 软件平台上执行实现。由于BP神经网络不能直接对字符型数据进行处理,而在KDD CUP 99数据集中却包含有大量的字符型数据,因此,在进行实验仿真之前,需将KDD CUP 99数据集中的字符型数据转换成整型数据[13]。在利用BP神经网络进行网络入侵检测时,实质上就是一个分类问题,因此,可将KDD CUP 99数据集的分类字段处理成五个类标识:1(“normal"),2("Probe"),3("DOS"),4("U2R"),5("R2L")。同时,为了有效地提高网络入侵检测正确率,有必要在BP神经网络进行训练学习时,利用人工鱼群算法对BP神经网络参数进行优化,训练集来自于文件kddcup.data_10_percent.gz,从中随机选取800条记录,测试集数据则将随机从文件corrected.g中选取300条记录。
在KDD CUP 99数据集中,每一个数据集均包含了41个特征属性,而且每一个数据集还对应一种类型的网络入侵行为,为此BP神经网络输入层有41个神经元,输出层有一个神经元,经过反复试验,当隐含层有22个神经元时,网络收敛速度最快,误差最小,最终确定BP神经网络结构为41×22×1。利用训练集对BP神经网络进行训练,再用人工鱼群算法对BP神经网络参数进行优化,人工鱼群参数可如表1所示。
表1 人工鱼群算法参数设置
Tab. 1 parameter setting of artificial fish swarm algorithm
参数名 说明 值 参数名 说明 值
Visual 可视域 18 P 鱼群规模 30
δ 拥挤因子 0.58 Step_max 迭代步长 0.6
N 迭代次数 5000
3.2 对比模型
为了证明AFSA-BPNN模型进行网络入侵检测的有效性,在同等情况下,利用传统的BP神经网络(BPNN)模型进行对比实验。选择了检测率、误报率和运行速度作为模型网络入侵检测性能的指标评价。在此,仅分别给出检测率和误报率的定义如下:
(14)
(15)
3.3 数据处理
在KDD CUP 99数据集中,每个数据集有41个特征属性,对其中的字符型数据转换成整型数据,但由于这些数据集中的属性量纲不同,为了有效地检测出网络入侵行为,即需对数据集进行归一化处理,以减少量纲不同对网络入侵检测的影响。归一化处理公式如下:
(16)
式中, 表示某属性的最大值; 、 分别表示某属性的最小值和最大值; 表示经过归一化处理后的某属性。
3.4 结果与分析
3.4.1 检测结果对比
采用BPNN作为对比模型,以验证ASFA-BPNN模型进行网络入侵检测时的实际性能,首先编程利用同样的训练集对两种模型进行训练,过程中不同之处却是,在AFSA-BPNN模型训练的同时,利用人工鱼群算法对BPNN进行寻优;然后,分别利用测试集对训练后的模型进行验证,两种模型的检测性能对比如表2所示。
表2 两检测模型的检测性能对比
Tab2 performance comparison of two detection models
检测模型 评价指标 DOS U2L U2R Probe
BPNN rate(%) 80.65 70.83 81.21 79.65
error(%) 19.35 29.17 18.79 20.35
AFSA-BPNN rate(%) 82.63 76.89 88.78 91.43
error(%) 17.37 23.11 11.22 8.57
3.4.2 运行速度对比
为了验证两种模型的网络入侵检测速度,选取测试集对模型的网络入侵检测时间作为衡量指标,两种模型进行不同类型的入侵检测时间(秒/s)如表3所示。从表3可知,相对于BPNN模型,AFSA-BPNN模型的检测时间更少,说明了AFSA-BPNN模型进行网络入侵检测具有更高效率,因而实时性更强。
表3 两种模型的检测时间对比
Tab.3 detection time comparison of two models
模型 DOS U2L U2R Probe
BPNN 0.97 0.89 0.86 0.96
AFSA-BPNN 0.76 0.78 0.80 0.64
4 结束语
为了有效地对网络入侵进行检测,提出一种人工鱼群算法优化的BP神经网络的网络入侵检测模型,在BP神经网络训练时,利用人工鱼群算法对BP神经网络参数进行优化,获得了BP神经网络的最优参数,同时加快了BP神经网络的收敛速度。仿真结果表明,AFSA-BPNN模型比BPNN模型检测率更高,误检率更低,同时检测时间更少,这就说明了AFSA-BPNN模型堪称为一种有效的网络入侵检测模型,其应用前景也将更趋广泛与广阔。
参考文献
[1] 戴英侠.系统安全与入侵检测[M].北京:清华大学出版社, 2002.
[2] 何敏. 基于数据挖掘的网络实时入侵检测体系结构的研究[J]. 计算机与现代化, 2011, 193(9): 134-136.
[3] 姜春茂,张国印,李志聪. 基于遗传算法优化SVM的嵌入式网络系统异常入侵检测[J]. 计算机应用与软件,2011,28(2):287-289.
[4] 闫新娟,谭敏生,严亚周,等. 基于隐马尔科夫模型和神经网络的入侵检测研究[J]. 计算机应用与软件,2012,29(2):294C297.
[5] 牟琦,毕孝儒,库向阳. 基于GQPSO算法的网络入侵特征选择方法[J]. 计算机工程,2011,37(14):103-16.
[6] 周敏.GARBF在网络入侵检测中的应用研究[J].计算机仿真,2011.28(6):165-168.
[7] 赵俊忠. 入侵检测系统中检测技术的研究[J]. 计算机工程与应用,2005,(2):11-13.
[8] 栾庆林,卢辉斌.自适应遗传算法优化神经网络的入侵检测研究[J].计算机工程与设计,2008,29(12):3022-3024.
[9] 李晓磊.一种新型的智能优化方法一人工鱼群算法[D].杭州:浙江大学,2003.
[10] 孙宁青. 基于神经网络和CFS特征选择的网络入侵检测系统[J]. 计算机工程与科学,2010,32(6):37-39.
[11] 江铭炎,袁东风. 人工鱼群算法及其应用[M]. 北京:科学出版社,2012.
关键词:粗糙集 遗传算法 BP神经网络 优化
中图分类号:TP391 文献标识码:A 文章编号:1007-9416(2015)03-0121-01
目前BP神经网络已经成为应用最为广泛的神经网络模型之一,BP神经网络能学习和存贮大量的输入-输出模式映射关系,而无需事前揭示描述这种映射关系的数学方程。它的学习规则是使用最速下降法,通过逆传播来不断调整网络的阈值和权值,使网络的误差平方和最小。BP神经网络可以应用于聚类、分类、预测等。神经网络需要有一定量的历史数据,通过历史数据的训练,网络可以学习到数据中隐含的知识。在具体问题中,要找到某些问题的一些特征,以及对应的评价数据,用这些数据来训练神经网络。
1 粗糙集理论优化BP神经网络
1.1 粗糙集理论概述
S作为一个知识表达系统粗糙集一般形式记为:S=(U,A,V,f),其中:U为论域;A为属性集;V为属性值域;;B为条件属性集合;C为决策属性集合;是一个信息函数。
定义1:对于一个知识表达系统S=(U,A,V,f),满足下列两个条件的是条件属性集C的约简:
定义2:对于一个知识表达系统S=(U,A,V,f),设,对任意集合,则X关于R的下近似集定义为:
上近似集定义为:。
定义为X的R粗糙集。上、下近似集是定义在U的幂集上的一对一元算子。集合X关于R的边界区可表述为:。通常能够肯定地将U中的对象划分为X或-X两个不关联的子集,其对象总数等于排除X的R边界的对象数目,即。
定义3:令P与Q是U中的等价关系,记为Q的P正域,即
Q的P正域是U中所有根据分类U/P的信息可以准确地划分到关系Q的等价类中去的对象集合。令P和Q为等价关系族,R,如果:
则称R为P中Q不必要的,即R为P相对于Q可以约简的。P的Q约简简称为相对约简。
1.2 RS属性约简算法
属性约简是粗糙集理论中的核心知识,也是粗糙集在本文中应用的重要知识。在实际问题中信息是大量的这样就会存在冗余,而且有些信息并不起决定作用,所以要对这些信息进行筛选,删除冗余信息,也就是要进行属性约简。
首先根据数据特征确定离散化标准,然后对连续特征进行离散化,建立出决策表。决策系统表示条件属性,D表示决策属性。定义一个的矩阵,其任一元素为:
对于满足:,或者: 且或者:。
表示区别元素的所有属性的函数,对于每个属性指定Boole变量指定一个Boole函数用来表示;如果,指定Boole常量1,则[1]
的极小析取范式中得所有合取式是条件属性集C的所有D约简。每个约简对应一个决策算法,通过比较各决策算法的相容度选定最优约简。
2 利用遗传算法优化BP神经网络研究
BP神经网络算法缺乏全局性,因为它是一种只考虑局部区域的梯度法,这样就容易陷于局部最优极值。然而遗传算法是一种全局优化方法,它是一种基于生物进化过程的随机搜索的,通过变异操作和交叉很大程度减小了初始状态的对数据的影响,将遗传算法与BP神经网络结合可以扩大神经网络系统搜索解的空间,从而摆脱了算法易陷于局部最优解的弊端,使算法具备了全局最优解的能力。
遗传算法优化BP神经网络初始权重和阈值主要包括适应度函数和染色体编码方式的选择,还有一些遗传操作如选择、交叉、变异等。这些在文献[2]中有较详细的说明。下面对基于遗传算法优化神经网络权值的学习过程进行说明:
(1)初始化种群P包括交叉规模、交叉概率Pc、突变概率Pm以及权值初始化;(2)计算出每一个个体评价函数,并将其排序。
按概率值选择网络个体,(为个体的适应度),适应度可用下面式子衡量,,
利用交叉概率Pc对个体和进行交叉操作,产生新个体和;
(4)利用变异概率Pm突变产生的新个体;(5)将交叉操作与变异突破产生的新个体插入到种群P中,并计算新个体的评价函数;(6)若找到了最优解或者满意的个体或已经达到最大的迭代次数则算法结束,否则转入第三(3)步进入下一轮迭代运算,周而复始直到得到最优解为止。如达到预先设定的性能指标后,将最终群体中的最优个体解码即可得到优化后的网络连接权值系数。
3 基于粗糙集和遗传算法的神经网络模型
种群是指一个个体表示BP神经网络的一个初始权重和阈值,所以首先,获得初始种群;接下来利用粗糙集RS对初始种群进行属性约简得到一个最小属性约简集,作为输入神经元;再通过遗传算法来优化网络参数(初始权值、阈值),进一步确定隐含层神经元个数,之后,通过BP神经网络训练和测试得到种群的适配值;最后,再通过遗传操作得新的种群,直到达到预定的进化的代数为止,粗糙遗传神经网络模型如图1所示:
4 仿真实验分析
利用本文提出的算法进行仿真实验,首先对论文献[3]中利用粗糙理论进行属性约简,得到、、和4个约简,最佳约简为,核为。
输入层神经元为元素,输出层神经元为元素,由遗传算法优化隐含层4个神经元节点。采用步长法,构造优化BP神经网络模型,根据输出误差大小自动调整学习因子来加快收敛速度和减少迭代次数,取步长,动态因子,网络误差小于0.03,从25个样本中选取取前5个作为测试样本,其余后20个作为训练集样本,由遗传算法优化的网络权值、阈值作为初始值对样本进行训练和测试。设最大迭代次数为200,当误差达到预定的目标值和预先确定的最大迭代次数时训练停止。与此同时应用基本BP算法对样本进行训练,两者比较表明粗糙遗传神经网络优于BP神经网络的学习效果,网络学习曲线反映出粗糙遗传神经网络具有学习速度快、误差小的优点。
5 结语
本文提出了利用粗糙集的属性约简结合遗传算法对BP神经网络算法进行优化的理论,对输入变元进行约简,降低了输入变元维数。仿真实验结果表明,粗糙集遗传算法优化的BP神经网络较BP神经网络学习速度快而且误差减少。
参考文献
[1]温泉彻,彭宏,黎琼.基于粗糙集和遗传算法的神经网络模型研究[J].计算机工程与设计,2007(11).
【关键词】工程估算;神经网络;遗传算法
一、引言
工程项目建设前期,详细的项目信息尚未明确,工程造价具有较大模糊性。由于人工神经网络具有准确性高、非线性处理能力强等优点,已被许多学者应用到工程估算领域。但传统的BP神经网络收敛速度慢、易陷入局部极小,而采用遗传神经网络建立的工程估算模型,则可以利用遗传算法全局快速寻优的优势,有效解决上述问题。
二、模型介绍
1、 BP神经网络
人工神经网络是人工智能研究的一种方法,具有较强的非线性映射能力。其拓扑结构具有多层感知器结构,包括输入、输出层和若干个隐层。网络输入信息先通过输入层节点,向前传播到隐层节点,经过计算节点的激活函数后,将各个计算节点的输出信息传播到输出节点,最后得到最终输出结果。
所谓BP算法,即反向误差传递法,主要分为向前传播阶段和向后传播阶段。在向前传播阶段中,信息从输入层经过逐层的变换,传送到输出层。而后向传播阶段即根据期望输出计算反向误差,对权值进行修正,如果误差小于给定值或迭代次数超过设定值结束学习。BP神经网络具有优化计算能力,它可以在已知的约束条件下,寻找一组参数组合,使该组合确定的目标函数达到最小。但BP神经网路寻优的过程受初始点的选择影响,初始点如果靠近局部最优点而非全局最优点,就无法得到正确的结果,这也是其无法得到全局最优解的一个原因[1]。
2 、遗传算法
遗传算法(GA)是借鉴生物界自然选择和群体进化机制形成的一种全局寻优算法。在GA中, 将问题空间中的决策变量通过一定编码方法表示成遗传空间的一个个体,它是一个基因型串结构数据;同时,将目标函数值转换成适应值,用以评价个体的优劣,并作为遗传操作的依据。遗传操作主要包括三个算子:选择、交叉和变异。选择算子用来实施适者生存的原则,即把当前群体中的个体按与适应值成比例的概率复制到新的群体中, 构成池;交叉算子是从池中的个体随机配对, 然后将两两配对的个体按特定方式相互交换部分基因;变异是对个体的某些基因值按某一较小概率进行改变。从产生新个体的能力方面来说, 交叉算子是产生新个体的主要方法, 它决定了GA的全局搜索能力,而变异算子只是产生新个体的辅助方法, 但也必不可少, 因为它决定了GA的局部搜索能力。交叉和变异相配合,共同完成对搜索空间的全局和局部搜索[2]。
3 遗传神经算法
考虑到GA的全局搜索能力,采用GA对BP神经网络的初始权值和阈值进行优化。算法基本步骤如下[3]:
1)设定种群规模。随机生成设定规模的个体的初始种群,给定一个数据选定范围, 采用线性插值函数生成种群中个体的一个实数向量作为GA的一个染色体;
2)确定个体的评价函数。给定一个BP神经网络进化参数,将步骤(1)中得到的染色体对BP 神经网络权值和阈值进行赋值,输入训练样本进行神经网络训练,达到设定的精度得到网络训练输出值,以训练误差平方和作为种群中个体的适应值;
3)选择操作。基于适应值比例的选择策略对每一代种群中的染色体进行选择,选择概率为适应值与所有适应值之和的比值;
4)交叉操作。对群体进行随机配对,并随机设置交叉点位置,相互交换配对染色体之间的部分基因;
5)变异操作。随机产生变异点位置,依照某一概率将变异点的原有基因值取反;
6)将GA得到的最优个体分解为BP神经网络的权值和阈值,BP 神经网络预测模型经训练后, 输出预测值。
三、应用实例
为验证本算法在工程估算领域的有效性,特选取上海市建筑建材业市场管理总站的十个建筑项目的工程特征信息及造价指标进行分析。工程特征选取的是影响造价指标的七个关键因素,造价指标选取单方造价。具体数据如下表。
表一工程特征及造价指标表
地点
结构类型
建筑面积(m2)
建筑高度(m)
抗震烈度
建设年份
单方造价(元/m2)
1
1
7141
22.3
7
2009
4988.4
3
2
8580
39.2
6
2010
3115.3
2
2
2748
16.3
7
2010
2385.4
3
2
7675
22.8
7
2011
2750.5
1
1
18070
51.0
7
2007
2880.5
2
2
30489
53.7
7
2008
3773.0
1
1
65697
99.6
7
2008
2934.2
1
3
49900
76.7
7
2009
7396.4
3
1
51428
65.1
7
2010
3014.6
1
3
110577
208.0
7
2010
8124.8
其中地点分三类:内环(1)、外环(2)、外环外(3);结构类型分三类:框剪(1)、框架(2)、钢框架-钢筋混凝土核心筒(3)。
10个项目样本中选7个作为学习样本,3个作为预测检验样本。采用Matlab软件分别构建一般神经网络和遗传神经网络模型,测试样本进行预测的结果如下:
表2 造价指标预测结果与误差分析
检验样本
实际值
BP神经网络
遗传神经网络
预测值
相对误差%
预测值
相对误差%
1
7396.4
8563.5
15.8
7920.0
7.1
2
3014.6
3353.2
11.2
3289.6
9.1
3
8124.8
7146.6
-12.0
7561.7
-7.0
平均相对误差
13.0%
7.7%
通过实验结果可以发现一般神经网络和遗传神经网络两个模型均能满足项目估算阶段20%的准确率要求,但相较而言,遗传神经网络模型预测精度要高于一般神经网络模型。此外,通过对比收敛过程(收敛过程图略)发现,后者收敛速度更快。因此遗传神经网络无论从全局搜索能力和收敛速度上都优于BP神经网络,更能满足工程估算指标预测的实际需要。
四、结论
针对BP神经网络在局部极小缺陷和收敛速度慢的问题,采用遗传算法进行改进,通过GA优化神经网络权值和阈值,实现BP神经网络的全局快速寻优,弥补了神经网络固有的缺陷。经两模型预测结果进行对比,验证了遗传神经网络具有更好的非线性拟合能力和更准确的预测能力。
参考文献:
[1]任谢楠.基于遗传算法的BP神经网络的优化研究及MATLAB仿真[D].天津师范大学,2014.