您当前的位置:五五电子网电子知识单片机-工控设备DSP/FPGA技术基于LabWindoWs/CV工的AT.神经网络BP算法的实现 正文
基于LabWindoWs/CV工的AT.神经网络BP算法的实现

基于LabWindoWs/CV工的AT.神经网络BP算法的实现

点击数:7234 次   录入时间:03-04 11:46:23   整理:http://www.55dianzi.com   DSP/FPGA技术

1. 引言

神经网络是虚拟仪器设计中用于信号分析与处理的常用算法。他由输入层、隐含层及输出层组成,可以通过对已知样本学习,掌握经验,从而对未知样本做出判别。学习方法中影响最大的是David RumelHART等人提出的误差反向传播(BP)算法。该学习算法由工作信号正向传播和误差信号反向传播2个学习过程组成。在正向传播过程中,输入信号从输入层经隐单元传向输出层,在输出端产生输出信号。同时,将期望的输出和实际输出之间的二次误差沿原来的传递通路反向传播到输入层,并以此调整各层神经元的权值系数,最终使得误差信号最小。BP算法直观简单,容易实现,但是在实际应用中他也存在2个重要问题:收敛速度慢、目标函数存在局部极小点,限制了该方法的进一步运用。

本文在BP算法的基础上,针对传统BP算法收敛速度较慢的缺点,提出了2点改进:首先,选用奇函数作为激励函数;其次,在误差的反向传播项中,采用新的误差传潘因子。在以上两点改进的基础上,本文给出了该算法在LabWindows/CVI环境下的实现方法。

2 神经网络BP算法的改进

设输入层为M,即有M个输入信号,其中的任一输入

2.2 误差信号反向传播过程

(1)隐含层与输出层之间的权值修正量

BP算法中权值的修正量与误差对权值的偏微分成正比,即:
可以看出,f(x)的值与当前输出的误差大小没有关系。一般来说,希望学习速率与系统的输出误差相关,在误差较大钓早期学习过程中,学习算法应采用比较大的学习速率以加快训练的收敛,而在误差较小的后期学习过程中,算法最好采用比较小的学习速率以避免网络的不稳定。f`(x)却不随误差的变化而改变,故不能满足这一要求。于是选择误差能量总和E作为自变量,用f(x)形式的函数来代替f`(x)作为误差传递因子,则可以满足上述要求。新的误差传递因子可以表示为:4 结果讨论

通过对传统BP算法的改进,对比图2,3中的cycle值,可以得出如下结论:采用新算法后,学习的收敛速度较以前有较明显的提高。



本文关键字:网络  DSP/FPGA技术单片机-工控设备 - DSP/FPGA技术