基于MATLAB神经网络工具箱的BP网络设计

合集下载

基于MATLAB的BP人工神经网络设计

基于MATLAB的BP人工神经网络设计

浙江大学出版社 ! 杨 健 刚- 人 工 神 经 网 络 实 用 教 程- 杭 州 : , !,,’ , ’ 杨 竹 清 - "#$%#&<-) 辅 助 神 经 网 络 设 计 - 北 京 : 电 ; 柳林, 子工业出版社, !,,; , ’-
7 调 用 >4?00 函 数 建 立 输 入 层 为 ) 个 神 经 元 、 中 间 层 为 ’) 个 神 经
网络的应用 假定有以下四组输入数据, 如表 ! 所示:
将其数据输入训练好的神经网络可以得到以下结果如 图 !。
本文在各层间采用的传递函数为 / 形函数,因为其具 有完成分类的非线形特征,有具有实现误差计算所需要的 可微特性, 而且比较接近于人工神经元的输入—输出特点。 其函数表达式为: ( 0 1 )2
( C )从 后 向 前 计 算 隐 含 层 的 误 差 信 号 " ( ) " ,=?< ,= &B< ,= ! ! ,+ " ;
,=
&(4 %’ 神 经 网 络 算 法 的 数 学 描 述
一个隐含层、 输出层和非线 %’ 神 经 网 络 是 由 输 入 层 、 性兴奋函数 ( 51/6.17 )组 成 的 三 层 感 知 器 网 络 。 它是在导师 指导下适合于多层神经元网络的一种学习,建立在梯度算 法的基础之上。 这种网络对于输入信息, 要先向前传播到隐 含层的节点上, 经 过 各 单 元 的 特 性 为 51/6.17 型 的 激 活 函 数 运算后, 把隐含节点的输出信息传播到输出节点, 最后给出 输出结果。 网络的学习过程由正向和反向传播两部分组成: 在正向传播过程中,每一层的神经元的状态只影响下一层 的神经元网络;如果输出层不能得出期望输出即实际输出 值与期望输出值之间有误差, 那么转入反向传播过程, 将误

基于MATLAB的BP神经网络的设计与训练

基于MATLAB的BP神经网络的设计与训练

基于MATLAB 的BP 神经网络的设计与训练张圣楠1,郭文义3,肖力墉2Ξ(1.浙江大学电气工程学院,2.浙江大学信息学院,浙江杭州 310027;3.内蒙古农业大学机电学院,内蒙古呼和浩特 010018) 摘 要:本文介绍了BP 神经网络以及运用matlab 工具箱构造BP 神经网络,并对该神经网络进行训练的方法及过程。

并以函数逼近为例,通过改变被逼近函数的参数、BP 网络隐层神经元的数目、BP 网络的学习算法,比较训练效果的差别,进而得出结论。

关键词:人工神经网络;BP 神经网络;matlab 中图分类号:TP18 文献标识码:A 文章编号:1007—6921(2005)17—0095—041 引言智能控制作为一门新兴的交叉学科,在许多方面都优于传统控制,而智能控制中的人工神经网络由于模仿人类的神经网络,具有感知识别、学习、联想、记忆、推理等智能,更是有着广阔的发展前景。

其中的一种---反向传播网络(Back Propagation Network ,简称BP 网络)是对非线性可微分函数进行权值训练的多层前向网络。

可以说,BP 网络是人工神经网络中前向网络的核心内容,体现了人工神经网络最精华的部分。

本文介绍了运用matlab 工具箱构造BP 神经网络,实现对非线性函数(余弦函数)的逼近,并对该神经网络进行训练的方法及过程。

2 BP 网络反向传播网络(Back Propagation Network ,简称BP 网络)是对非线性可微分函数进行权值训练的多层前向网络。

在人工神经网络的实际应用中,80%-90%的模型是采用BP 网络或它的变化形式。

它主要作用于以下几个方面:1.函数逼近:用输入矢量和相应的输出矢量训练一个网络来逼近一个函数。

2.模式识别:用一个特定的输出矢量将它与输入矢量联系起来。

3.分类:把输入矢量以所定义的合适的方式进行分类。

4.数据压缩:减少输出矢量的维数以便于数据传输或存储。

基于MATLAB的BP神经网络实现研究

基于MATLAB的BP神经网络实现研究

方法与实验设计
基于MATLAB的BP神经网络实现主要包括以下几个步骤:
1、数据预处理:首先需要对数据进行预处理,包括数据清洗、归一化等操 作。
2、网络设计:根据问题特点选择合适的网络结构,并确定输入层、输出层 和隐藏层的节点数。
3、训练模型:使用MATLAB中的神经网络工具箱进行模型训练。
2、在防止过拟合方面,可以研究更有效的正则化方法和技术,以避免模型 在训练过程中产生过拟合问题。
3、在网络结构设计方面,可以研究更加智能的自适应网络结构设计方法, 以简化人工设计网络的复杂度。
4、可以进一步拓展BP神经网络在其他领域的应用研究,例如自然语言处理、 生物信息学等。
谢谢观看
结论与展望
本次演示研究了基于MATLAB的BP神经网络实现方法,通过实验设计和实验结 果分析,可以得出以下结论:
1、BP神经网络在解决分类、逼近和优化等问题方面具有较好的性能,证实 了其在实际应用中的价值。
2、在超参数调整方面,学习率和迭代次数对模型性能具有重要影响,需要 根据实际问题进行调整。
2、函数逼近:BP神经网络可以用于逼近复杂的非线性函数。例如,在控制 系统、信号处理等领域,可以利用BP神经网络对系统进行建模和预测。
3、优化问题:BP神经网络可以应用于求解各种优化问题。例如,利用BP神 经网络实现函数的最小化、多目标优化等。
然而,目前的研究还存在着一些问题。首先,由于BP神经网络的训练速度较 慢,可能需要进行大量的迭代才能得到较好的结果。其次,BP神经网络的训练过 程中容易出现过拟合问题,这可能导致模型的泛化能力下降。最后,BP神经网络 的性能受到初始参数的影响较大,如何选择合适的参数也是亟待解决的问题。
4、模型评估与优化:通过验证数据集评估模型的性能,并进行参数调整和 优化。

基于Matlab的BP神经网络设计 (1)

基于Matlab的BP神经网络设计 (1)

第4期(总第137期)2006年8月机械工程与自动化M ECHAN I CAL EN G I N EER I N G & AU TOM A T I ON N o 14A ug 1文章编号:167226413(2006)0420036202基于M atlab 的B P 神经网络设计常晓丽(中北大学自动控制系,山西 太原 030051)摘要:BP 神经网络已广泛应用于非线性建摸、函数逼近、系统辨识等方面,但对实际问题,其模型结构需由实验确定,无规律可寻。

简要介绍了利用M atlab 语言进行BP 网络建立、训练、仿真的方法及注意事项。

关键词:BP 神经网络;M atlab ;设计中图分类号:T P 183 文献标识码:A收稿日期:2006202220作者简介:常晓丽(19752),女,山东烟台人,讲师,硕士研究生。

0 引言人工神经网络(A rtificial N eu ral N etw o rk s 简称ANN )是近年来发展起来的模拟人脑生物过程的人工智能技术。

它由大量的、同时也是很简单的神经元广泛互连形成复杂的非线性系统,已经在信息处理模式识别、智能控制及系统建模等领域得到越来越广泛的应用。

基于误差反向传播算法的多层前馈网络,即B P 网络,可以任意精度逼近任意的连续函数,主要应用于非线性建模函数逼近模式分类等方面。

1 BP 网络模型20世纪80年代中期,学者R um elhart 、M cC lelland 和他们的同事提出了多层前馈网络(M FNN ,M u tltilayer Feedfo r w ard N eu ral N etw o rk s )的反向传播学习算法,即B P 网络(B ack P rop agati on N etw o rk )学习算法。

B P 网络是一种单向传播的多层前向网络,每一层节点的输出只影响下一层节点的输出,其网络结构见图1。

其中u 和y 分别为网络输入、输出向量,每个节点表示一个神经元。

基于MATLAB的BP神经网络建模及系统仿真 (1)

基于MATLAB的BP神经网络建模及系统仿真 (1)

文章编号:1001—9944(2001)01—0034—03基于M AT LAB 的BP 神经网络建模及系统仿真Ξ侯北平,卢 佩(天津轻工业学院自动化系,天津 300222)摘 要:将M A TLAB 中的神经网络工具箱和Si m ulink 有机结合起来,并充分利用它们各自的优势,实现了神经网络控制系统(NN CS )的计算机仿真。

具体仿真实例表明,M A TLAB 是进行人工神经网络计算机仿真的有效工具。

关键词:神经网络;BP 网;M A TLAB ;Si m ulink ;系统仿真中图分类号:T P 391.9 文献标识码:B1 引言控制系统的模拟和仿真是进行科学研究的重要手段。

近年来,几乎所有控制系统的高品质控制均离不开系统仿真研究。

通过仿真研究可以对照比较各种控制方案,优化并确定相关控制参量。

一般来说,对控制系统进行计算机仿真首先应建立系统模型,然后依据模型编制仿真程序,充分利用计算机对其进行动态模拟并显示结果。

对于一个闭环控制系统,我们的控制目标是它的输出曲线是一条从0开始,无限接近于给定值,且超调量极小的上升曲线,这主要是由控制器的输出决定的。

在输入偏差不断变化的情况下,设计什么样的控制器才能达到所需的控制精度和要求呢?在本文中,我们将B P 算法引入控制策略,并建立一个B P 网络模型,利用M A TLAB 中的神经网络工具箱对其进行学习和训练,根据训练出的参量构造一网络控制器,并在Si m u link 环境下组成闭环控制系统,进行系统仿真和动态模拟,观察其品质。

2 BP 网络分析及模型建立B P 网络是目前应用最广泛的神经网络模型。

它的学习规则就是通过反向传播(B P )来调整网络的权值和阈值使网络误差的平方和最小,这是通过在最速下降方向上不断调整网络的权值和阈值来实现的。

B P 网络具有强大的非线性映射能力和泛化功能,任一连续函数或映射均可采用三层网络加以实现。

这样,把它作为控制器就找到了很好的答案。

基于MATLAB神经网络工具箱的BP网络实现

基于MATLAB神经网络工具箱的BP网络实现
本文将以 MATLAB6.1 为 开发 环境 , 介 绍 神经 网络 工 具 箱及其相关函数 , 论述利 用其 神经 网络工 具箱 开发 BP 网 络 的方法及设计步骤 , 给出应用实例 。
2 BP 网络模型
BP 网 络是一种多层前馈神经 网络 , 由输入 层 、隐层和 输 出层组成 。 层与层之间采用全互连方式 , 同一层 之间不存 在 相互连接 , 隐层可以 有一个 或多 个 。 构造 一个 BP 网 络需 要
收稿日期 :2003 -03 -06
确定其 处 理单 元 ——— — 神 经元 的 特 性和 网 络的 拓 扑结 构 。 神经元是神经网络最基本的处理单元 , 隐层中 的神经元采 用 S 型变换 函数 , 输出层的 神经元可采 用 S 型或线 性型变换 函 数 。 图 1 为一个典型的三层 BP 网络的拓扑结构 。
其中 :PR 是一个 由每 个输 入向 量 的最 大最 小值 构成 的 Rx2 矩阵 , R 为输入神经元数目 。
Si 是第 i 层网络的神经元个 数 , 网络共有 N1 层 。 TFi 是第 i 层网络神经元的变换函数 , 缺省为 tansig . BTF 是 BP 训练算法函数 , 缺省为 trainlm. BLF 是学习函数 , 缺省为 learngdm. PF 是性能函数 , 缺省为 mse . newff 在确定网络结构 后会 自动调 用初 始化 函数 init , 用 缺省参数来初始化网络中各个权值和阈值 , 产生 一个可训 练 的前馈网络 , 即该函数的 返回值 net。 在 MATLAB 中 , 神经 网 络 net 当做对象(object)处理 , 其属性用结构来定义 。 3)初始化函数 init :它是 对网 络的 连接 权值 和阈 值进 行 初始化 。 newff 在 创建 网络 对象 的 同时 , 自 动 调动 初始 化 函 数 , 根据缺省的参数对网络进行连接权值和阈 值初始化 。 4)学习函数 :提供多种学习函数 , 用来修 正权值和 阈值 。 基本的学习函数有 :learngd 、 learngdm。 5)性能函数 :它是用来计算网络 的输出误差 。 为训练 提 供判据 , 包 括 :函 数 mae , 计 算网 络 的 平 均 绝 对 误 差 ;函 数 mse, 计算网络的均方误差 ;函 数 msereg , 计算 均方误差 和权/ 阈值的加权 ;函数 sse , 计算网络的均方误差和 。 6)训练函数 train : BP 网 络的训练初始化后 , 可对 它进行训练 。 在 MATLAB 中训练网络有两类模式 :逐变模式 和批处理 模式 。 在逐变 模 式中 , 每输入一个学习样本就根据网 络性能指标 函数对连 接 权值和阈值更新一次 。 在批处理模式中 , 所有的 学习样本 都 学习完成后 , 连接权值和阈值才被 更新一次 。 使 用批处理 模 式不需要为每一层的连接权值和阈值设定 训练函数 , 而只 需 为整个网络指定 一个 训练 函数 , 使用 起来 相对方 便 , 而且 许 多改进的快速训练算法只能采用批处理模式 。 训练网 络 的 函 数 是 train 按 设 置 的 net.trainFcn 和 net. trainParam 参数来 训练网络 , 采用批处理方式进行网络的权 值 和阈值修正 , 最终达到设定的网络性能指标的 要求 。 7)BP 训练算法函数 :它是 根据网络 的输入 、目 标期望 输 出 , 对由 函数 newff 生成的 BP 网络 进行计 算 , 修正其 权值 和 阈值 , 最终达到设定的网络性能指 标的要求 。 不 同的训练 算 法函数对应不同的训练算法 , 如 traingd 对应最基 本梯度下 降 法 ;traingdm 带有动量 项 的梯 度下 降法 ;traingdx 带有 采用 动

