前文讨论了神经网络是如何计算output的,也就是forward propagation。本文开始讨论如何计算神经网络的gradient descent,也就是backpropagation

计算神经网络的gradient descent

还是考虑两层的神经网络,如下图:

Fig.1 a two layers neural network
Fig.1 a two layers neural network

考虑这个神经网络的cost function,有

令input的数目为,第1层的node数目为,第二层的node数目为,matrix的size有:

需要考虑m个samples,

使用gradient descent方法,不断迭代以接近cost function的极小值,并得到相应的

也就是求cost function对的偏导数,即:

如下图的computational graph:

Fig.2 compuational graph of the two layers neural network
Fig.2 compuational graph of the two layers neural network

gradient descent for output layer

首先考虑output layer,由于output layer只有一个node,所以这里的计算方法和前文计算logistic regression的gradiant descent算法1是一致的。

2有:

:

:

综合(1)(2)(3):

有:

有:

有:

gradient descent for hidden layer

然后考虑hidden layer,即要求

:

其中是element-wise product,而是选择的activation function3

:

有: