基于BP神经网络的实例研究

2016-10-31 21:34封丹丹宋晓晶
科教导刊·电子版 2016年23期
关键词:模式识别BP神经网络数据挖掘

封丹丹+宋晓晶

摘 要 BP神经网络是人工智能网络中的一个典型算法,而且它本身具有很强的非线性映射能力,解决一些非线性问题和模式识别更是它最突出的一环。BP神经网络的网络拓扑结构简单,具有较高的误差精度,并且它易于编程实现,还具有很强的可操作性,是数据挖掘领域中的最重要的算法之一。

关键词 BP神经网络 数据挖掘 最速下降法 函数逼近 模式识别

中图分类号:TP391 文献标识码:A

1研究背景

BP神经网络是一种多层的前馈网络而且它的学习算法是一种误差逆向传播算法。BP神经网络是目前研究最为成熟、应用最为广泛的人工神经网络模型之一。由于其结构简单、可操作性强、具有较好的自学习能力、能够有效地解决非线性目标函数的逼近问题等优点,因此被广泛应用于自动控制、模式识别、图像识别、信号处理、预测、函数拟合、系统仿真等学科和领域中。

2 BP神经网络原理

2.1概述

BP神经网络是一种反向传播误差算法然后训练的一个多层前馈网络,简称为BP算法,它应用在已被开发出来的神经网络中,到目前为止是应用最为广泛的网络模型之一。BP神经网络可以学习并且存储非常多的输入模式与输出模式之间的映射关系,却无需在学习和存储前事先揭示并描述输入输出间的映射关系的一种数学方程。它使用最速下降法,通过对输出误差的反向传播,获得不断调整网络连接权系数和阈值的信息,最终使神经网络的平方误差最小,达到期望要求。

2.2 BP神经网络结构

BP神经网络模型是一个三层网络,它的拓扑结构可被划分为:输入层、输出层、隐含层。其中输入层与输出层具有更重要的意义,因此它也可以为两层网络结构(把隐含层划入输入层或者把隐含层去掉)。每层都由许多简单的能够执行并行运算的神经元组成,这些神经元与生物系统中的那些神经元非常类似,但其并行性并没有生物神经元的并行性高。BP神经网络是一个前馈网络,因此它具有前馈网络所具有的特性:相邻两层之间的全部神经元进行互相连接,而处于同一层的神经元不能进行联接。

2.3 BP算法原理

BP神经网络的基本原理是把一个输入矢量经过隐含层的一系列变换,然后得到一个输出矢量,从而实现输入数据与输出数据间的一个映射关系。输入信息的正向传播,以及输出误差的反向传播,构成了 BP网络的信息循环。BP算法根据输出误差来修改各神经元连接的连接权系数,其目的是使输出误差达到预计范围内。BP网络需要实际输出与期望输出之间的误差来确定是否要修改神经元连接的连接权系数。其中,期望输出便是该网络意义上的“导师”。BP网络具有对称性的网络结构,在输出端的每一个处理单元基本上都具有一个相同的激励函数。

BP算法由正向传播和反向传播两部分组成。在正向传播过程中,输入信息从输入层经隐层单元处理后,传至输出层。每一层神经元的状态只影响下一层神经元的状态。如果在输出层得不到期望输出,就转为反向传播,即:把误差信号沿连接路径返回,并通过修改各层神经元之间的连接权值,使误差信号最小。

具体的算法步骤可概括如下:

第一步,选取初始权值、阈值。

第二步,重复下述过程直至满足性能要求为止:

(1)对于学习样本P=1到N

①计算每层各节点j的输出yj,netj和的值(正向过程);

②对各层从M层到第二层,对每层各节点反向计算€%]j(反向过程);

(2)修改权值

具体推导过程见参考文献4。

3基于BP神经网络设计的实例

3.1函数逼近

我们设计一个简单的BP网络,实现对非线性函数的逼近。通过改变该函数的参数以及BP网络隐层神经元的数目,来观察训练时间以及训练误差的变化时间。将要逼近的非线性函数设为正弦函数,其频率参数k可以调节。假设频率参数k=2,绘制此函数的曲线。如图1。

(1)网络建立:用MATLAB编程建立BP网络结构,为二层BP神经网络。隐层神经元数目n 可以改变,暂时设为n=10,输出层有一个神经元。网络训练采用Levenberg-Marquardt算法trainlm。

分析:因为建立网络时,权值和阈值的初始化是随机的,所以网络输出结果很差,根本达不到函数逼近的目的,并且每次运行的结果也有所不同。

(2)网络训练:在MATLAB里应用train()函数对网络进行训练之前,需要预先设置训练参数。将训练时间设置为50,训练精度设置为0.01,其余参数用默认值。

(3)网络测试:对于训练好的网络进行仿真,绘制网络输出曲线,并与原始非线性函数曲线相比较,结果如下图2。

由此可看出,得到的曲线和原始的非线性函数曲线很接近。这说明经过训练后,BP网络对非线性函数的逼近效果非常好。

(4)讨论分析:改变非线性函数的频率和BP网络隐层神经元的数目,对于函数逼近的效果有一定的影响。网络非线性程度越高,对BP网络的要求越高,则相同的网络逼近效果要差一些;隐性神经元的数目对于网络逼近效果也有一定的影响,一般来说隐形神经元数目越多,则BP网络逼近非线性函数的能力越强,同时网络训练所用的时间相对来说也要长一些。

参考文献

[1] 闫志忠.BP神经网络模型的改进及其应用研究[D].吉林大学,2003.

[2] 李友坤.BP神经网络的研究分析及改进应用[D].安徽理工大学,2012.

[3] 吴昌友.神经网络的研究及应用[D].东北农业大学, 2007.

[4] 贺清碧.BP神经网络及应用研究[D].重庆交通学院 重庆交通大学,2004.

[5] 张德丰.MATLAB神经网络应用设计[M].北京:机械工程出版社,2009.

猜你喜欢
模式识别BP神经网络数据挖掘
基于并行计算的大数据挖掘在电网中的应用
浅谈模式识别在图像识别中的应用
第四届亚洲模式识别会议
一种基于Hadoop的大数据挖掘云服务及应用
第3届亚洲模式识别会议
电气设备的故障诊断与模式识别
基于GPGPU的离散数据挖掘研究