基于MATLAB神经网络工具箱的BP网络设计

基于MATLAB神经网络工具箱的BP网络设计

基于MATLAB神经网络工具箱的BP网络设计摘要本文介绍了MA TLAB神经网络工具箱及其常用的工具箱函数;在说明BP网络的模型结构和算法的基础上,讨论了BP网络的训练过程及其设计原则,并用一个典型的两层结构的神经网络实现了具有函数逼近功能的BP网络设计。

关键词: MAT LAB神经网络工具箱BP算法BP网络设计函数逼近Abstract Firstly, the MATLAB’s Neural Net works Toolbox and its common toolbox functions are presen2ted . Then, after the model structure and arithmetic of the BP Neural Net work being introduced briefly, its training process and the design principle are analyzed emphatically . At last, with the help of the MATLAB Neural Net work Toolbox, the design of a typical two - layer - structure BP Neural Net work of function approaching is implemented Keywords MAT LAB neural net works toolbox BP arithmetic BP neural net works design Function approaching引言神经网络理论是在20世纪提出的,它从微观结构和功能上模拟人脑的组织机构和运行机制,能够较好地描述非线性系统和不确定系统。

由于神经网络具有可并行计算、分布式信息存储、自适应和学习能力强等优点,在很多领域获得了极其广泛的应用。

