我们首先回顾DNN的反向传播算法。在DNN中,我们是首先计算出输出层的δLδL:
δL=∂J(W,b)∂zL=∂J(W,b)∂aL⊙σ′(zL)
δL=∂J(W,b)∂zL=∂J(W,b)∂aL⊙σ′(zL)
利用数学归纳法,用δl+1δl+1的值一步步的向前求出第l层的δlδl,表达式为:
δl=(∂zl+1∂zl)Tδl+1=(Wl+1)Tδl+1⊙σ′(zl)
δl=(∂zl+1∂zl)Tδl+1=(Wl+1)Tδl+1⊙σ′(zl)
有了δlδl的表达式,从而求出W,bW,b的梯度表达式:
∂J(W,b)∂Wl=δl(al−1)T
∂J(W,b)∂Wl=δl(al−1)T
∂J(W,b,x,y)∂bl==δl
∂J(W,b,x,y)∂bl==δl
有了W,bW,b梯度表达式,就可以用梯度下降法来优化W,bW,b,求出最终的所有W,bW,b的值。
现在我们想把同样的思想用到CNN中,很明显,CNN有些不同的地方,不能直接去套用DNN的反向传播算法的公式。