BP神经网络实例

运用Matlab创建BP神经网络(R2010b)

BP神经网络属于前向网络

以下为创建BP神经网络的方法及参数意义

(1)net=newff(P,T,S)或者net = newff(P,T,S,TF,BTF,BLF,PF,IPF,OPF,DDF) P:输入参数矩阵。(RxQ1) T:目标参数矩阵。(SNxQ2)

S:N-1个隐含层的数目(S(i)到S(N-1)),输出层的单元数目取决于T,默认为空矩阵。

TF:相关层的传递函数,默认隐含层为tansig函数,输出层为purelin函数。 BTF:BP神经网络学习训练函数,默认值为trainlm函数。 BLF:权重学习函数,默认值为learngdm。 PF:性能函数,默认值为mse。 IPF,OPF,DDF均为默认值即可。 (2)传递函数 purelin 线性传递函数 tansig 正切 S 型传递函数 logsig 对数 S 型传递函数

隐含层和输出层函数的选择对BP神经网络预测精度有较大影响,一般隐含层节点转移函数选用 tansig函数或logsig函数,输出层节点转移函数选用tansig函数或purelin函数。 (3)学习训练函数

神经网络的学习分为有导师学习和无导师学习。

最速下降BP算法:traingd 动量BP算法:traingdm

学习率可变的BP算法:trainda(学习率可变的最速下降BP算法);traindx(学习率可变的动量BP算法) 弹性算法:trainrp

变梯度算法:traincgf(Fletcher-Reeves修正算法) traincgp(Polak_Ribiere修正算法) traincgb(Powell-Beale复位算法) trainbfg(BFGS 拟牛顿算法) trainoss(OSS算法) trainlm(LM算法)

参数说明:通过net.trainParam可以查看参数 Show Training Window Feedback showWindow: true Show Command Line Feedback showCommandLine: false Command Line Frequency show: 两次显示之间的训练次数 Maximum Epochs epochs: 训练次数

Maximum Training Time time: 最长训练时间(秒) Performance Goal goal: 网络性能目标

Minimum Gradient min_grad: 性能函数最小梯度 Maximum Validation Checks max_fail: 最大验证失败次数 Learning Rate lr: 学习速率

Learning Rate Increase lr_inc: 学习速率增长值 Learning Rate lr_dec: 学习速率下降值

Maximum Performance Increase max_perf_inc: Momentum Constant mc: 动量因子 (4)BP神经网络预测函数

SimOut = sim('model', Parameters) & y=sim(net,x) 函数功能:用训练好的BP神经网络预测函数输出 net:训练好的网络 x:输入数据 y:网络预测数据 (5)训练函数

[net,tr] = train(Net,P,T,Pi,Ai) 其中,

Net 待训练的网络 P 输入数据矩阵

T 输出数据矩阵 (default = zeros) Pi 初始化输入层条件 (default = zeros) Ai 初始化输出层条件 (default = zeros) net 训练好的网络 tr 训练过程记录

注意:P Ni-by-TS cell array Each element P{i,j,ts} is an Ni-by-Q matrix. T Nl-by-TS cell array Each element T{i,ts} is a Ui-by-Q matrix.

BP网络的常用函数表

函数类型

函数名称

前向网络创建函数

Newff

logsig

传递函数

purelin

学习函数

learngdm

性能函数

msereg

plotperf

显示函数

plotep

errsurf mse learngd tansig newcf

函数用途

创建级联前向网络

创建前向BP网络

S型的对数函数

S型的正切函数

纯线性函数

基于梯度下降法的学习函数

梯度下降动量学习函数

均方误差函数

均方误差规范化函数

绘制网络的性能

plotes

绘制权值和阈值在误差曲面上的位置

计算单个神经元的误差曲面 绘制一个单独神经元的误差曲面

范例

现给出一药品商店一年当中12个月的药品销售量(单位:箱)如下: 2056 2395 2600 2298 1634 1600 1873 1487 1900 1500 2046 1556 训练一个BP网络,用当前的所有数据预测下一个月的药品销售量。

我们用前三个月的销售量预测下一个月的销售量,也就是用1-3月的销售量预测第4个月的销售量,用2-4个月的销售量预测第5个月的销售量,如此循环下去,直到用9-11月预测12月份的销售量。这样训练BP神经网络后,就可以用10-12月的数据预测来年一月的销售量。 实现程序如下:

P =[2056 2395 2600;2395 2600 2298;2600 2298 1634;2298 1634 1600;... 1634 1600 1873;1600 1873 1478;1873 1478 1900;1478 1900 1500;... 1900 1500 2046;];

T = [2298 1634 1600 1873 1487 1900 1500 2046 1556]; pmax = max(P); pmax1 = max(pmax); pmin = min(P); pmin1 = min(pmin); for i=1:9

P1(i,:)=(P(i,:)-pmin1)/(pmax1-pmin1); T1(i)=(T(i)-pmin1)/(pmax1-pmin1); end

