误差反向传播算法(Backpropagation)是目前用来训练人工神经网络(Artificial Neural Network,ANN)的最常用且最有效的算法。其主要思想是:
(1)前向传播:训练及数据经过输入层、隐含层、输出层,计算估计值
(2)反向传播:由于估计值与实际值有偏差,计算估计值与实际值的误差,并将此误差由输出层经过隐含层向输入层传播
(3)更新权重:在反向传播过程中,根据误差参数调整权值,不断迭代上述过程直到收敛。
以3层神经网络为例计算
总结:BP算法也存在一些缺陷,比如:
- 训练时间长
- 可能陷入局部最小值
针对BP算法的这些缺陷,目前也有许多BP算法的改进型,比如Adagrad,Momentum等。总之,BP算法作为神经网络训练最经典的算法,需要我们从来源到结果有一个深入的了解。