在神经网络算法中,可以把复杂的网络结构看作一个复合函数。即用一个函数表征输入与输出之间的关系。误差的反向传递,提供了确定这个函数的方法。这里的误差,指的就是梯度。所以,BP算法就是根据复合函数求导的链式法则一步步求得。
计算图
为了更直观的理解这个函数,我们用 m=a+b 、n=c+d 显然,
f=mn
本例中前向传播的过程中,f=4.5,
a若增加0.001,则m增加0.001,则f增加0.001n。使用链式法则可以求得对a\b\c\d的偏导数。
矩阵求导
前馈神经网络嵌入层中,每一层要学习的参数都是一个矩阵。如前一层的神经元个数为n1,本层神经元个数为n2。不计偏置的话,本层的要学习的参数是一个n2*n1的矩阵。此时就涉及到了矩阵求导。其实矩阵求导的实质还是多元函数,只不过把结果写成了矩阵的形式。从原理上讲,完全可以逐元素求导。