BPNN在matlab中的实现学习
更新时间:2024-04-21 11:40:01 阅读量: 综合文库 文档下载
运用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 传递函数 tansig purelin learngd 学习函数 learngdm mse 性能函数 msereg plotperf plotes 显示函数 plotep errsurf 绘制权值和阈值在误差曲面上的位置 计算单个神经元的误差曲面 均方误差规范化函数 绘制网络的性能 绘制一个单独神经元的误差曲面 梯度下降动量学习函数 均方误差函数 创建前向BP网络 S型的对数函数 S型的正切函数 纯线性函数 基于梯度下降法的学习函数 函数名称 newcf 函数用途 创建级联前向网络 范例(网上搜寻的,谢谢原作者)
现给出一药品商店一年当中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箱(每次运行后的结果可能不同)。
正在阅读:
BPNN在matlab中的实现学习04-21
关于“赵”姓的历史和现状研究报告05-02
车间支部书记述职报告09-27
硫化氢防护安全管理规定03-05
燃气入户安全检查作业指导书03-29
2018年全国各地中考英语试题汇编83套(后37套) - 图文05-12
春节做灯笼作文600字06-18
高考接受村奖学金家长发言稿09-30
药监局个人年终工作总结12-02
春天真美丽作文精选06-14
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 实现
- matlab
- 学习
- BPNN
- Test bank International Finance MCQ(word)Chap 4
- 《城市轨道交通运营管理》期末考试试卷(A卷)
- 乡镇宣传委员述职报告
- 鲁教版五四制初三上unit4词组测试
- 瑞士职业教育的二元三元制
- 牛津译林版必修一Unit2 Grammar and usage教案
- 中国饮食文化试题及答案
- 铁制和铜制螺纹连接阀门检测原始记录
- 平面设计大师乔治·罗依斯作品探析
- 防雷考试计算题2
- 云南省烟草公司系统车辆交通安全管理规定
- 橙花醇生产技术及市场行情研究报告
- 实验5 索引和视图
- 河南省发展和改革委员会关于规范全省建筑工程施工图设计审查收费
- 生产现场安全设施管理办法
- 教师包保学生辅导工作总结
- 济南职业学院旅游管理专业 - 图文
- 2015年8月22日 事业单位真题及解析 - 图文
- 工程符合下列条件方可进行竣工验收工作(1)
- PDCCH信道分析报告(1)