反向传播算法

维基百科,自由的百科全书
跳转至: 导航搜索

反向传播算法(英:Backpropagation algorithm,简称:BP算法)是一种监督学习算法,常被用来训练多层感知机。 于1974年,Paul Werbos[1]首次给出了如何训练一般网络的学习算法,而人工神经网络只是其中的特例。不巧的,在当时整个人工神经网络社群中却无人知晓Paul所提出的学习算法。直到80年代中期,BP算法才重新被David Rumelhart、Geoffrey Hinton及Ronald Williams[2][3]、David Parker[4]和Yann LeCun[5]独立发现,并获得了广泛的注意,引起了人工神经网络领域研究的第二次热潮。

BP算法是Delta规则的推广,要求每个人工神经元(节点)所使用的激励函数必须是可微的。BP算法特别适合用来训练前向神经网络。

算法简介[编辑]

反向传播算法(BP算法)主要由两个环节(激励传播、权重更新)反复循环迭代,直到网络的对输入的响应达到预定的目标范围为止。

激励传播[编辑]

每次迭代中的传播环节包含两步:

  1. (前向传播阶段)将训练输入送入网络以获得激励响应;
  2. (反向传播阶段)将激励响应同训练输入对应的目标输出求差,从而获得隐层和输出层的响应误差。

权重更新[编辑]

对于每个突触上的权重,按照以下步骤进行更新:

  1. 将输入激励和响应误差相乘,从而获得权重的梯度;
  2. 将这个梯度乘上一个比例并取反后加到权重上。

这个比例将会影响到训练过程的速度和效果,因此称为“训练因子”。梯度的方向指明了误差扩大的方向,因此在更新权重的时候需要对其取反,从而减小权重引起的误差。

參考文献[编辑]

  1. ^ Paul J. Werbos. Beyond Regression: New Tools for Prediction and Analysis in the Behavioral Sciences. PhD thesis, Harvard University, 1974
  2. ^ Alpaydın, Ethem. Introduction to machine learning 2nd ed. Cambridge, Mass.: MIT Press. 2010: 250. ISBN 978-0-262-01243-0. "...and hence the name backpropagation was coined (Rumelhart, Hinton, and Williams 1986a)." 
  3. ^ Rumelhart, David E.; Hinton, Geoffrey E., Williams, Ronald J. Learning representations by back-propagating errors. Nature. 8 October 1986, 323 (6088): 533–536. doi:10.1038/323533a0. 
  4. ^ Parker, David. Learning-logic: Casting the cortex of the human brain in silicon. Technical Report TR-47, Center for Computational Research in Economics and Management Science (Cambridge: MIT). 1958. 
  5. ^ LeCun, Yann. Une procedure d'apprentissage pour reseau a seuil assymetrique. Cognitiva. 1958, 85: 599–604. 


外部链接[编辑]