目录

  • 1.前向传播
  • 2.反向传播
  • 推导BP算法
  • (1) 输出层的梯度
  • (2) 隐藏层的梯度
  • 3.总结


1.前向传播

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

反向传播的数学推导公式 反向传播推倒_反向传播的数学推导公式


对于Layer 2的输出 a1(2),a2(2),a3(2)

反向传播的数学推导公式 反向传播推倒_反向传播_02

对于Layer 3的输出 a1(3),a2(3)

反向传播的数学推导公式 反向传播推倒_最优化方法_03

从上面可以看出,使用代数法一个个的表示输出比较复杂,而如果使用矩阵法则比较的简洁。将上面的例子一般化,并写成矩阵乘法的形式.

反向传播的数学推导公式 反向传播推倒_反向传播_04

2.反向传播

反向传播算法,简称BP算法,适合于多层神经元网络的一种学习算法,它建立在梯度下降法的基础上。它的信息处理能力来源于简单非线性函数的多次复合,因此具有很强的函数复现能力,这是BP算法得以应用的基础。反向传播是一种与最优化方法(如梯度下降法)结合使用的,用来训练人工神经网络的常见方法。该方法对网络中所有权重计算损失函数的梯度。这个梯度会反馈给最优化方法,用来更新权值以最小化损失函数。

推导BP算法

选择一个损失函数,计算训练样本的输出和真实的输出之间的损失。我们使用最常见的均方误差(MSE)来作为损失函数。如下图

反向传播的数学推导公式 反向传播推倒_最优化方法_05


其中 a(l)为样本的输出,y为真实值。加入系数1/2 是为了与求导后的2抵消。

(1) 输出层的梯度

反向传播的数学推导公式 反向传播推倒_损失函数_06


我们发现有公共的部分,记为

反向传播的数学推导公式 反向传播推倒_反向传播_07

(2) 隐藏层的梯度

因为上面已经求出了输出层的误差,根据误差反向传播的原理,当前层的误差可理解为上一层所有神经元误差的复合函数,即使用上一层的误差来表示当前层误差,并依次递推。

反向传播的数学推导公式 反向传播推倒_反向传播_08


Z(l+1)和Z(l)的关系, 如下图

反向传播的数学推导公式 反向传播推倒_最优化方法_09


可以得出

反向传播的数学推导公式 反向传播推倒_损失函数_10


反向传播的数学推导公式 反向传播推倒_最优化方法_11


由此得到了递推关系式,求解W(l),b(l)的对应梯度

反向传播的数学推导公式 反向传播推倒_最优化方法_12

3.总结

  1. 初始化参数W,b
  2. 进行前向传播算法计算
  3. 反向传播的数学推导公式 反向传播推倒_损失函数_13

  4. 通过损失函数计算输出层的梯度
  5. 进行反向传播算法计算
  6. 反向传播的数学推导公式 反向传播推倒_损失函数_14

  7. 更新W,b
  8. 反向传播的数学推导公式 反向传播推倒_反向传播的数学推导公式_15

  9. 如果所有W,b的变化值都小于停止迭代阈值ϵ,则跳出迭代循环
  10. 输出各隐藏层与输出层的线性关系系数矩阵W和偏置b。

反向传播的数学推导公式 反向传播推倒_最优化方法_16


对于Wij3 , bj3

反向传播的数学推导公式 反向传播推倒_反向传播_17


反向传播的数学推导公式 反向传播推倒_最优化方法_18


对于Wki2 , bi2

反向传播的数学推导公式 反向传播推倒_反向传播的数学推导公式_19