BP算法

简介BP算法
BP算法是由学习过程由信号的正向传播与误差的反向传播两个过程组成。由于多层前馈网络的训练经常采用误差反向传播算法,人们也常把将多层前馈网络直接称为BP网络。
BP算法涉及的知识点
运行过程
正向传播时,输入样本从输入层进入网络,经隐层逐层传递至输出层,如果输出层的实际输出与期望输出(导师信号)不同,则转至误差反向传播;如果输出层的实际输出与期望输出(导师信号)相同,结束学习算法。
反向传播时,将输出误差(期望输出与实际输出之差)按原通路反传计算,通过隐层反向,直至输入层,在反传过程中将误差分摊给各层的各个单元,获得各层各单元的误差信号,并将其作为修正各单元权值的根据。这一计算过程使用梯度下降法完成,在不停地调整各层神经元的权值和阈(yù)值后,使误差信号减小到最低限度。

神经网络训练,就是调节权值和阈值的过程。
权值指加权平均数中的每个数的频数,也称为权数或权重。
阈值又叫临界值,是指一个效应能够产生的最低值或最高值。
其余有关神经网络知识点可以在下面链接找到
关于梯度下降法将在下面链接介绍
编程实现过程流程
1初始化,用小的随机数给各权值和阈值赋初值。注意不能使网络中各初始权值和阈值完全相等(否则网络不可能从这样的结构运行到一种非等权值结构。)
2读取网络参数和训练样本集。
3归一化处理。
4对训练集中每一样本进行计算。
①前向计算隐层、输出层各神经元的输出。
②计算期望输出与网络输出的误差。
③反向计算修正网络权值和阈值。
5若满足精度要求或其他退出条件,则结束训练,否则转步骤4继续。
6结果分析与输出。
BP网络特点总结
非线性的映射能力。
可以存储大量的输入输出模式映射关系 ,而无需给出给出具体的映射方程,
泛化能力
当向网络输入训练时未曾见过的非样本数据时,网络也能完成由输入空间到输出空间的正确映射,这种能力称为多层感知器的泛化能力
容错能力
允许输入样本中带有较大误差甚至个别错误
缺点
1.耗时大
2.容易“遗忘”旧样本,新样本的调整使得就样本被“遗忘”。
3.无法保证全局最优解,BP算法可以使网络权值收敛到一个最终解,但它并不能保证所求为误差超平面的全局最优解,也可能是一个局部极小值。梯度下降法导致。
网友评论