首页 > 编程知识 正文

matlab计算速度很慢,bp神经网络分类matlab

时间:2023-05-03 20:25:02 阅读:148077 作者:2970

摘要:利用Matlab神经网络工具箱提供的丰富的网络学习和训练函数,仿真了BP网络和BP算法的优化方案,得到了较优的BP算法。

关键词:人工神经网络BP网络; 材料; 网络工具箱

1人工神经网络(Artificial Neural

Networks,nn]系统诞生于20世纪40年代末才半个多世纪,但由于他具有信息分布式存储、并行处理、自学习能力等优点,已在信息处理

理、模式识别、智能控制及系统建模等领域得到了越来越广泛的应用。 特别是误差反向传播(Error

Back Propagation (算法的多层前馈网络)多层前馈

Network (),简称BP网络,能以任意精度逼近任意连续函数,广泛应用于非线性建模、函数逼近、模式分类等。

近年来,我们

解决了BP网络收敛速度慢、训练时间长等缺陷,提出了许多改进算法,在应用BP网络解决实际问题的过程中,选择几层网络,每层选择多少神经元节点; 选择什么

传递函数、何种训练算法等,没有切实可行的理论指导,只能通过实验计算获得。 这无形中增加了研究工作量和编程计算量。

目前在工程计算领域比较流行的软件Matlab给出了现成的神经网络工具箱NeuralNetworkToolbox,NNTool,为解决这一问题提供了便利条件[1] 本文针对BP网络和BP算法的优化方案,在介绍NNTool的基础上,给出了优化的仿真结果。 2 BP算法分析2.1 BP算法原理[ 2,3 ]误差反向传播算法(BP算法)基于优化的梯度下降算法,采用有教师的学习方式,应用于多层前向网络。 但是,他也有明显的缺点:

)1) BP算法沿均方误差梯度下降方向收敛,但均方误差梯度曲线存在许多局部和全局最小点,使得神经网络容易陷入局部最小;

)2) BP学习算法的收敛速度慢,有可能浪费很多时间

)3)神经网络隐层的节点数很难确定合适的值;

)4)即使网络正确处理了未学习的输入,如何选择合适的学习样本来解决网络的普及)泛化)问题。

针对这些问题,为了加快收敛速度,达到优化,有必要对标准BP算法进行必要的改进。 2.2改进BP算法优化BP算法的方向主要有模态调整、自适应学习速度调整、网络结构调整等。 一般的改善方法如下。

(1)加入运动量项

)2)自适应学习速率的调整

)3)共轭梯度算法

)4) Levenberg-Marquart算法。 除了改进算法外,通过改变神经网络结构(隐层节点数和网络层数)、调整误差等方法也可以加快BP算法的收敛速度。 3使用神经网络工具箱的仿真分析3.1算法的仿真分析[ 4,5 ]

Matlab是一种功能强大的数学APP软件,神经网络工具箱是集成在Matlab中的重要工具箱,工具箱包含丰富的网络学习和训练函数

它囊括了大多数神经网络算法。 这些函数对于神经网络的仿真分析非常方便,用户即使不编写复杂的算法程序,只要在GUI提示下设定相关函数和参数

可以完成神经网络的训练模拟。

(1)使用nn工具

启动NNTool,显示Matlab神经网络工具箱管理器。

通过这个管理器,我们很容易建立神经网络,运行NewNetwork,指定网络的输入(Inputs )和目标输出(Targets ),然后初始化网络(Initialize ) 可以自适应)

单击NewData可以设置输入、输出数组或矩阵。 单击“NewNetwork”可以创建新的神经网络,并选择相关参数,包括网络类型

(网络类型)、训练函数) Training

function (,自适应学习函数)自适应学习

function (、性能函数(Performancefunction )、神经网络层数) Number

of layers (每层神经元数量Number of ) )。

neurons (和转移函数) Transfer

函数)。 如图1所示。

)2)算法比较

选择以下参数:

P=[-10.51; 0:0.5:2 ),目标输出T=[-1-1 0 1

1 )、

性能函数PF=MSE (均方误差)、

训练周期epochs=1000、目标goal=0.01、

