BP神经网络实验报告

发布时间:2024-11-28

关于BP神经网络的实验报告

BP神经网络实验报告

一、实验目的

1、 熟悉MATLAB中神经网络工具箱的使用方法;

2、 通过在MATLAB下面编程实现BP网络逼近标准正弦函数,来加深对BP网络的了解和认识,理解信号的正向传播和误差的反向传递过程。

二、实验原理

由于传统的感知器和线性神经网络有自身无法克服的缺陷,它们都不能解决线性不可分问题,因此在实际应用过程中受到了限制。而BP网络却拥有良好的繁泛化能力、容错能力以及非线性映射能力。因此成为应用最为广泛的一种神经网络。

BP算法的基本思想是把学习过程分为两个阶段:第一阶段是信号的正向传播过程;输入信息通过输入层、隐层逐层处理并计算每个单元的实际输出值;第二阶段是误差的反向传递过程;若在输入层未能得到期望的输出值,则逐层递归的计算实际输出和期望输出的差值(即误差),以便根据此差值调节权值。这种过程不断迭代,最后使得信号误差达到允许或规定的范围之内。

基于BP算法的多层前馈型网络模型的拓扑结构如上图所示。

BP算法的数学描述:三层BP前馈网络的数学模型如上图所示。三层前馈网中,输入向

关于BP神经网络的实验报告

量为:X (x1,x2,...,xi,...,xn)T;隐层输入向量为:Y (y1,y2,...,yj,...ym)T;输出层输出向量为:O (o1,o2,...,ok,...ol)T;期望输出向量为:d (d1,d2,...dk,...dl)T。输入层到隐层之间的权值矩阵用V表示,V (v1,v2,...vj,...vm)Y,其中列向量vj为隐层第j个神经元对应的权向量;隐层到输出层之间的权值矩阵用W表示,W (w1,w2,...wk,...wl),其中列向量wk为输出层第k个神经元对应的权向量。

下面分析各层信号之间的数学关系。

对于输出层,有

yj f(netj),j 1,2,...,m

netj vijxi,j 1,2,...,m

对于隐层,有

Ok f(netk),k 1,2,...,l

netk wjkyi,k 1,2,...,l

j 0m

1 1 e x以上两式中,转移函数f(x)均为单极性Sigmoid函数:f(x)

f(x)具有连续、可导的特点,且有f'(x) f(x)[1 f(x)]

以上共同构成了三层前馈网了的数学模型。

当网络输出和期望输出不相等时,存在输出误差E如下:

11m2E (d o) (dk ok)2 22j 0

将以上误差定义式展开至隐层,有

m1l1l2E [dk f(netj)] [dk f( wjkyj)] 2k 12k 1j 02

进一步展开至输入层,有

mnn1l1l2E {dk f[ wjkf(netj)]} {dk f[ wjkf( vijxi)]} 2k 12k 1j 0i 0i 02

由上式可以看出,网络输入误差是两层权值W和V的函数,因此调整权值可以改变误差E。

显然,调整权值的原则是使误差不断的减小,因此应使权值的调整量与误差的负梯度成

关于BP神经网络的实验报告

正比,即:

wjk

vij E,j 0,1,2,...m;k 1,2,...,l wjk E,i 0,1,2,...,n;j 1,2,...,m vij

式中负号表示梯度下降,常数 (0,1)表示比例系数,在训练中反映了学习速率。

容易看出,BP学习算法中,各层权值调整公式形式上都是一样的,均有3个因素决定,即:学习速率、本层误差信号和本层输入信号X/Y。其中输出层误差信号同网络的期望输出与实际输出之差有关,直接反映了输出误差,而各隐层的误差信号与前面各层的误差信号都有关,是从输出层开始逐层反传过来的。

三、程序

clc

clear all

k=1;

n=10;

P=[-1:0.05:1];

T=sin(k*pi*P);

plot(P,T,'-');

title('要逼近的非线性函数');

xlabel('输入向量');

ylabel('非线性函数目标输出向量');

net=newff(minmax(P),[n,1],{'tansig','purelin'},'trainlm');

y1=sim(net,P);

net.trainParam.epochs=50;

net.trainParam.goal=0.01;

net=train(net,P,T);

y2=sim(net,P);

figure;

plot(P,T,'-',P,y1,'--',P,y2,'*');

title('训练前后的网络仿真结果对比');

xlabel('输入向量');

ylabel('输出向量');

legend('目标函数输出向量','未训练BP网络输出','已训练BP网络输出');

仿真结果如下图:

关于BP神经网络的实验报告

关于BP神经网络的实验报告

由仿真结果图可以看出,未经训练的BP网络输出与目标函数差距很大,逼近效果不理想,而对BP网络训练之后的输出可以较精确的逼近目标函数,并且BP网络的训练迭代次数仅约

1.2次,网络的输出目标误差就达到了精度要求,收敛速度很快。函数逼近效果、网络训练的收敛速度与原始非线性函数的频率、BP网络隐含层单元神经元的数目以及BP网络训练函数有关。

四、实验结论

通过编程实现使用BP网络对函数进行逼近,对BP网络的信号和误差传递的原理以及隐层、输出层权值调整的规则有了充分的理解和认识。

BP网络是一个强大的工具,它是应用最为广泛的网络。用于文字识别、模式分类、文字到声音的转换、图像压缩、决策支持等。

但是,通过实验看出,它还是存在一定的不足。由于本实验中采用的学习率是固定不变的,从而使得在函数逼近的时候在有些地方出现了偏离,如果能自适应的调整学习率,使网络在学习初期具有较大的学习率,以快速逼近函数,当已经逼近理想输出时再使用较小的学习率,来更加精准的去逼近函数,这样会得到更好的逼近效果和更小的错误率。

另外,BP网络还具有收敛速度慢、容易陷入局部极小值的问题。这些问题通过对标准BP算法的改进能得到一定程度的解决。

BP神经网络实验报告.doc 将本文的Word文档下载到电脑

    精彩图片

    热门精选

    大家正在看

    × 游客快捷下载通道(下载后可以自由复制和排版)

    限时特价:7 元/份 原价:20元

    支付方式:

    开通VIP包月会员 特价:29元/月

    注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
    微信:fanwen365 QQ:370150219