反向传播算法

适合于多层神经元网络的算法
反向传播算法(BP,Back-Propagation)是在有导师指导下,适合于多层神经元网络的一种学习算法,它建立在梯度下降法的基础上,[1]是用于多层神经网络训练的著名算法,有理论依据坚实、推导过程严谨、物理概念清楚、通用性强等优点。[2]
反向传播算法,是训练多层感知器最有效的方法之一,其主要思想是从后向前(反向)逐层传播输出层的误差,以间接计算出隐层误差。算法分为两个阶段:第一阶段(正向过程)输入信息从输入层经隐层逐层计算各单元的输出值;第二阶段(反向传播过程)内输出误差逐层向前计算出隐层各单元的误差,并用次误差修正前层权值。[3]
BP网络的输入输出关系实质上是一种映射关系:一个n输入m输出的BP神经网络所完成的功能是从n维欧氏空间向m维欧氏空间中一有限域的连续映射,这一映射具有高度非线性。它的信息处理能力来源于简单非线性函数的多次复合,因此具有很强的函数复现能力。这是BP算法得以应用的基础。[1]
除了深度学习,反向传播算法在其他诸多领域也是一种强大的计算工具,从天气预报到分析数值的稳定性等多个领域都有应用,只是具有不同的名称。实际上,这个算法在不同的领域被反复提出过至少几十次。不考虑具体应用,该方法通常被称为”逆向求导”( reverse- mode differentiation)。[4]

算法简介