注1:这个误差δ完全是一个人为的定义,求误差δ的目的,是以此为中介,求损失函数对参数w和b的偏导数。我们也可以定义误差为损失函数对神经元输出信号的偏导。
注2:虽然这个误差是一个人为的定义,但是这个思路在机器学习领域一直都有可靠且广泛的应用,例如XGB和LGB的残差也是用了类似的将损失函数对超参数求偏导的方法。
那么,对于神经网络的最后一层(第L层),可以求得整个神经网络的第一组误差:
进行向量化,并记为 公式BP1 :
其中:右式用到了哈达玛积,表示将两个同样结构的矩阵的相同位置上的数值相乘。
这样,我们就求得了最后一层神经网络的误差。
接着,为了能够把误差层层向前传导,我们需要找到两个相邻层误差之间的关系,对于任意两层l层和l-1层的神经网络:
进行向量化,并记为 公式BP2 :