爱享文献_基于MATLAB神经网络工具箱的BP网络设计

爱享文献_基于MATLAB神经网络工具箱的BP网络设计

网络与通信信息技术与信息化20 2009年第3期基于M A T L A B 神经网络工具箱的B P 网络设计T h e D e s i g n o f B PN e u r a l N e t w o r k B a s e d o n M A T L A BT o o l b o x郭利辉* 周 雅G U OL i -h u i Z H O UY ad o i :10.3969/j .i s s n .1672-9528.2009.03.006摘 要 本文介绍了M A T L A B 神经网络工具箱及其常用的工具箱函数;在说明B P 网络的模型结构和算法的基础上,讨论了B P 网络的训练过程及其设计原则,并用一个典型的两层结构的神经网络实现了具有函数逼近功能的B P 网络设计。

关键词 M A T L A B 神经网络工具箱 B P 算法 B P 网络设计 函数逼近A b s t r a c t F i r s t l y ,t h e M A T L AB 's N e u r a l N e t w o r k s T o o l b o x a n di t s c o m m o nt o o l b o x f u n c t i o n s a r e p r e s e n -t e d .T h e n ,a f t e r t h e m o d e l s t r u c t u r e a n d a r i t h m e t i c o f t h e B PN e u r a l N e t w o r k b e i n g i n t r o d u c e d b r i e f l y ,i t s t r a i n i n g p r o c e s s a n d t h e d e s i g np r i n c i p l ea r ea n a l y z e de m p h a t i c a l l y .A t l a s t ,w i t ht h eh e l po f M A T L A BN e u r a l N e t w o r k T o o l b o x ,t h e d e s i g no f a t y p i c a l t w o -l a y e r -s t r u c t u r e B PN e u r a l N e t w o r ko f f u n c t i o na p p r o a c h i n g i s i m p l e m e n -t e d .K e y w o r d s M A T L A Bn e u r a l n e t w o r k s t o o l b o x B Pa r i t h m e t i c B Pn e u r a l n e t w o r k s d e s i g n F u n c t i o na p -p r o a c h i n g引言神经网络理论是在20世纪提出的,它从微观结构和功能上模拟人脑的组织机构和运行机制,能够较好地描述非线性系统和不确定系统。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

