BP 神经网络实验报告一、实验目的1、 熟悉 MATLAB 中神经网络工具箱的使用方法;2、 通过在 MATLAB 下面编程实现 BP 网络逼近标准正弦函数,来加深对 BP 网络的了解和认识,理解信号的正向传播和误差的反向传递过程。 二、实验原理由于传统的感知器和线性神经网络有自身无法克服的缺陷,它们都不能解决线性不可分问题,因此在实际应用过程中受到了限制。而 BP 网络却拥有良好的繁泛化能力、容错能力以及非线性映射能力。因此成为应用最为广泛的一种神经网络。BP 算法的基本思想是把学习过程分为两个阶段:第一阶段是信号的正向传播过程;输入信息通过输入层、隐层逐层处理并计算每个单元的实际输出值;第二阶段是误差的反向传递过程 ;若在输入层未能得到期望的输出值,则逐层递归的计算实际输出和期望输出的差值(即误差),以便根据此差值调节权值。这种过程不断迭代,最后使得信号误差达到允许或规定的范围之内。基于 BP 算法的多层前馈型网络模型的拓扑结构如上图所示。BP 算法的数学描述:三层 BP 前馈网络的数学模型如上图所示。三层前馈网中,输入向量为:;隐层输入向量为 :;输出层输出向量为:;期望输出向量为:。输入层到隐层之间的权值矩阵用V 表示,,其中列向量为隐层第 j 个神经元对应的权向量;隐层到输出层之间的权值矩阵用 W 表示,,其中列向量为输出层第 k 个神经元对应的权向量。下面分析各层信号之间的数学关系.对于输出层,有对于隐层,有以上两式中,转移函数 f(x)均为单极性 Sigmoid 函数:f(x)具有连续、可导的特点,且有以上共同构成了三层前馈网了的数学模型。当网络输出和期望输出不相等时,存在输出误差 E 如下:将以上误差定义式展开至隐层,有进一步展开至输入层,有由上式可以看出,网络输入误差是两层权值 W 和 V 的函数,因此调整权值可以改变误差 E。显然,调整权值的原则是使误差不断的减小,因此应使权值的调整量与误差的负梯度成正比,即:式中负号表示梯度下降,常数表示比例系数,在训练中反映了学习速率。容易看出,BP 学习算法中,各层权值调整公式形式上都是一样的,均有 3 个因素决定,即:学习速率、本层误差信号和本层输入信号 X/Y。其中输出层误差信号同网络的期望输出与实际输出之差有关,直接反映了输出误差,而各隐层的误差信号与前面各层的误差信号都有关,是从输出层开始逐层反传过来的.三、程序clcclear allk=1;n=10;P=[-1:0。05:1];T=sin(k...