这篇文章清晰地阐释了backpropagation的过程。
backpropagation的精髓就在于chain rule。同时利用神经网络的结构,使得gradient descent的过程就如同反向的神经网络一般。
假设我们有如下一个神经网络
其中
最终的loss function被定义为
gradient descent所做的事情就是不断调整W的取值,使得最终的loss function最小化。
文中提到如果没有hidden layer,那么GD是一件相对容易的事情;但是如果有hidden layer,事情会复杂很多。
我们需要通过计算W的偏导数来更新W的数值,根据chain rule,可以得到第一步的分解式
其中分解的第一个偏导数可以直接从loss function的定义中得到。
至于第二个偏导数我们可以利用chain rule继续分解
这一步中的第一个偏导数是sigmoid function的偏导数可以很简单地计算出来,第二个偏导数我们发现就是
然后递归下去,便可以更新所有W的值。