网络与通信信息技术与信息化20 2009年第3期基于MAT LAB 神经网络工具箱的BP 网络设计The Design of BP Neural Net w ork Based on MAT LAB Toolbox郭利辉3 周 雅G UO L i -hui ZHOU Yadoi:10.3969/j .issn .1672-9528.2009.03.006摘 要 本文介绍了MAT LAB 神经网络工具箱及其常用的工具箱函数;在说明BP 网络的模型结构和算法的基础上,讨论了BP 网络的训练过程及其设计原则,并用一个典型的两层结构的神经网络实现了具有函数逼近功能的BP 网络设计。

关键词 MAT LAB 神经网络工具箱 BP 算法 BP 网络设计 函数逼近 Abstract Firstly,the MAT LAB ’s Neural Net w orks Toolbox and its common t oolbox functi ons are p resen 2ted .Then,after the model structure and arith metic of the BP NeuralNet w ork being intr oduced briefly,its training p r ocess and the design p rinci p le are analyzed e mphatically .A t last,with the hel p of MAT LAB Neural Net w ork Toolbox,the design of a typ ical t w o -layer -structure BP Neural Net w ork of functi on app r oaching is i m p le men 2ted .Keywords MAT LAB neural net w orks t oolbox BP arith metic BP neural net w orks design Functi on ap 2p r oaching引言神经网络理论是在20世纪提出的,它从微观结构和功能上模拟人脑的组织机构和运行机制,能够较好地描述非线性系统和不确定系统。

