背景
back-propagation(反向传播)算法是神经网络算法中优化参数的一种常用的算法,它建立在Gradient Descent算法的基础上。
对一个神经网络算法:
我们定义L代表神经网络算法的层数,代表第j层第i个节点的激励,代表将函数从第j层映射到第j+1层的参数矩阵,定义,使其满足。
在Andrew Ng的机器学习视频中,使用Gradient Descent优化参数一般步骤是:
- 求出cost function。
- 求出每个节点的偏差。
- 求出每个节点的所有样本的带权值的偏差之和。
- 求出cost function的偏导数
最后根据,按照梯度下降算法求解参数。
推导
看到这里,我们也许会对2、3步产生疑问,2、3步时如何产生的?下面我们就来推导反向传播算法:
首先忽略正则部分,这部分对反向传播算法没有影响。为了看起来简洁明了,我们假设训练集只有一个样本,将cost function重写为:
当l=L-1时,运用链式法则,求cost function的偏导数:
令,不难发现
令l=L-2,求cost function的偏导数:
令,有
这里有个需要注意的地方:使用链式法则求J(theta)对
求偏导的时候,不要忘记求和符号,因为输出层的每一个节点都是的函数。
按照上面的步骤依次类推下去,我们发现后面的每一个偏导数,都可以写成
综上所述,我们便可得知上面的四个步骤是如何得来的。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。