bp神经网络在matlab,BP神经网络在MATLAB上的方便实现

1引言人工神经网络(AltifiCialNbtll31N6tW0rkS,简称为NN)系统自本世纪四十年代末诞生至今仅短短的半个多世纪,但由于它具有信息的分布存储、并行处理以及自学习能力等优点,已经在信息处理、模式识别、智能控制及系统建模等领域得到越来越广泛的应用。尤其是基于误差反向传播(BackpIDmphon)算法的多层前馈网络(MultiPlelayefoe‘llorwalxlnetwork)(简称BP网络),可以以任意精度逼近任意的连续函数卜,所以广泛应用于非线性建模、函数逼近、模式分类等方面。近年来,为了解决BP网络收敛速度慢,训练时间长等不足,提出了许多改进算法2134。然而,在应用BP网络解决实际问题的过程中,选择多少层网络、每层多少个神经元节点;选择何种传输函数、何种训练算法等,均无可行的理论指导,只能通过大量的实验计算获得。这无形增加了研究工作量和编程计算工作量。在目前工程计算领域较为流行的软件MAMB中,提供了一个现成的神经网络工具箱(NetllalNetworkfbi)irxix,简称NNha),为解决这个矛盾提供了便利条件。本文针对BP网络的建立、传输函数的选择、网络的训练、网络的检验,在介绍NNha相关函数的基础上,给出利用这些函数编程的方法和应用示例。2BP网络的建立为了便于问题说明,首先给出基本神经元和BP网络模型及相关变量,有关BP网络和算法,请参阅5。(l)神经元模型一个有R个输入的基本神经元模型如图1所示。其中P为输入向量,W为权向量,b为阈值,正为传输函数,a为神经元输出。(2)BP神经网络模型图2所示为具有R个输入,S个岭ig传输函数的基本神经元组成的单层BP网络模型。图3所示为两层BP网络模型。其中两输入、三输出变量,输入层四个非线性神经元。输出层三个线性神经元。(3)BP网络的建立函数Nnha提供了建立神经网络的专用函数Neall()。该函数的调用格式为:netnewtA,l,c,TndnFun)其中net中存放所建立的网络属性和网络参数,四个输入变量分别为ARxZ的矩阵,每行两元素分别为每个输入向量的最大和最小值;卜一行向量,每个元素表示每层神经元的个数;c一字符串向董,元素为每层神经元的传输函数名;TrainFun字符串变量,为网络的训练函数名。如果建立图3所示的网络,可用以下的指令:netend(18,100,060,4,3,I‘tansig’,‘叩初h’I,‘usi呻’);值得指出的是,由于非线性传输函数对输出具有压缩作用,故输出层通常采用线性传输函数,用以展宽输出范围。3网络训练及仿真网络的训练和仿真是应用神经网络的重要环节,对BP网络而言,目前已提出数十种训练和学习算法。在NNlxix中,给出了十多种网络学习、训练函数,其采用的算法可分为基本的梯度下降算法和快速算法,各种算法的推导参见文献6。同时也提供了网络初始化和仿真函数。(l)初始化函数初始化函数用于在对所建立的网络训练前为网络权矩阵W和阈值向量b赋初始值,此值对算法的收敛性及训练速度具有一定的影响,所以初始化就显得十分必要和重要。Nnbo提供的初始化函数及调用格式为:netinit(ne);其中参数net为end所建立的网络,变量net为初始化后的网络。这种初始化为缺省初始化,即将网络中线性神经元层的权矩阵W和阈值向量b赋以l,l间的随机数,而非线性神经元层按NMenWidIDw法5初始化。这种缺省初始化在调用网络建立函数end时自动完成,可以不必单独调用init函数。但使用者可以通过init函数及相关的网络参数设置对网络进行特定的初始

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值