BP算法
BP算法是由学习过程由信号的正向传播与误差的反向传播两个过程组成。由于多层前馈网络的训练经常采用误差反向传播算法,人们也常把将多层前馈网络直接称为BP网络。
基本信息
- 中文名
BP算法
- 外文名
Error Back Propagation
- 提出时间
1974
- 创始人
Werbos
- 特点
训练学习
- 所属学科
自动化
原理
BP算法由信号的正向传播和误差的反向传播两个过程组成。
正向传播时,输入样本从输入层进入网络,经隐层逐层传递至输出层,如果输出层的实际输出与期望输出(导师信号)不同,则转至误差反向传播;如果输出层的实际输出与期望输出(导师信号)相同,结束学习算法。
反向传播时,将输出误差(期望输出与实际输出之差)按原通路反传计算,通过隐层反向,直至输入层,在反传过程中将误差分摊给各层的各个单元,获得各层各单元的误差信号,并将其作为修正各单元权值的根据。这一计算过程使用梯度下降法完成,在不停地调整各层神经元的权值和阈值后,使误差信号减小到最低限度。
权值和阈值不断调整的过程,就是网络的学习与训练过程,经过信号正向传播与误差反向传播,权值和阈值的调整反复进行,一直进行到预先设定的学习训练次数,或输出误差减小到允许的程度。1
基本思想
BP算法的基本思想是,学习过程由信号的正向传播与误差的反向传播两个过程组成。正向传播时,输入样本从输入层传入,经各隐层逐层处理后,传向输出层。若输出层的实际输出与期望的输出(教师信号)不符,则转入误差的反向传播阶段。误差反传是将输出误差以某种形式通过隐层向输入层逐层反传,并将误差分摊给各层的所有单元,从而获得各层单元的误差信号,此误差信号即作为修正各单元权值的依据。这种信号正向传播与误差反向传播的各层权值调整过程,是周而复始地进行的。权值不断调整的过程,也就是网络的学习训练过程。此过程一直进行到网络输出的误差减少到可接受的程度,或进行到预先设定的学习次数为止。
学习过程
BP算法最早由Werbos于1974年提出,1985年Rumelhart等人发展了该理论。BP网络采用有指导的学习方式,其学习包括以下4个过程。
(1)组成输入模式由输入层经过隐含层向输出层的“模式顺传播”过程。
(2)网络的期望输出与实际输出之差的误差信号由输出层经过隐含层逐层休整连接权的“误差逆传播”过程。
(3)由“模式顺传播”与“误差逆传播”的反复进行的网络“记忆训练”过程。
(4)网络趋向收敛即网络的总体误差趋向极小值的“学习收敛”过程。
在训练阶段中,训练实例重复通过网络,同时修正各个权值,改变连接权值的目的是最小化训练集误差率。继续网络训练直到满足一个特定条件为止,终止条件可以使网络收敛到最小的误差总数,可以是一个特定的时间标准,也可以是最大重复次数。2
软件实现
用C语言实现的BP算法步骤如下:
1)初始化,用小的随机数给各权值和阈值赋初值。注意不能使网络中各初始权值和阈值完全相等,否则网络不可能从这样的结构运行到一种非等权值结构。
2)读取网络参数和训练样本集。
3)归一化处理。