由于神经网络具有可并行计算、分布式信息存储、自适应和学习能力强等优点,在很多领域获得了极其广泛的应用。

尤其是BP 网络(Back -Pr opagati on Net w ork ),即反向传播网络,其应用最为广泛。

BP 网络是利用非线性可微分函数进行权值训练的多层网络,在函数逼近、模式识别、信息分类及数据压缩等领域得到了广泛的应用。

但是它也存在一些缺陷,比如,神经网络的建立实际上是一个不断尝试的过程,网络的层数及每一层结点的个数都是需要不断地尝试来改进的。

同样,神经网络学习过程的算法在数学计算上都比较复杂,过程也比较繁琐,容易出错。

因此,采用计算机辅助进行神经网络设计与分析成了必然的选择。

3许昌学院电气信息工程学院 河南许昌 461000目前,在比较成熟的神经网络软件包中,MAT LAB 的神经网络工具箱应用最为广泛[1-2]。

本文首先介绍了MAT LAB 的神经网络工具箱,并列举了通用的工具箱函数以及针对BP 网络设计和分析的常用工具箱函数[3-4];然后在说明BP 网络的模型结构和算法的基础上,重点讨论了BP 网络的训练过程和设计原则;最后在MAT LAB 神经网络工具箱的辅助下,设计了一个实现函数逼近功能的BP 网络,说明了采用MAT LAB 神经网络工具箱辅助进行BP 网络设计是十分方便快捷的。

