BP算法学习过程及软件实现
BP算法学习过程 BP算法最早由Werbos于1974年提出,1985年Rumelhart等人发展了该理论。BP网络采用有指导的学习方式,其学习包括以下4个过程。 网络状态初始化 (1)组成输入模式由输入层经过隐含层向输出层的“模式顺传播”过程。(前向计算过程) (2)网络的期望输出与实际输出之差的误差信号由输出层经过隐含层逐层休整连接权的“误差逆传播”过程。(逆向计算过程) (3)由“模式顺传播”与“误差逆传播”的反复进行的网络“记忆训练”过程。 (4)网络趋向收敛即网络的总体误差趋向极小值的“学习收敛”过程。 在训练阶段中,训练实例重复通过网络,同时修正各个权值,改变连接权值的目的是最小化训练集误差率。继续网络训练直到满足一个特定条件为止,终止条件可以使网络收敛到最小的误差总数,可以是一个特定的时间标准,也可以是最大重复次数。 BP算法软件实现 用C语言实现的BP算法步骤如下: 1)初始化,用小的随机数给各权值和阈值赋初值。注意不能使网络中各初始权值和阈值完全相等,否则网络不可能从这样的结构运行到一种非等权值结构。 2)读取网络参数和训练样本集。 3)归一化处理。 4)对训练集中每一样本进行计算。 ①前向计算隐层、输出层各神经元的输出。 ②计算期望输出与网络输出的误差。 ③反向计算修正网络权值和阈值。 5)若满足精度要求或其他退出条件,则结束训练,否则转步骤4)继续。 6