机器学习笔记:反向传播BP算法的理解

背景

back-propagation(反向传播)算法是神经网络算法中优化参数的一种经常使用的算法,它创建在Gradient Descent算法的基础上。算法

对一个神经网络算法:
clipboard.png网络

咱们定义L表明神经网络算法的层数,clipboard.png表明第j层第i个节点的激励,clipboard.png表明将函数从第j层映射到第j+1层的参数矩阵,定义clipboard.png,使其知足clipboard.png机器学习

在Andrew Ng的机器学习视频中,使用Gradient Descent优化参数通常步骤是:函数

  1. 求出cost function。
    clipboard.png
  2. 求出每一个节点的误差。
    clipboard.png
  3. 求出每一个节点的全部样本的带权值的误差之和。
    clipboard.png
  4. 求出cost function的偏导数
    clipboard.png

最后根据clipboard.png,按照梯度降低算法求解参数。学习

推导

看到这里,咱们也许会对二、3步产生疑问,二、3步时如何产生的?下面咱们就来推导反向传播算法:
首先忽略正则部分clipboard.png,这部分对反向传播算法没有影响。为了看起来简洁明了,咱们假设训练集只有一个样本,将cost function重写为:clipboard.png优化

当l=L-1时,运用链式法则,求cost function的偏导数:spa

clipboard.png

clipboard.png,不难发现
clipboard.png3d

令l=L-2,求cost function的偏导数:视频

clipboard.png

clipboard.png,有
clipboard.pngblog

这里有个须要注意的地方:使用链式法则求J(theta)对clipboard.png
求偏导的时候,不要忘记求和符号,由于输出层的每个节点都是clipboard.png的函数。

按照上面的步骤依次类推下去,咱们发现后面的每个偏导数,均可以写成

clipboard.png

综上所述,咱们即可得知上面的四个步骤是如何得来的。