温故知新——前向传播算法和反向传播算法(BP算法)及其推导

1. 前向传播算法

所谓的前向传播算法就是:将上一层的输出作为下一层的输入,并计算下一层的输出,一直到运算到输出层为止。

温故知新——前向传播算法和反向传播算法(BP算法)及其推导
温故知新——前向传播算法和反向传播算法(BP算法)及其推导
从上面可以看出,使用代数法一个个的表示输出比较复杂,而如果使用矩阵法则比较的简洁。将上面的例子一般化,并写成矩阵乘法的形式,
温故知新——前向传播算法和反向传播算法(BP算法)及其推导
这个表示方法就很简洁、很漂亮,后面我们的讨论都会基于上面的这个矩阵法表示来。所以,应该牢牢记住我们符号的含义,否则在后面推导反向传播公式时会比较懵。

2. 反向传播算法(BP算法)

反向传播(back propagation, BP) 算法是 “误差反向传播” 的简称,也称为backprop,允许来自代价函数的信息通过网络向后流动,以便计算梯度。

反向传播是一种与最优化方法(如梯度下降法)结合使用的,用来训练人工神经网络的常见方法。该方法对网络中所有权重计算损失函数的梯度。这个梯度会反馈给最优化方法,用来更新权值以最小化损失函数。

反向传播这个术语经常被误解为用于多层神经网络的整个学习算法。实际上,反向传播仅指用于计算梯度的方法。而另一种算法,例如随机梯度下降法,才是使用该梯度来进行学习。另外,反向传播还经常被误解为仅适用于多层神经网络,但是原则上它可以计算任何函数的到导数(对于一些函数,正确的响应是报告函数的导数是未定义的)。

简单介绍一下链式法则:

微积分中的链式法则(为了不与概率中的链式法则相混淆)用于计复合函数的导数。反向传播是一种计算链式法则的算法,使用高效的特定运输顺序。

温故知新——前向传播算法和反向传播算法(BP算法)及其推导
推导BP算法 ( get一下重点内容 )

在进行反向传播算法前,我们需要选择一个损失函数,来度量训练样本计算出的输出和真实的训练样本输出之间的损失。我们使用最常见的均方误差(MSE)来作为损失函数

温故知新——前向传播算法和反向传播算法(BP算法)及其推导
温故知新——前向传播算法和反向传播算法(BP算法)及其推导
温故知新——前向传播算法和反向传播算法(BP算法)及其推导
温故知新——前向传播算法和反向传播算法(BP算法)及其推导
温故知新——前向传播算法和反向传播算法(BP算法)及其推导

反向传播算法的过程进行一下总结:

温故知新——前向传播算法和反向传播算法(BP算法)及其推导
温故知新——前向传播算法和反向传播算法(BP算法)及其推导