1 MAT LAB 神经网络工具箱MAT LAB 7对应的神经网络工具箱的版本号为Versi on 4.0.3。

它以神经网络理论为基础,利用MAT LAB 脚本语言构造出典型神经网络的激活函数,如线性、竞争性和饱和线性等激活函数,使设计者对所选定网络输出的计算,变成对激活函数的调用。

另外,根据各种典型的修正网络权值的规则,再加上网络的训练过程,利用MAT LAB 编写出各种网络设计和训练的子程序。

网络设计人员可以根据自己的需要去调用工具箱中有关的设计参考资料:[1] 都志辉.高性能计算之并行编程技术-MP I 并行程序设计[M ].北京:清华大学出版社.2001.[2] Kai Hwang .Advanced Computer A rchitecture:Parallelis m,Scalability,Pr ogra mmability [M ].北京:机械工业出版社,1999.[3] RedHat Guide:The /p r oc File Syste m:htt p://www .redhat .com /docs/manuals/L inux/RHL -7.3-M anual/ref -guide /ch -p r oc .ht m l .[4] Syste m Manage ment B I O S Reference Specificati on Versi on 2.42004.7.21.[5] 沈美明,温冬婵.汇编语言程序设计[M ].清华大学出版社,2000.3.[6] Ra m Naraya m.G NU A ssembler (G AS )VS .Net w ide A sse mbler(NAS M ).[作者简介] 花嵘(1969~),男,江苏武进县人,副教授,硕士,研究方向:并行计算;傅游:女,山东科技大学副教授,硕士生导师,研究方向:服务计算,并行/分布式处理。

(收稿日期:2008-12-09)信息技术与信息化网络与通信21 和训练程序,将自己从繁琐的编程中解脱出来,集中精力解决其他问题,从而提高了工作效率。

MAT LAB 7神经网络工具箱包含了很多现有的神经网络新成果,其中涉及到的网络模型有:感知器模型、线性滤波器、BP 网络模型、自组织网络模型等。

它所提供的工具函数非常丰富,其中一些函数是通用的,几乎可以用于所有类型的神经网络。

其中比较重要的有仿真函数si m (),训练函数train ()、trainb ()和adap t(),学习函数learnp ()、learnpn ()和revert (),初始化函数init ()、initlay ()、initn w ()和init w b,输入函数netsu m ()、net p r od ()和con 2cur (),传递函数harli m ()和hardli m s (),等等。

而另外一些函数则是特别针对某一种类型的神经网络的,如感知器的创建函数、BP 网络的训练函数等。

