反向传播算法

反向传播英语:Backpropagation,缩写为BP)是“误差反向传播”的简称,是一种与 最优化方法(如 梯度下降法)结合使用的,用来训练 人工神经网络的常见方法。该方法计算对网络中所有权重计算 损失函数英语 loss function的梯度。这个梯度会反馈给最优化方法,用来更新权值以最小化损失函数。

反向传播要求有对每个输入值想得到的已知输出,来计算损失函数梯度。因此,它通常被认为是一种 監督式學習方法,虽然它也用在一些 无监督网络(如 自动编码器英语 autoencoder)中。它是多层 前馈网络 Delta规则英语 delta rule的推广,可以用 链式法则对每层迭代计算梯度。反向传播要求 人工神经元英语 artificial neuron(或“节点”)的 激励函数 可微

动机

任何 监督式学习算法的目标是找到一个能把一组输入最好的映射到其正确的输出的函数。例如一个简单的 分类任务,其中输入是动物的图像,正确的输出将是动物的名称。一些输入和输出模式可以很容易地通过单层神经网络(如 感知器)学习。但是这些单层的感知机不能学习一些比较简单的模式,例如那些非 线性可分的英语 linearly separable模式。例如,人可以通过识别动物的图像的某些特征进行分类,例如肢的数目,皮肤的纹理(无论是毛皮,羽毛,鳞片等),该动物的体型,以及种种其他特征。但是,单层神经网络必须仅仅使用图像中的像素的强度来学习一个输出一个标签函数。因为它被限制为仅具有一个层,所以没有办法从输入中学习到任何抽象特征。多层的网络克服了这一限制,因为它可以创建内部表示,并在每一层学习不同的特征。 [1] 第一层可能负责从图像的单个像素的输入学习线条的走向。第二层可能就会结合第一层所学并学习识别简单形状(如圆形)。每升高一层就学习越来越多的抽象特征,如上文提到的用来图像分类。每一层都是从它下方的层中找到模式,就是这种能力创建了独立于为多层网络提供能量的外界输入的内部表达形式。 反向传播算法的发展的目标和动机是找到一种训练的多层神经网络的方法,于是它可以学习合适的内部表达来让它学习任意的输入到输出的映射。 [1]