2022年用matlab编BP神经网络预测程序.pdf
《2022年用matlab编BP神经网络预测程序.pdf》由会员分享,可在线阅读,更多相关《2022年用matlab编BP神经网络预测程序.pdf(18页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、求用 matlab 编 BP神经网络预测程序求一用 matlab 编的程序P=。;输入 T=。;输出% 创建一个新的前向神经网络net_1=newff(minmax(P),10,1,tansig,purelin,traingdm)% 当前输入层权值和阈值inputWeights=1,1inputbias=1% 当前网络层权值和阈值layerWeights=2,1layerbias=2% 设置训练参数= 50;= ;= ;= 10000;= 1e-3;% 调用 TRAINGDM 算法训练BP 网络net_1,tr=train(net_1,P,T);% 对 BP 网络进行仿真A = sim(net
2、_1,P);% 计算仿真误差E = T - A;MSE=mse(E)x=。;%测试sim(net_1,x) %不可能啊我 2009 28对初学神经网络者的小提示精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 1 页,共 18 页 - - - - - - - - - - 第二步:掌握如下算法 : 2.最小均方误差 ,这个原理是下面提到的神经网络学习算法的理论核心,入门者要先看高等数学(高等教育出版社,同济大学版)第8 章的第十节: “ 最小二乘法 ” 。3.在第 2 步的基础上看 Hebb 学习算法、 SO
3、M和 K-近邻算法,上述算法都是在最小均方误差基础上的改进算法,参考书籍是神经网络原理(机械工业出版社, Simon Haykin著,中英文都有)、人工神经网络与模拟进化计算(清华大学出版社,阎平凡,张长水著)、模式分类 (机械工业出版社,Richard O. Duda等著,中英文都有) 、 神经网络设计(机械工业出版社, Martin T. Hargan等著,中英文都有) 。(自适应谐振理论 ),该算法的最通俗易懂的读物就是 神经网络设计(机械工业出版社, Martin T. Hargan等著,中英文都有)的第15 和 16 章。若看理论分析较费劲可直接编程实现一下节的ART1算法小节中的算
4、法 . 算法,初学者若对误差反传的分析过程理解吃力可先跳过理论分析和证明的内容 ,直接利用最后的学习规则编个小程序并测试,建议看机器学习 (机械工业出版社, Tom M. Mitchell 著,中英文都有)的第 4 章和神经网络设计(机械工业出版社,Martin T. Hargan等著,中英文都有)的第 11 章。BP神经网络 Matlab 实例( 1)分类:Matlab 实例采用 Matlab 工具箱函数建立神经网络,对一些基本的神经网络参数进行了说明,深入了解参考Matlab 帮助文档。% 例 1 采用动量梯度下降算法训练BP 网络。% 训练样本定义如下:% 输入矢量为% p =-1 -2
5、 3 1 % -1 1 5 -3 % 目标矢量为t = -1 -1 1 1 close all clear clc % - % NEWFF 生成一个新的前向神经网络,函数格式:% net = newff(PR,S1 S2.SNl,TF1 TF2.TFNl,BTF,BLF,PF) takes, % PR - R x 2 matrix of min and max values for R input elements % (对于 R维输入, PR是一个 R x 2 的矩阵,每一行是相应输入的边界值)% Si - 第 i 层的维数% TFi - 第 i 层的传递函数 , default = tan
6、sig 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 2 页,共 18 页 - - - - - - - - - - % BTF - 反向传播网络的训练函数, default = traingdx % BLF - 反向传播网络的权值 /阈值学习函数 , default = learngdm % PF - 性能函数 , default = mse % - % TRAIN 对 BP 神经网络进行训练,函数格式:% train(NET,P,T,Pi,Ai,VV,TV),输入参数:% net - 所建立的网络%
7、P - 网络的输入% T - 网络的目标值 , default = zeros % Pi - 初始输入延迟 , default = zeros % Ai - 初始网络层延迟 , default = zeros % VV - 验证向量的结构 , default = % TV - 测试向量的结构 , default = % 返回值:% net - 训练之后的网络% TR - 训练记录 (训练次数及每次训练的误差) % Y - 网络输出% E - 网络误差% Pf - 最终输入延迟% Af - 最终网络层延迟% - % SIM 对 BP 神经网络进行仿真,函数格式:% Y,Pf,Af,E,perf
8、= sim(net,P,PiAi,T) % 参数与前同。% - % % 定义训练样本% P 为输入矢量echo on P=-1, -2, 3, 1; -1, 1, 5, -3; % T 为目标矢量T=-1, -1, 1, 1; % 创建一个新的前向神经网络net=newff(minmax(P),3,1,tansig,purelin,traingdm) % - % 训练函数: traingdm,功能:以动量BP 算法修正神经网络的权值和阈值。% 它的相关特性包括:% epochs :训练的次数,默认: 100 % goal :误差性能目标值,默认:0 % lr:学习率,默认:% max_fail
9、 :确认样本进行仿真时,最大的失败次数,默认:5 % mc :动量因子,默认:% min_grad:最小梯度值,默认: 1e-10 % show :显示的间隔次数,默认:25 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 3 页,共 18 页 - - - - - - - - - - % time:训练的最长时间,默认:inf % - % 当前输入层权值和阈值inputWeights=1,1 inputbias=1 % 当前网络层权值和阈值layerWeights=2,1 layerbias=2 % 设置
10、网络的训练参数= 50; = ; = ; = 1000; = 1e-3; % 调用 TRAINGDM 算法训练BP 网络net,tr=train(net,P,T); % 对 BP 网络进行仿真A = sim(net,P) % 计算仿真误差E = T - A MSE=mse(E) echo off figure; plot(1:4),T,-*,(1:4),A,-o)1 B P神经网络的原理及算法的基本步骤理 论上已证明 ,一个3 层的B P网络能够实现任意的连续映射,可以任意精度逼近任何给定的连续函数。1. 1B P神经网络的原理B P (B ack P rop aga tion)神经网络通常由
11、具有多个节点的输入层( inp u t laye r) 、 隐含层( h idden laye r) 和多个 或一个输出节点的输出层( ou tp u t laye r)组成 ,其学习过程分为信息的正向传播过程和误差的反向传播过程两个阶段。外部输入的信号经输入层、 隐含层为止。的神经元逐层处理,向前传播到输出层,给出结果 。如果在输出层得不到期望输出,则转入逆向传播过程,将实际值与网络输出之间的误差沿原连接通路返回 ,通过修改各层神经元的连接权重,减少误差 ,然后再转入正向传播过程,反复迭代,直到误差小于给定的值表 1 19812005 年全国总人口(单位:万人)年份1981198219831
12、98419851986198719881989人口99622101541102495103604104639106008108000109614111191精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 4 页,共 18 页 - - - - - - - - - - 年份199019911992199319941995199619971998人口114333115823117171118517119850121121122389123626124810年份19992000200120022003200420
13、05人口125909缺省127627128453129227129988130756模型二预测2001 年 2010 年全国总人口(单位:万人)年份20012002200320042005人口127699128457129220129987130758年份20062007200820092010人口131534132315133100133890134685模型预测的全国总人口(1981 年至 2016 年)(单位:万人 )年份198119821983198419851991人口99266101308102967104600106203115172年份199219931994199520012
14、002人口116550117895119205120480127403128436年份200320042005200620072008人口129437130405131340132244133116133958年份200920102015202020252030人口134770135552139049141921144257146144年份203520402045205020602070人口147659148869149832150596151678152352年份208020902100210521102120人口152769153026153185153240153283153344模型四
15、预测2011 至 2020 年人口 (单位:万人 )年份20112012201320142015全国总人口134668135478136325137185138036年份20162017201820192020全国总人口138862139652140402141106141760精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 5 页,共 18 页 - - - - - - - - - - 利用 Matlab Script 节点实现在此以对一个非线性函数的逼近作为例子来说明实现流程 ,其中输入矢量 p=-11
16、;目标矢量 t=sin(2*pi*p)+(size(p)。利用 Mat-lab Script节点实现 BP算法的过程如下 :(1)新建一个 LabVIEW vi, 在框图程序中添加Matlab Script 节点。(2)在节点内添加 Matlab 的动量 BP算法实现代码,并分别在节点左右边框分别添加对应的输入/输出参数,如图 1 所示。(3)在 vi 的前面板添加相应的控件,设置输入参数,连接输出控件。执行程序 ,结果如图 2、图 3 所示。精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 6 页,共 1
17、8 页 - - - - - - - - - - 下面的代码将重建我们以前的网络, 然后用批处理最速下降法训练网络。(注意用批处理方式训练的话所有的输入要设置为矩阵方式)net=newff(-1 2; 0 5,3,1,tansig,purelin,traingd);精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 7 页,共 18 页 - - - - - - - - - - = 50; = ; = 300; = 1e-5;p = -1 -1 2 2;0 5 0 5; t = -1 -1 1 1; net=tr
18、ain(net,p,t);TRAINGD, Epoch 0/300, MSE 1e-05, Gradient 1e-10TRAINGD, Epoch 50/300, MSE 1e-05, Gradient1e-10TRAINGD, Epoch 100/300, MSE 1e-05, Gradient1e-10TRAINGD, Epoch 150/300, MSE 1e-05, Gradient1e-10TRAINGD, Epoch 200/300, MSE 1e-05, Gradient1e-10TRAINGD, Epoch 211/300, MSE 1e-05, Gradient1e-10T
19、RAINGD, Performance goal met. a = sim(net,p)a =用 nnd12sd1 来演示批处理最速下降法的性能。带动量的批处理梯度下降法(TRAINGDM )net=newff(-1 2; 0 5,3,1,tansig,purelin,traingdm);= 50; = ; = ; = 300; = 1e-5;p = -1 -1 2 2;0 5 0 5; t = -1 -1 1 1; net=train(net,p,t);TRAINGDM, Epoch 0/300, MSE 1e-05, Gradient 1e-10TRAINGDM, Epoch 50/300
20、, MSE 1e-05, Gradient1e-10TRAINGDM, Epoch 100/300, MSE 1e-05, Gradient1e-10TRAINGDM, Epoch 114/300, MSE 1e-05, Gradient1e-10TRAINGDM, Performance goal met. a = sim(net,p)a =MATLAB 神经网络工具箱的 GUI(图形用 户界面)工具. 神经网络工具箱的 GUI 工具主要包括: 1)神经网络 GUI 工具主窗口;2)神经网络的建立窗口; 3)网络训练 对话框; 4)自适 应参数设置对话框 ;5)权 值 显 示 窗口 . 通过
21、 神经 网 络工 具 箱 的GUI 工具 按钮 就能 很 方便 地打开所建立的神经网络的结构图进行察看,也可以看到一个训练过程 的 偏差曲线变化图.神 经 网 络 工 具 箱 解 决 问 题 的 一 般 步 骤精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 8 页,共 18 页 - - - - - - - - - - 1)对待 解 决的 问题进 行 分析, 根 据各种 网 络 的特 点 选用 合适 的网 络 模型 ;2) 建 立网 络 ; 3) 对 网络 初 始 化; 4) 对网 络进 行训 练 ; 5)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022 年用 matlab BP 神经网络 预测 程序
限制150内