符号规定
z l z^l zl:第 l l l层卷积后,激活前的结果
a l a^l al:第 l l l层激活后的结果,一般情况下,也是第 l + 1 l+1 l+1层的输入
卷积层前向传播的公式为:
a l = σ ( z l ) = σ ( a l − 1 ∗ W l + b l ) a^l= \sigma(z^l) = \sigma(a^{l-1}*W^l +b^l) al=σ(zl)=σ(al−1∗Wl+bl)
δ l \delta^l δl:反向传播时,传递到第 l l l层的误差
∂ J ( W , b ) {\partial J(W,b)} ∂J(W,b):损失函数
已知卷积层的 δ l \delta^l δl,推导上一隐藏层的 δ l − 1 \delta^{l-1} δl−1
第 l l l层的误差可以理解为误差对第 l l l层的输出求偏导,第 l l l层的误差和第 l − 1 {l-1} l−1层的误差的递推关系为:
δ l = ∂ J ( W , b ) ∂ z l = ∂ J ( W , b ) ∂ z l + 1 ∂ z l + 1 ∂ z l = δ l + 1 ∂ z l + 1 ∂ z l \delta^{l} = \frac{\partial J(W,b)}{\partial z^l} = \frac{\partial J(W,b)}{\partial z^{l+1}}\frac{\partial z^{l+1}}{\partial z^{l}} = \delta^{l+1}\frac{\partial z^{l+1}}{\partial z^{l}} δl=∂zl∂J(W,b)=∂zl+1∂J(W,b)∂zl∂zl+1=δl+1∂zl∂zl+1
因此要导出 δ l − 1 \delta^{l-1} δl−1和 δ l \delta^l δl的关系,必须要计算 ∂ z l ∂ z l − 1 \frac{\partial z^{l}}{\partial z^{l-1}} ∂zl−1∂zl的梯度表达式。
注意到 z l z^{l} zl 和 z l − 1 z^{l-1} zl−1的关系为:
z l = a l − 1 ∗ W l + b l = σ ( z l − 1 ) ∗ W l + b l z^l = a^{l-1}*W^l +b^l =\sigma(z^{l-1})*W^l +b^l zl=al−1∗Wl+bl=σ(zl−1)∗Wl+bl
若直接进行参数推演过于复杂,取一个简单的例子:
假设第 l − 1 {l-1} l−1层的输出 a l − 1 a^{l-1} al−1是一个3X3矩阵,第 l {l} l层的卷积核 W l W^l Wl是一个2X2的矩阵,采用1像素的步幅,则输出是一个2X2的矩阵,我们简化偏置 b l b^l bl为0,则有:
a l − 1 ∗ W l = z l a^{l-1}*W^l = z^{l} al−1∗Wl=zl
列出a,W,z的矩阵表达式:
( a 11 a 12 a 13 a 21 a 22 a 23 a 31 a 32 a 33 ) ∗ ( w 11 w 12 w 21 w 22 ) = ( z 11 z 12 z 21 z 22 ) \left( \begin{array}{ccc} a_{11}&a_{12}&a_{13} \\ a_{21}&a_{22}&a_{23}\\ a_{31}&a_{32}&a_{33} \end{array} \right) * \left( \begin{array}{ccc} w_{11}&w_{12}\\ w_{21}&w_{22} \end{array} \right) = \left( \begin{array}{ccc} z_{11}&z_{12}\\ z_{21}&z_{22} \end{array} \right) ⎝⎛a11a21a31<