在神经网络中,当我们的网络层数越来越多时,网络的参数也越来越多,如何对网络进行训练呢?我们需要一种强大的算法,无论网络多复杂,都能够有效的进行训练。在众多的训练算法中,其中最杰出的代表就是BP算法,它是至今最成功的神经网络学习算法。在实际任务中,大部分都是使用的BP算法来进行网络训练的。值得一提的是,BP算法不仅适用于多层前馈网络,对于其他类型的神经网络,例如:训练卷积神经网络和递归神经网络。
由于推导过程太多公式,因而我使用的word的截图。(推导过程参考的是周志华老师的《机器学习》(西瓜书))
通常,标准BP算法和累积BP算法都很常用,标准BP算法每次更新只使用单个样本,因而参数更新的非常频繁,而且更新的效果可能因为不同的样本出现抵消的情况。因此,达到相同的累积误差极小值,标准BP算法可能需要迭代更多的次数。累积BP算法采用整个训练集的误差进行更新,其更新的频率较低,但累积误差下降到一定的程度后,进一步的下降将会非常缓慢,尤其是在训练集很大的时候,这是标准BP算法可能会获得而较好的效果。