你是否也有疑问,在神经网络的训练过程中,随着多样本的训练,我们的参数是如何进行调节的呢?
答案自然就是BP算法(Error Back Propagation)。
反向传播时,将输出误差(期望输出与实际输出之差)按原通路反传计算,通过隐层反向,直至输入层,在反传过程中将误差分摊给各层的各个单元,获得各层各单元的误差信号,并将其作为修正各单元权值的根据。这一计算过程使用梯度下降法完成,在不停地调整各层神经元的权值和阈值后,使误差信号减小到最低限度。
BP算法的原理就是目标函数对参数矩阵的偏导可以通过链式求导得出。从而实现了误差的反向转播的效果。
下面是我在研究生课程上学习的BP算法推导,是根据BP算法论文所做的计算。
以下两种分别是神经元 j 作为输出层节点和隐层节点的情况。理解了这两种情况就可以衍生到三层及更多层的神经网络,其中的原理是一样的,正所谓举一反三。
BP就是误差在网络中的反向转播!
总结如下: