神经网络建模及Matlab中重要的BP网络函数

上传人:876****10 文档编号:183252438 上传时间:2021-06-01 格式:DOC 页数:14 大小:75.50KB
返回 下载 相关 举报
神经网络建模及Matlab中重要的BP网络函数_第1页
第1页 / 共14页
神经网络建模及Matlab中重要的BP网络函数_第2页
第2页 / 共14页
神经网络建模及Matlab中重要的BP网络函数_第3页
第3页 / 共14页
神经网络建模及Matlab中重要的BP网络函数_第4页
第4页 / 共14页
神经网络建模及Matlab中重要的BP网络函数_第5页
第5页 / 共14页
点击查看更多>>
资源描述

《神经网络建模及Matlab中重要的BP网络函数》由会员分享,可在线阅读,更多相关《神经网络建模及Matlab中重要的BP网络函数(14页珍藏版)》请在金锄头文库上搜索。

1、个人收集整理 勿做商业用途神经网络建模及Matlab中重要的BP网络函数一、神经组织的基本特征1细胞体是一个基本的初等信号处理器,轴突是信号的输出通路,树突是信号的输入通路.信号从一个神经细胞经过突触传递到另一个细胞。2不同的神经元之间有不同的作用强度,称为联接强度.当某细胞收到信号时,它的电位发生变化,如果电位超过某一阈值时,该细胞处于激发态,否则处于抑制状态.3两神经元之间的联接强度随其激发与抑制行为相关性的时间平均值正比变化,也就是说神经元之间的联接强度不是一成不变的.这就是生物学上的Hebb律。二、人工神经元的MP模型(McCulloch、Pitts,1943)1构造一个模拟生物神经组

2、织的人工神经网络的三要素:(1)对单个神经元给出定义;(2)定义网络结构:决定神经元数量及连接方式;(3)给出一种方法,决定神经元之间的联接强度。2MP模型其中,t表示时间Si(t)表示第i个神经元在t时刻的状态,Si(t)=1表示处于激发态,Si(t)=0表示处于抑制态wij表示第j个神经元到第i个神经元的联接强度,称之为权,可正可负表示第i个神经元在t时刻所接收到的所有信号的线性迭加。i表示神经元i的阈值, 可以在模型中增加一个Sk(t)=1神经元k,并且wik=-i,则阈值可归并到和号中去。注:1MP神经元虽然简单,但可以完成任何计算。2神经元的状态可以取0,1中的连续值,如用以下函数代

3、替(x):iWi1Wi2Wi3I2H2H3I3O1H1I4I1O2输出层Oi输入层Ik隐含层Hj权Wjk权Wij三、多层前传网络1。特点: 相邻层全互连 同层没有连接 输出与输入没有直接联系2各层神经元个数的确定输入层、输出层的神经元个数由研究对象的输入、输出信息来确定。隐含层:3符号说明:表示一个确定的已知样品的标号;i, j, k:分别对应于输出层、隐含层、输入层的下标;将第个样品的原始数据输入网络时,相应输出单元状态;将第个样品的原始数据输入网络时,相应隐含单元状态;将第个样品的原始数据输入网络时,相应输入单元数据;wij:从隐含层第j个神经元到输出层第i个神经元的联接强度;wjk:从输

4、入层第k个神经元到隐含层第j个神经元的联接强度;4网络数据流程对应于输入层的输入:隐单元j的输入是:对应的输出是:输出单元i收到的迭加信号是:输出单元i的输出是:显然输出是所有权w=wij,wjk的函数四、向后传播算法(BackPropagation)设样品在输出单元i上的理想输出为,则函数:表示了在一定的权下,理想输出与实际输出的差异。因此,确定权w的问题化为求E(w)的极小值问题。可以采用最速下降算法。最速下降算法步骤:1)任取初始点w0,计算出w0的负梯度方向:E(w0)2)取新点w1=w0+w=w0-E(w0),使E(w1)E(w0)3)判断其中w的计算如下:对于隐单元到输出单元的权的

