back-propagation(反向传播)算法是神经网络算法中优化参数的一种经常使用的算法,它创建在Gradient Descent算法的基础上。算法
对一个神经网络算法:网络
咱们定义L表明神经网络算法的层数,表明第j层第i个节点的激励,
表明将函数从第j层映射到第j+1层的参数矩阵,定义
,使其知足
。机器学习
在Andrew Ng的机器学习视频中,使用Gradient Descent优化参数通常步骤是:函数
最后根据,按照梯度降低算法求解参数。学习
看到这里,咱们也许会对二、3步产生疑问,二、3步时如何产生的?下面咱们就来推导反向传播算法:
首先忽略正则部分,这部分对反向传播算法没有影响。为了看起来简洁明了,咱们假设训练集只有一个样本,将cost function重写为:
优化
当l=L-1时,运用链式法则,求cost function的偏导数:spa
令,不难发现
3d
令l=L-2,求cost function的偏导数:视频
令,有
blog
这里有个须要注意的地方:使用链式法则求J(theta)对
求偏导的时候,不要忘记求和符号,由于输出层的每个节点都是的函数。
按照上面的步骤依次类推下去,咱们发现后面的每个偏导数,均可以写成
综上所述,咱们即可得知上面的四个步骤是如何得来的。