MLP反向传播

简要介绍一下多层感知机(深度神经网络DNN)的反向传播算法推导过程。

backprop

假设:

$a$是神经网络的最终输出

$h$函数是sigmoid函数

注意有:

$z$是隐层部分的加权和,对于全连接fc的第$l$层有

在计算广告点击率预估中我们常使用交叉熵作为损失函数$L$:

中$a$是模型预测输出值,$y$是真实值。对于最后一层(假设当前层定义为$l$层,$l-1$层则为前一个隐藏层,整个网络的最后一层记为$nl$层)某个节点的损失为损失函数对全连接层输出最后一层的输出$z_{j}^{nl}$求偏导:

对于隐藏层的残差$\delta_{i}^{l-1}$:

其中$s_{j}^{l}$是第$l$层的节点的神经元个数。

反向传播的关键在于残差$\delta_{i}^{l}$的反向逐层传递,$\delta_{i}^{l}$中$l$表示的是第$l$层网络,$i$表示的是当前节点是该$l$层的第$i$个节点,$\delta_{i}^{l}$表示为该节点的“残差“,由上我们可以由残差的反向传播导出每层每个神经元节点的梯度。