神经网络反向传播的推导
对于神经网络的训练过程而言,其反向传播算法是训练过程的核心,神经网络根据预测值与实际值的偏差从后向前来计算损失函数对于各个参数的梯度,从而利用梯度下降的方法来优化训练神经网络的各个参数。
神经网络的计算流程图如下:
神经网络的计算流程图:展示前向传播和反向传播中各参数的梯度计算路径
从该流程图可以看到,如果我们要计算神经网络的参数,首先需要计算和,然后根据链式法则得到。
之后再计算和,同样根据链式法则可以得到以及得到。这样便得到了和。
另外对于和的计算,需要先计算,和,同样根据链式法则可以得到,以及。这样也得到了和。
在使用随机梯度下降(SGD)优化算法以及交叉熵(Cross Entropy)损失函数的时候,我们令,即损失函数:
使用sigmoid激活函数,即
将该激活函数和损失函数代入上面的计算过程,可以得到:
在进行随机梯度下降的过程中,随机选取样本中的一个错误分类点,根据该点计算当前的,然后利用以下公式来更新:
直到收敛为止。
对于神经网络的训练,还有批量梯度下降(Batch Gradient Descent)和小批量梯度下降(Mini-Batch Gradient Descent),带动量的随机梯度下降(Momentum),RMSProp,Adam等方法,后面再做详解。
To be continued…