matlab BP神经网络
更新时间:2023-09-30 11:19:01 阅读量: 综合文库 文档下载
- matlab推荐度:
- 相关推荐
基于MATLAB的BP神经网络工具箱函数
最新版本的神经网络工具箱几乎涵盖了所有的神经网络的基本常用模型,如感知器和BP网络等。对于各种不同的网络模型,神经网络工具箱集成了多种学习算法,为用户提供了极大的方便[16]。Matlab R2007神经网络工具箱中包含了许多用于BP网络分析与设计的函数,BP网络的常用函数如表3.1所示。
表3.1 BP网络的常用函数表 函数类型 前向网络创建函数 传递函数 学习函数 性能函数 显示函数 函数名称 newcf Newff logsig tansig purelin learngd learngdm mse msereg plotperf plotes plotep errsurf
3.1.1BP网络创建函数
1) newff
该函数用于创建一个BP网络。调用格式为: net=newff
net=newff(PR,[S1S2..SN1],{TF1TF2..TFN1},BTF,BLF,PF) 其中,
net=newff;用于在对话框中创建一个BP网络。 net为创建的新BP神经网络; PR为网络输入向量取值范围的矩阵;
[S1S2?SNl]表示网络隐含层和输出层神经元的个数;
{TFlTF2?TFN1}表示网络隐含层和输出层的传输函数,默认为‘tansig’; BTF表示网络的训练函数,默认为‘trainlm’; BLF表示网络的权值学习函数,默认为‘learngdm’; PF表示性能数,默认为‘mse’。
函数用途 创建级联前向网络 创建前向BP网络 S型的对数函数 S型的正切函数 纯线性函数 基于梯度下降法的学习函数 梯度下降动量学习函数 均方误差函数 均方误差规范化函数 绘制网络的性能 绘制一个单独神经元的误差曲面 绘制权值和阈值在误差曲面上的位置 计算单个神经元的误差曲面 2)newcf函数用于创建级联前向BP网络,newfftd函数用于创建一个存在输入延迟的前向网络。
3.1.2 神经元上的传递函数
传递函数是BP网络的重要组成部分。传递函数又称为激活函数,必须是连续可微的。BP网络经常采用S型的对数或正切函数和线性函数。
1) logsig
该传递函数为S型的对数函数。调用格式为: A=logsig(N) info=logsig(code) 其中,
N:Q个S维的输入列向量;
A:函数返回值,位于区间(0,1)中; 2)tansig
该函数为双曲正切S型传递函数。调用格式为: A=tansig(N) info=tansig(code) 其中,
N:Q个S维的输入列向量;
A:函数返回值,位于区间(-1,1)之间。 3)purelin
该函数为线性传递函数。调用格式为: A=purelin(N) info=purelin(code) 其中,
N:Q个S维的输入列向量; A:函数返回值,A=N。
3.1.3BP网络学习函数
1)learngd
该函数为梯度下降权值/阈值学习函数,它通过神经元的输入和误差,以及权值和阈值的学习效率,来计算权值或阈值的变化率。调用格式为:
[dW,ls]=learngd(W,P,Z,N,A,T,E,gW,gA,D,LP,LS) [db,ls]=learngd(b,ones(1,Q),Z,N,A,T,E,gW,gA,D,LP,LS)
info=learngd(code)
2)learngdm函数为梯度下降动量学习函数,它利用神经元的输入和误差、权值或阈值的学习速率和动量常数,来计算权值或阈值的变化率。
3.1.4BP网络训练函数
1)train
神经网络训练函数,调用其他训练函数,对网络进行训练。该函数的调用格式为: [net,tr,Y,E,Pf,Af]=train(NET,P,T,Pi,Ai) [net,tr,Y,E,Pf,Af]=train(NET,P,T,Pi,Ai,VV,TV)
2) traingd函数为梯度下降BP算法函数。traingdm函数为梯度下降动量BP算法函数。
3.2BP网络在函数逼近中的应用
3.2.1问题的提出
BP网络由很强的映射能力,主要用于模式识别分类、函数逼近、函数压缩等。下面将通过实例来说明BP网络在函数逼近方面的应用。
要求设计一个BP网络,逼近以下函数:g(x)=1+sin(k*pi/4*x),实现对该非线性函数的逼近。其中,分别令k=1,2,4进行仿真,通过调节参数(如隐藏层节点个数等)得出信号的频率与隐层节点之间,隐层节点与函数逼近能力之间的关系。
3.2.2 基于BP神经网络逼近函数
步骤1:假设频率参数k=1,绘制要逼近的非线性函数的曲线。函数的曲线如图3.2所示
k=1;
p=[-1:.05:8]; t=1+sin(k*pi/4*p); plot(p,t,'-');
title('要逼近的非线性函数'); xlabel('时间'); ylabel('非线性函数');
图3.2 要逼近的非线性函数曲线
步骤2:网络的建立
应用newff()函数建立BP网络结构。隐层神经元数目n可以改变,暂设为n=3,输出层有一个神经元。选择隐层和输出层神经元传递函数分别为tansig函数和purelin函数,网络训练的算法采用Levenberg – Marquardt算法trainlm。
n=3;
net = newff(minmax(p),[n,1],{'tansig' 'purelin'},'trainlm'); 对于初始网络,可以应用sim()函数观察网络输出。 y1=sim(net,p); figure;
plot(p,t,'-',p,y1,':') title('未训练网络的输出结果'); xlabel('时间');
ylabel('仿真输出--原函数-');
同时绘制网络输出曲线,并与原函数相比较,结果如图3.3所示。
图3.3 未训练网络的输出结果
其中“”代表要逼近的非线性函数曲线;
“‥‥‥”代表未经训练的函数曲线;
因为使用newff()函数建立函数网络时,权值和阈值的初始化是随机的,所以网络输出结构很差,根本达不到函数逼近的目的,每次运行的结果也有时不同。
步骤3:网络训练
应用train()函数对网络进行训练之前,需要预先设置网络训练参数。将训练时间设置为50,训练精度设置为0.01,其余参数使用缺省值。训练后得到的误差变化过程如图3.4所示。
图3.4 训练过程
正在阅读:
matlab BP神经网络09-30
降糖药10-07
红星功勋荣誉章- 详解01-11
FusionAccess V100R005 HDC常见问题处理指南 v1.012-07
家长会活动策划(精选多篇)05-21
机械制图教案(第十章教案) - 轴测图03-28
2022年虎年迎新年会开场主持词串词(附年会策划方案)07-30
C语言程序设计大赛题目和答案106-29
- 天大砼方案 - 图文
- 农业科技网络书屋能力提升_玉米错题选
- DNS习题
- 浅议检察官对罪犯谈话的技巧与效果
- 高考语文文言文翻译专题训练
- AB类学科竞赛目录(2015)
- 建筑面积计算新规定(2015最新)
- Revit2012初级工程师题集一
- 十三五项目米线可行性报告
- 2013体育学院党组织建设工作总结
- 2014Revit工程师题库
- 高中数学如何实施研究性学习
- 茶艺表演 中英互译
- 小学音乐湘文艺版 四年级下册 第十一课《(歌表演)脚印》优质课公
- 山西省农村合作经济承包合同管理条例
- 2015年镇江市中考化学一模试题参考答案及评分标准(定稿)
- 统计 题集
- 批评意见清单
- 8潞安集团蒲县黑龙关煤矿矿业公司2
- 鄂教版四年级语文上册复习精要(光谷四小)
- 神经网络
- matlab
- 历年全国执业兽医及助理兽医考试合格分数线
- 辽宁省机制纸和纸板企业名录202家
- 新视野大学英语读写教程第四册课后考试单元翻译答案
- 西安交通大学现代远程教育(精)
- 多措并举 齐心协力 推动义务教育均衡发展
- 华东师范大学外语学院英语系课程表
- 轧钢厂酸洗循环水处理工艺操作规程—北京邦驰世纪水处理科技有限公司
- 聚合物报告
- 冀教版二年级上册语文基础知识总结
- 铁路行波故障测距技术的研究
- 换热设备综合评价指标的研究进展
- 普通话语音概述
- 飞行签派员执照考试题库 第2章 设备,导航,设施
- 2014年天津大学生村官考试备考指导:农村热点问题预测二
- 完型
- 财务软件实训心得体会
- 控制工程第二次实验
- 南京市玄武区十二五规划纲要 - 图文
- 储存危险化学品的单位应当对其危险化学品专用仓库的安全设施
- DYY-6D型电泳仪电源标准操作规程