例如针对BP 网络模型,工具箱提供了许多BP 网络分析与设计的函数,如创建函数ne wef ()、ne wff ()和ne wffd (),传递函数lgsig ()、tansig ()和purelin ()等,学习函数le 2arngd ()和learngd m (),显示函数p l ot perf ()、p l otes ()、p l otep ()和ensurf (),等等。

以上函数的功能、调用格式、使用方法及注意事项详见《神经网络理论与MAT LAB 7实现》一书[5]。

2 BP 网络模型结构和算法BP 网络是神经网络中采用误差反传算法作为其学习算法的前馈网络,通常由输入层、输出层和隐含层(一层或多层)构成。

层与层之间的神经元采用全互连的连接方式,通过相应的网络权系数W 相互联系,每层内的神经元之间没有连接,图1所示的为具有一个隐含层的BP 网络模型。

图1 具有一个隐含层的BP 网络模型示意图BP 算法或称为误差传播法是D.E .Ru melhart 等人于1986年提出的一种训练多层网络的学习方式。

BP 算法的基本思想是:从实际输出与标准输出之间的方差出发,沿网络内信号传输的相反方向逐层推算出每一层输出的相应偏差,据此调整各层单元间的连接权重及每个单元的阈值,经一系列样本的训练,使网络趋向稳定达到所要求的性能。

BP 算法的详细推导见《人工神经网络导论》一书[6]。

3 BP 网络的训练过程及其设计原则3.1 BP 网络的训练过程为了训练一个BP 网络,需要计算网络加权输入矢量以及网络输出和误差矢量,然后求得误差平方和。

当所训练矢量的误差平方和小于误差目标,则训练停止;否则在输出层计算误差变化,且采用反向传播学习规则来调整权值,并重复此过程。

当网络完成训练后,对网络输入一个不是训练集合中的矢量,网络将以泛化方式给出输出结果。

由于BP 网络的层数较多且每层神经元也较多,加上输入矢量的组数庞大,往往使得采用一般的程序设计出现循环套循环的复杂嵌套程序,使得程序变得既费时,又不易调用。

致使设计人员浪费了大量的时间在编程中,而无暇顾及网络性能的提升问题。

在这点上MAT LAB 工具箱充分展示出其优越性,它的全部运算均采用矩阵形式,使得网络训练既简单,又明了快速。

下面以两层网络为例给出BP 网络的训练步骤。

步骤1用小的随机数对每一层的权值W 和偏差B 初始化,以保证网络不被大的加权输入饱和;并进行以下参数的设定或初始化:1)期望误差最小值err_goal;2)最大循环次数max_epoch;3)修正权值的学习速率lr,一般情况下lr =0.01~0.7;4)从1开始循环训练:f or epoch =1:max_epoch;步骤2计算网络各层输出矢量A1和A2以及网络误差E;A1=tansig (W 13P,B1);A2=purelin (W 23A1,B2);E =T -A2;步骤3计算各层反传的误差变化D2和D1并计算各层权值的修正值:D2=deltalin (A2,E );D1=deltaan (A1,D2,W 2);[d W 1,d B1]=learnbp (P,D1,lr );[d w2,d B2]=learnbp (A1,D2,lr );W 1=W 1+d W 1;B1=B1+d B1;W 2=W 2+d W 2;B2=B2+d B2;步骤4再次计算权值修正后误差平方和:SSE =su m sqr (T -purelin (W 23tansig (W 13P,B1),B2));步骤5检查SSE 是否小于err_g oal,若是,训练结束;否则继续。

以上就是BP 网络在MAT LAB 中的训练过程,可以看出其程序是相当简单明了的。

需要指出的是,以上所有的学习规则与训练的全过程,仍然可以用MAT LAB 神经网络工具箱中的函数trainbp.m 来完成。

它的使用同样只需要定义有关参数(显示间隔次数、最大循环次数、目标误差、以及学习效率等),调用后将返回训练后的权值、循环总数和最终误差。

相关文档
最新文档