5、修正量为其中对于输入单元到隐单元的权的修正量为其中五、Matlab中 BP神经网络的实现1BP神经网络的初始化 各层神经元个数,各层神经元之间的连接强度, 各层神经元的传递函数1).人工初始化 如下例例1.有一个三输入两层神经网络,隐层有两个对数S形神经元,输出层有一个正切S形神经元,用于预测两个一元目标矢量。p=0 0.5 0.2;1 0。2 0.3;输入t=0.5,0。5;理想输出r=3;s1=2;s2=1;%输入层、隐层、输出层的神经元个数w1=rands(s1,r);输入层到隐层的连接强度b1=rands(s1,1); 隐层的阈值w2=rands(s2,s1); 隐层到输出层的连接强度

6、b2=rands(s2,1);输出层的阈值lr=1;%学习速率for epoch=1:40 训练网络40次 a1=logsig(w1p,b1);%隐层的输出 a2=tansig(w2*a1,b2);输出层的输出 e=t-a2;与理想输出的误差 d2=deltatan(a2,e);输出层的值 d1=deltalog(a1,d2,w2);%隐层的值 dw1,db1=learnbp(p,d1,lr);%进行学习,获取隐层连接强度、阈值的调整值 w1=w1+dw1;调整隐层的连接强度 b1=b1+db1;调整隐层的阈值 dw2,db2=learnbp(a1,d2,lr);进行学习,获取输出层连接强度、

7、阈值的调整值 w2=w2+dw2;调整输出层的连接强度 b2=b2+db2;%调整输出层阈值end;a1=logsig(w1p,b1);%学习后,对网络进行验证a2=tansig(w2a1,b2)2)调用系统提供的函数 格式:w1,b1,w2,b2=initff(p,s1,f1,s2,f2) w1,b1,w2,b2=initff(p,s1,f1,t,f2) 功能:至多三层的BP网络初始化,得到每层的权值和阈值。 说明:1)P为输入向量,P中每一行必须包含网络期望输入的最大值和最小值,这样才能合理地初始化连接强度与阈值。2)T为理想输出向量3)S1为隐层的神经元数,S2为输出层的神经元数,可用理

8、想输出向量T代替S2,此时S2T向量的行数4)F1为隐层传递函数名,F2为输出层传递函数名例2 例2 应用两层BP网络进行函数逼近,其中隐层神经元个数设为5个clf reset;figure(gcf)colordef(gcf,none)setfsize(500,200);echo onclc%INITFF Initializes a feedforware network.%TRAINBP Trains a feed-forward network with backpropagation。 SIMUFF Simulates a feed-forward network。% FUNCTION

9、APPROXIMATION WITH TANSIG/PURELIN NETWORK:Using the above functions twolayer network is trained%to respond to specific inputs with target outputs.% DEFINING A VECTOR ASSOCATION PROBLEM =P defines twentyone 1element input vectors (column vectors):P = -1:。1:1;% T defines the associated 1-element targe

10、ts (column vectors):T=。9602 。5770 。0729 。3771 。6405 .6600 。4609 。. .1336 -.2013 -。4344 .5000 -.3930 。1647 .0988 .。 。3072 .3960 .3449 。1816 .0312 。2189 -。3201; PLOTTING THE DATA POINTS =% Here the data points are plotted:plot(P,T,+);title(Training Vectors);xlabel(Input Vector P);ylabel(Target Vector

11、T); The function the neural network learns must pass through% these data points。pause % Strike any key to design the network.clc% DESIGN THE NETWORK =% A two-layer TANSIG/PURELIN network will be trained.%The number of hidden TANSIG neurons should reflect the complexity of the problem.S1 = 5;INITFF i

12、s used to initialize the weights and biases forthe TANSIG/PURELIN network.w1,b1,w2,b2 = initff(P,S1,tansig,T,purelin);echo off% TRAINING THE NETWORK% =TRAINBP uses backpropagation to train feedforward networks.df = 10; Frequency of progress displays (in epochs)。me = 8000; % Maximum number of epochs

13、to train.eg = 0。02; Sum-squared error goal.lr = 0.01; Learning rate.tp = df me eg lr;Training begins.。please wait (this takes a while!)。.w1,b1,w2,b2,ep,tr=trainbp(w1,b1,tansig,w2,b2,purelin,P,T,tp); .。and finally finishes.TRAINBP has returned new weight and bias values, the number of epochs trained EP, and a record of training errors TR.pause % Strike any key to see a plot of errors.。clc% PLOTTING THE ERROR CURVE =%Here the errors are plotted with respect to training epochs:ploterr(tr,eg);pause % Strike any key to use the

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 工学

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号