3

背景

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,按照梯度下降算法求解参数。

推导

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

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

clipboard.png

clipboard.png,不难发现
clipboard.png

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

clipboard.png

clipboard.png,有
clipboard.png

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

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

clipboard.png

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


十三
39 声望11 粉丝