net = newff(P1',T1,[3 7],{'tansig' 'logsig'},'traingd'); for i = 1:9

net.trainParam.epochs = 15000; net.trainParam.goal=0.01; net.trainParam.lr = 0.1

net = train(net,P1(i,:)',T1(i)); end

y=sim(net,[1500 2046 1556]'); y1=y*(pmax1-pmin1)+pmin1;

如果神经网络的训练函数使用trainlm,则仿真步骤会很少,但需要较大的系统内存。

经预测,来年一月的销售量(y1)为1.6845e+003箱(每次运行后的结果可能不同)。

运用Matlab创建BP神经网络(R2010b)

BP神经网络属于前向网络

以下为创建BP神经网络的方法及参数意义

(1)net=newff(P,T,S)或者net = newff(P,T,S,TF,BTF,BLF,PF,IPF,OPF,DDF) P:输入参数矩阵。(RxQ1) T:目标参数矩阵。(SNxQ2)

S:N-1个隐含层的数目(S(i)到S(N-1)),输出层的单元数目取决于T,默认为空矩阵。

TF:相关层的传递函数,默认隐含层为tansig函数,输出层为purelin函数。 BTF:BP神经网络学习训练函数,默认值为trainlm函数。 BLF:权重学习函数,默认值为learngdm。 PF:性能函数,默认值为mse。 IPF,OPF,DDF均为默认值即可。 (2)传递函数 purelin 线性传递函数 tansig 正切 S 型传递函数 logsig 对数 S 型传递函数

隐含层和输出层函数的选择对BP神经网络预测精度有较大影响,一般隐含层节点转移函数选用 tansig函数或logsig函数,输出层节点转移函数选用tansig函数或purelin函数。 (3)学习训练函数

神经网络的学习分为有导师学习和无导师学习。

最速下降BP算法:traingd 动量BP算法:traingdm

学习率可变的BP算法:trainda(学习率可变的最速下降BP算法);traindx(学习率可变的动量BP算法) 弹性算法:trainrp

变梯度算法:traincgf(Fletcher-Reeves修正算法) traincgp(Polak_Ribiere修正算法) traincgb(Powell-Beale复位算法) trainbfg(BFGS 拟牛顿算法) trainoss(OSS算法) trainlm(LM算法)

参数说明:通过net.trainParam可以查看参数 Show Training Window Feedback showWindow: true Show Command Line Feedback showCommandLine: false Command Line Frequency show: 两次显示之间的训练次数 Maximum Epochs epochs: 训练次数

Maximum Training Time time: 最长训练时间(秒) Performance Goal goal: 网络性能目标

Minimum Gradient min_grad: 性能函数最小梯度 Maximum Validation Checks max_fail: 最大验证失败次数 Learning Rate lr: 学习速率

Learning Rate Increase lr_inc: 学习速率增长值 Learning Rate lr_dec: 学习速率下降值

Maximum Performance Increase max_perf_inc: Momentum Constant mc: 动量因子 (4)BP神经网络预测函数

SimOut = sim('model', Parameters) & y=sim(net,x) 函数功能:用训练好的BP神经网络预测函数输出 net:训练好的网络 x:输入数据 y:网络预测数据 (5)训练函数

[net,tr] = train(Net,P,T,Pi,Ai) 其中,

Net 待训练的网络 P 输入数据矩阵

T 输出数据矩阵 (default = zeros) Pi 初始化输入层条件 (default = zeros) Ai 初始化输出层条件 (default = zeros) net 训练好的网络 tr 训练过程记录

注意:P Ni-by-TS cell array Each element P{i,j,ts} is an Ni-by-Q matrix. T Nl-by-TS cell array Each element T{i,ts} is a Ui-by-Q matrix.

BP网络的常用函数表

函数类型

函数名称

前向网络创建函数

Newff

logsig

传递函数

purelin

学习函数

learngdm

性能函数

msereg

plotperf

显示函数

plotep

errsurf mse learngd tansig newcf

函数用途

创建级联前向网络

创建前向BP网络

S型的对数函数

S型的正切函数

纯线性函数

基于梯度下降法的学习函数

梯度下降动量学习函数

均方误差函数

均方误差规范化函数

绘制网络的性能

plotes

绘制权值和阈值在误差曲面上的位置

计算单个神经元的误差曲面 绘制一个单独神经元的误差曲面

范例

现给出一药品商店一年当中12个月的药品销售量(单位:箱)如下: 2056 2395 2600 2298 1634 1600 1873 1487 1900 1500 2046 1556 训练一个BP网络,用当前的所有数据预测下一个月的药品销售量。

我们用前三个月的销售量预测下一个月的销售量,也就是用1-3月的销售量预测第4个月的销售量,用2-4个月的销售量预测第5个月的销售量,如此循环下去,直到用9-11月预测12月份的销售量。这样训练BP神经网络后,就可以用10-12月的数据预测来年一月的销售量。 实现程序如下:

P =[2056 2395 2600;2395 2600 2298;2600 2298 1634;2298 1634 1600;... 1634 1600 1873;1600 1873 1478;1873 1478 1900;1478 1900 1500;... 1900 1500 2046;];

T = [2298 1634 1600 1873 1487 1900 1500 2046 1556]; pmax = max(P); pmax1 = max(pmax); pmin = min(P); pmin1 = min(pmin); for i=1:9

P1(i,:)=(P(i,:)-pmin1)/(pmax1-pmin1); T1(i)=(T(i)-pmin1)/(pmax1-pmin1); end

net = newff(P1',T1,[3 7],{'tansig' 'logsig'},'traingd'); for i = 1:9

net.trainParam.epochs = 15000; net.trainParam.goal=0.01; net.trainParam.lr = 0.1

net = train(net,P1(i,:)',T1(i)); end

y=sim(net,[1500 2046 1556]'); y1=y*(pmax1-pmin1)+pmin1;

如果神经网络的训练函数使用trainlm,则仿真步骤会很少,但需要较大的系统内存。

经预测,来年一月的销售量(y1)为1.6845e+003箱(每次运行后的结果可能不同)。


相关内容

  • 论文中关于RETE算法的部分
  • 北京航空航天大学硕士学位论文 第四章 鉴别网络的设计 鉴别网络(discrimination network)是RETE 算法的基础.本章将从设计的具体细节着手,在介绍鉴别网络的基本结构后,阐述alpha 和beta 网络生成算法的设计.最后通过实例给出了利用所设计的算法,由规则对象建立鉴别网络的过 ...

  • 基于实例的产品设计知识获取方法及实现
  • 第14卷第1l期2002年11月 计算机辅助设计与图形学学报 JOURNALOFCOMPUTERAIDEDDESIGN&COMPUTERGRAPHICS V01.14.NO11 NOV..2002 基于实例的产品设计知识获取方法及实现 凌卫青赵艾萍谢友柏 西安交强大学润滑理论丝轴承母f究所 ...

  • 神经调节与体液调节的关系2
  • 新课程创新教学设计 题目:<神经调节与体液调节的关系> 学科名称:高中生物 模块名称:第三模块 章节 第二章 第三节 适用年级:高二 必修选修:必修 课时安排:1课时 教材版本:人教版(人民教育出版社) 第3节 神经调节与体液调节的关系 [设计思想] 高中生物新课程全面体现"知 ...

  • 水晶头的做法水晶头打线顺序
  • 水晶头的做法 水晶头打线顺序 网线工具:在水晶头制作的制作中,我们必须要用到一些制作的辅助工具和材料.在此,我们先为大家介绍一些这些网线工具和网线材料.在水晶头的制作工程中,最重要的工具当然就是压线钳了,当然这个压线钳的网线工具不仅仅是压线自用,钳上还具备着很多"好本领". 水晶 ...

  • 机器学习算法及其应用
  • 机器学习方法及应用 1.机器学习 学习是生物中枢神经系统的高级整合技能之一,是人类获取知识的重要途径和人类智能 [1]的重要标志,按照人工智能大师H·Simon的观点:学习就是系统在不断重复的工作中对本 身能力的增强或改进,使得系统在下一次执行同样或相类似的任务时,会比原来做得更好或效率更高. 机器 ...

  • 神经调节与体液调节的关系
  • 第 3 节 神经调节与体液调节的关系 一.教学目标 1.知识与技能: ⑴简述神经调节和体液调节的特点. ⑵说出神经调节与体液调节间的协调关系. 2.过程与方法: ⑴描述体温调节.水盐调节. ⑵举例说明神经.体液调节在维持稳态中的作用. 3.情感态度与价值观: 认同毒品的危害,远离毒品. 二.教学重难 ...

  • 神经网络原理及BP网络应用实例
  • 神经网络原理及BP 网络应用实例 摘要:本文主要对神经网络原理进行系统地概述, 再列举BP 网络在曲线逼近中的应用.神经网络是一门发展十分迅速的交叉学科,它是由大量的处理单元组成非线性的大规模自适应动力系统.神经网络具有分布式存储.并行处理.高容错能力以及良好的自学习.自适应.联想等特点.随着计算机 ...

  • 主流云计算平台的个性特征
  • 云计算平台的共性特征 摘要 随着云计算的概念渐渐的被人们所熟知,云计算已经不再是天边的一朵"云"了,我们更多的是学习.使用并改造它. 针对当前的云计算概念,Amazon .Google 和Microsoft 都相继退出了自己云计算平台,这是对云计算的一种商业实现.本文对当前这三种 ...

  • 无线传感器网络应用实例
  • 无线传感器网络应用实例 部署在我国南部某沿海城市的无线传感器网络案例,该系统经过少量修改后可以满足许多工业测量的需求. 该城市存在大量山地地貌,城市居民人口众多,要求土地必须保持较高的利用率,因此大量建筑和道路都位于山区附近.该地区降雨量常年偏高,尤其在每年夏季的梅雨季节,会出现大量的降水.不稳定的 ...

  • 子网规划与划分实例讲解
  • 子网规划与划分实例讲解 原打算从 IP 地址说起,但考虑到时间关系,再加上文字功底薄弱,就省略了,在往下阅读 之前,建议先了解 IP 地址的分类.点分十进制与二进制间转换.网络掩码,逻辑"与"操 作等网络基础知识. 需要进行子网规划一般两种情况: 一. 给定一个网络,整网络地址可 ...