HyperAI超神经

反向传播 Backpropagation/BP

反向传播的定义

反向传播是「误差反向传播」的简称,是一种与最优化方法结合使用的,用来训练人工神经网络的常见方法,该方法对网络中所有权重计算损失函数的梯度。

这个梯度会反馈给最优化方法,用来更新权值,从而最小化损失函数。

反向传播要求有对每个输入值想得到的已知输出,来计算损失函数梯度。它是多层前馈网络的 Delta 规则的推广,可以用链式法则对每层迭代计算梯度,反向传播要求人工神经元(或「节点」)的激励函数可微。

反向传播的阶段

反向传播算法主要由两个阶段组成:激励传播与权重更新。

第 1 阶段:激励传播

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

(前向传播阶段)将训练输入送入网络以获得激励响应;

(反向传播阶段)将激励响应同训练输入对应的目标输出求差,从而获得输出层和隐藏层的响应误差。

第 2 阶段:权重更新

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

将输入激励和响应误差相乘,从而获得权重的梯度;

将这个梯度乘上一个比例并取反后加到权重上。

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

第 1 和第 2 阶段可以反复循环迭代,直到网络对输入的响应达到满意的预定的目标范围为止。

反向传播的限制

结果可能会收敛到极值。如果只有一个极小值,梯度下降的「爬山」策略一定可以起作用;

梯度下降法可以找到局部最小值,而不是全局最小值;

从反向传播学习获得的收敛很慢;

反向传播学习的收敛性不能保证;

反向传播学习不需要输入向量的标准化;然而,标准化可提高性能。