2022年BP神经网络实验Matlab .pdf
计算智能实验报告实验名称:BP神经网络算法实验班级名称:2010 级软工三班专业:软件工程姓名:李 XX 学号:XXXXXX2010090 名师资料总结-精品资料欢迎下载-名师精心整理-第 1 页,共 8 页 -一、实验目的1)编程实现 BP神经网络算法;2)探究 BP 算法中学习因子算法收敛趋势、收敛速度之间的关系;3)修改训练后BP 神经网络部分连接权值,分析连接权值修改前和修改后对相同测试样本测试结果,理解神经网络分布存储等特点。二、实验要求按照下面的要求操作,然后分析不同操作后网络输出结果。1)可修改学习因子2)可任意指定隐单元层数3)可任意指定输入层、隐含层、输出层的单元数4)可指定最大允许误差 5)可输入学习样本(增加样本)6)可存储训练后的网络各神经元之间的连接权值矩阵;7)修改训练后的 BP 神经网络部分连接权值,分析连接权值修改前和修改后对相同测试样本测试结果。三、实验原理1 明确 BP 神经网络算法的基本思想如下:在 BPNN 中,后向传播是一种学习算法,体现为BPNN 的训练过程,该过程是需要教师指导的;前馈型网络是一种结构,体现为BPNN 的网络构架反向传播算法通过迭代处理的方式,不断地调整连接神经元的网络权重,使得最终输出结果和预期结果的误差最小BPNN 是一种典型的神经网络,广泛应用于各种分类系统,它也包括了训练和使用两个阶段。由于训练阶段是BPNN 能够投入使用的基础和前提,而使用阶段本身是一个非常简单的过程,也就是给出输入,BPNN 会根据已经训练好的参数进行运算,得到输出结果2 明确 BP 神经网络算法步骤和流程如下:1 初始化网络权值2 由给定的输入输出模式对计算隐层、输出层各单元输出3 计算新的连接权及阀值,4 选取下一个输入模式对返回第2 步反复训练直到网络设输出误差达到要求结束训练。名师资料总结-精品资料欢迎下载-名师精心整理-第 2 页,共 8 页 -四、实验内容和分析1实验时建立三层 BP神经网络,输入节点 2 个,隐含层节点 2 个,输出节点 1 个,输入训练样本如下表:输入值输出0.0 0.0 0.0 0.0 1.0 1.0 1.0 0.0 1.0 1.0 1.0 0.0 学习因子分别为 0.5 和 0.6,最大允许误差 0.01。代码:P=0.0 0.0 1.0 1.0;0.0 1.0 0.0 1.0;%输入量矩阵 T=0.0 1.0 1.0 0.0;%输出量矩阵net=newff(minmax(P),T,2 1,tansig,purelin,traingd);%创建名为 net 的 BP神经网络inputWeights=net.IW1,1;%输入层与隐含层的连接权重 inputbias=net.b2;%输入层与隐含层的阈值net.trainParam.epochs=5000;%网络参数:最大训练次数为5000 次net.trainParam.goal=0.01;%网络参数:训练精度为0.001 net.trainparam.lr=0.5;%网络参数:学习设置率为0.5 net.trainParam.mc=0.6;%动量net.trainparam.show=100%网络参数:设置为每5 次学习显示误差曲线点名师资料总结-精品资料欢迎下载-名师精心整理-第 3 页,共 8 页 -net,tr=train(net,P,T);%训练A=sim(net,P);%仿真E=T-A;%误差MSE=mse(E);%均方误差名师资料总结-精品资料欢迎下载-名师精心整理-第 4 页,共 8 页 -训练结果:训练次数 5000,全局误差 0.008364 2输入测试样本为输入层与隐含层连接权值为隐含层与输出层连接权值为隐含层神经元阈值为输出层神经元阈值为名师资料总结-精品资料欢迎下载-名师精心整理-第 5 页,共 8 页 -可见网络性能良好,输出结果基本满足识别要求。3改变学习因子学习因子决定每一次循环训练中所产生的权值变化量。大的学习因子可能导致系统的不稳定;但小的学习因子导致较长的训练时间,可能收敛很慢,不过能保证网络的误差值不跳出误差表面的低谷而最终趋于误差最小值。所以一般情况下倾向于选取较小的学习速率以保证系统的稳定性。名师资料总结-精品资料欢迎下载-名师精心整理-第 6 页,共 8 页 -4改变输入层、隐含层、输出层的单元数当隐含层节点个数为3 时,相同训练样本和测试样本,得到测试结果为net=newff(minmax(P),T,3 1,tansig,purelin,traingd);%创建名为 net 的 BP神经网络训练次数 5000,全局误差 0.004126 可见,改变输入层、隐含层、输出层的单元数,即改变网络结构,可以改善网络性能,增加隐含层节点个数可以更好的提取模式特征,识别结果更精确,但网络复杂度增加,可能不稳定。5最大允许误差 控制网络识别精度。选取较大值学习速度加快,但精度降低;选取较小值,学习速度变慢,精度名师资料总结-精品资料欢迎下载-名师精心整理-第 7 页,共 8 页 -提高,但可能导致网络无法收敛到允许的误差范围。net.trainParam.lr=0.05;6增加学习样本在基本实验的基础上,增加一个学习样本0.1 1.0 1.0 后,训练次数变增加为 18982,全局误差为 0.0099993,相同测试样本,测试结果为在基本实验的基础上,增加一个学习样本0.1 1.0 1.0 后,训练次数变增加为 20000,全局误差为 0.12568,相同测试样本,测试结果为网络学习速度降低,识别精度大大提高。另外,改变学习样本个数,将改变原有训练结果。7改变部分连接权值网络性能被改变。四、实验小结通过这次实验,我对BP 神经网络有了更为重要的理解。明白了BP神经网络算法的基本步骤,会运用Matlab 构建简单的BP 神经网络。同时,了解了BP神经网络各个参数的意义。在实验过程中,通过改变参数的值,调整BP 神经网络的输出结果。名师资料总结-精品资料欢迎下载-名师精心整理-第 8 页,共 8 页 -