可见网络性能良好,输出结果基本满足识别要求。 3.改变学习因子
学习因子决定每一次循环训练中所产生的权值变化量。大的学习因子可能导致系统的不稳定;但小的学习因子导致较长的训练时间,可能收敛很慢,不过能保证网络的误差值不跳出误差表面的低谷而最终趋于误差最小值。所以一般情况下倾向于选取较小的学习速率以保证系统的稳定性。
4.改变输入层、隐含层、输出层的单元数
当隐含层节点个数为3时,相同训练样本和测试样本,得到测试结果为 net=newff(minmax(P),T,[3 1],{'tansig','purelin'},'traingd');%创建名为net的BP神经网络
训练次数5000,全局误差0.004126
可见,改变输入层、隐含层、输出层的单元数,即改变网络结构,可以改善网络性能,增加隐含层节点个数可以更好的提取模式特征,识别结果更精确,但网络复杂度增加,可能不稳定。
5.最大允许误差ε控制网络识别精度。
选取较大值学习速度加快,但精度降低;选取较小值,学习速度变慢,精度
提高,但可能导致网络无法收敛到允许的误差范围。
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神经网络的输出结果。