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
武警部队保证书02-11
11.四川省建筑施工企业安全生产许可证动态管理暂行办法12-02
钳工计算题库(含答案)06-07
(2013春)七年级报纸电子版·牛津深圳版(第07期) - 图文01-29
山东省烟台市2018届高三文综历史部分适应性练习试题一001 精 -06-13
鲁教版小学语文三四五年级日积月累04-15
北方的雪作文400字06-29
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 神经网络
- matlab
- 历年全国执业兽医及助理兽医考试合格分数线
- 辽宁省机制纸和纸板企业名录202家
- 新视野大学英语读写教程第四册课后考试单元翻译答案
- 西安交通大学现代远程教育(精)
- 多措并举 齐心协力 推动义务教育均衡发展
- 华东师范大学外语学院英语系课程表
- 轧钢厂酸洗循环水处理工艺操作规程—北京邦驰世纪水处理科技有限公司
- 聚合物报告
- 冀教版二年级上册语文基础知识总结
- 铁路行波故障测距技术的研究
- 换热设备综合评价指标的研究进展
- 普通话语音概述
- 飞行签派员执照考试题库 第2章 设备,导航,设施
- 2014年天津大学生村官考试备考指导:农村热点问题预测二
- 完型
- 财务软件实训心得体会
- 控制工程第二次实验
- 南京市玄武区十二五规划纲要 - 图文
- 储存危险化学品的单位应当对其危险化学品专用仓库的安全设施
- DYY-6D型电泳仪电源标准操作规程