显示间隔show=10,学习速率lr=0.01;

网络结构为双重:隐层3个神经元,转移函数tansig (正切曲线); 输出一层神经元,转移函数purelin (线性)。 如图2所示。

表1的仿真结果表明,标准BP算法收敛周期长,计算了共轭梯度

法和L-M优化算法明显收敛快得多。这只是一个简单样本的仿真结果,对更复杂的样本,收敛速度的差距将更加明显。

标准BP算法的收敛曲线如图3所示。

可以看到收敛曲线比较平滑,但是太慢,训练周期过长。收敛速度最快的是L-M优化算法(见图4),但是可以看到,收敛曲线有局部突变,因此并不是最优,仍需做进一步的改进。

3.2 算法的再改进  除了采用新的学习算法,网络模型的优化也有助于改善神经网络的性能,加快收敛速度。网络模型改进的方向主要有[6~9]:

(1)调整网络结构

增加网络的层数可以进一步降低误差,提高精度。

但会使网络复杂化,从而增加网络的训练时间。精度的提高实际上也可以通过增加隐层神经元的数目来获得,其效果更容易观察和掌握,所以应优先考虑。

(2)初始值选取

为了使误差尽可能小,需要合理选择初始权重和偏置,如果太大就容易陷入饱和区,导致停顿。一般应选为均匀分布的小数,介于(-1,1)。

(3)学习速率调整

学习速率的选取很重要,大了可能导致系统不稳定,小了会导致训练周期过长、收敛慢,达不到要求的误差。

一般倾向于选取较小的学习速率以保持系统稳定,通过观察误差下降曲线来判断。下降较快说明学习率比较合适,若有较大振荡则说明学习率偏大。同时,由于网络规模大小的不同,学习率选择应当针对其进行调整。

(4)期望误差

期望误差当然希望越小越好,但是也要有合适值。降低误差需要增加隐层结点以及训练时间来实现。

根据这几个原则,对前面的算法作进一步修正,再作仿真。多次仿真分析的结果表明,适当调整神经网络的隐层结点数目和学习速率,收敛曲线有所改善,收敛加快,并且消除了振荡。

下面的数据表格反映了BP网络结构和学习速率对收敛性的影响:

(1)隐层神经元

从表2中可以看到,隐层4个神经元时网络收敛最快,但总的来看有一定的起伏。

(2)学习率

显然,从表3看出,适当提高学习速率可以有效地改善收敛性。

但是应该注意,由于仿真时只采用了很少的简单样本,同时由于神经网络权重和偏置随机初始化对仿真结果也有影响,因此并不能简单的把该仿真结果推广到所有的情况。对具体情况要结合实际进行分析。

图5是经过改进的BP算法收敛曲线,其隐层神经元为4个,学习速率选择0.2。

4 结 语本文利用Matlab的神经网络工具箱仿真BP算法的各种改进算法,得到满意的结果。因此,广泛推广使用Matlab软件及他所提供的各种工具箱,必会使我们的研究,实践水平进一步提高。

参考文献

[1] 巨军让,卓戎.BP神经网络在Matlab上的方便实现[J].新疆石油学院学报,1999,(2):42-43

[2] cqdhb.人工神经网络实用教程[M].杭州:浙江大学出版社,2001.

[3] cdmj,zzdxbw.现代数字信号处理[M].武汉:华中理工大学出版社,1999.

[4] 英勇的人生,fdyc.Matlab教程[M].北京:北京航空航天大学出版社,2001.

[5] 强健的小白菜,高大的自行车.基于Matlab

6.x的系统分析与设计-神经网络[M].西安:西安电子科技大学出版社,2002.

[6] 戚德虎,康继昌.BP神经网络的设计[J].计算机工程与设计,1998,(4):48-50.

[7] mmydbks,zzdmj,xhdyz.BP神经网络权值初始值与收敛性的研究[J].电力系统及其自动化学报,2002,(2):20-22.

[8] jaddy,zjdzdj.BP神经网络优化训练技术的研究[J].华南理工大学学报.1998,(7):21-24.

[9] rxdttt.一个改进的BP神经网络自适应学习算法[J].福州大学学报,1998,(8):19-21.

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。