2024年4月19日发(作者:)

BP神经网络

(一) 定义

误差反向传播的BP算法简称BP算法,其基本思想是梯度下降法。

它采用梯度搜索技术,以期使网络的实际输出值与期望输出值的误差

均方值为最小。

(二) BP网络特点

1) 是一种多层网络,包括输入层、隐含层和输出层;

2) 层与层之间采用全互连方式,同一层神经元之间不连接;

3) 权值通过δ学习算法进行调节;

4) 神经元激发函数为S函数;

5) 学习算法由正向传播和反向传播组成;

6) 层与层的连接是单向的,信息的传播是双向的。

(三) BP主要应用

回归预测(可以进行拟合,数据处理分析,事物预测,控制等)、 分

类识别(进行类型划分,模式识别等),但无论那种网络,什么方法,

解决问题的精确度都无法打到100%的,但并不影响其使用,因为现

实中很多复杂的问题,精确的解释是毫无意义的,有意义的解析必定

会损失精度。

(四) BP网络各种算法的应用范围

1) Traingd:批梯度下降训练函数,沿网络性能参数的负梯度方向调

整网络的权值和阈值;

2) Traingdm:动量批梯度下降函数,也是一种批处理的前馈神经网络

训练方法,不但具有更快的收敛速度,而且引入了一个动量项,有效避

免了局部最小问题在网络训练中出现;

3) Trainrp:有弹回的BP算法,用于消除梯度模值对网络训练带来的

影响,提高训练的速度(主要通过delt_inc和delt_dec来实现权值的

改变);

4) Trainlm:Levenberg-Marquardt算法,对于中等规模的BP神经网

络有最快的收敛速度,是系统默认的算法.由于其避免了直接计算赫

赛矩阵,从而减少了训练中的计算量,但需要较大内存量.;

5) traincgb:Plwell-Beale算法:通过判断前后梯度的正交性来决

定权值和阈值的调整方向是否回到负梯度方向上来;

6) trainscg:比例共轭梯度算法:将模值信赖域算法与共轭梯度算法

结合起来,减少用于调整方向时搜索网络的时间。

一般来说,traingd和traingdm是普通训练函数,而

traingda,traingdx,traingd,trainrp,traincgf,traincgb,trainsc

g,trainbgf等等都是快速训练函数.总体感觉就是训练时间的差别比

较大,还带有精度的差异。

(五) 实例及其仿真分析(BP网络底层代码的实现)

1) 程序

%% 读入数据

xlsfile='';

[data,label]=getdata(xlsfile);