DNN反向传播推导过程

DNN反向传播推导简介

如果对DNN前向传播,梯度下降不熟悉,建议先了解一下。

这里假设DNN的损失函数如: J(W,b,x,y)=12||aLy||22 J ( W , b , x , y ) = 1 2 | | a L − y | | 2 2
其中输出层为第L层,输出结果 aL=σ(zL)=σ(WLaL1+bL) a L = σ ( z L ) = σ ( W L a L − 1 + b L ) ,这样损失函数变为:

J(W,b,x,y)=12||σ(WLaL1+bL)y||22 J ( W , b , x , y ) = 1 2 | | σ ( W L a L − 1 + b L ) − y | | 2 2

求解W,b的梯度为:
J(W,b,x,y)WL=J(W,b,x,y)zLzLWL=(aLy)σ(zL)(aL1)T ∂ J ( W , b , x , y ) ∂ W L = ∂ J ( W , b , x , y ) ∂ z L ∂ z L ∂ W L = ( a L − y ) ⊙ σ ′ ( z L ) ( a L − 1 ) T

J(W,b,x,y)bL=J(W,b,x,y)zLzLbL=(aLy)σ(zL) ∂ J ( W , b , x , y ) ∂ b L = ∂ J ( W , b , x , y ) ∂ z L ∂ z L ∂ b L = ( a L − y ) ⊙ σ ′ ( z L )

注意到,求解W,b梯度时有公共部分 J(W,b,x,y)zL ∂ J ( W , b , x , y ) ∂ z L ,因此可以先把这一部分算出来,既损失函数对 zL z L 的导数记为:
δL=J(W,b,x,y)zL=(aLy)σ(zL) δ L = ∂ J ( W , b , x , y ) ∂ z L = ( a L − y ) ⊙ σ ′ ( z L )

现在我们终于把输出层的梯度算出来了,那么如何计算上一层 L1 L − 1 层的梯度,上上层 L2 L − 2 层的梯度呢?这里我们需要一步步的递推,注意到对于第 l l 层的未激活输出zl,它的梯度可以表示为:
δl=J(W,b,x,y)zl=J(W,b,x,y)zLzLzL1zL1zL2zl+1zl δ l = ∂ J ( W , b , x , y ) ∂ z l = ∂ J ( W , b , x , y ) ∂ z L ∂ z L ∂ z L − 1 ∂ z L − 1 ∂ z L − 2 · · · ∂ z l + 1 ∂ z l

如果可以算出来第 l l δl,则该层的 Wl,bl W l , b l 很容易计算,因为根据前向传播有:
zl=Wlal1+bl z l = W l a l − 1 + b l

所以求得 Wl,bl W l , b l 梯度如下:
J(W,b,x,y)Wl=J(W,b,x,y)zlzlWl=δl(al1)T ∂ J ( W , b , x , y ) ∂ W l = ∂ J ( W , b , x , y ) ∂ z l ∂ z l ∂ W l = δ l ( a l − 1 ) T

J(W,b,x,y)bl=J(W,b,x,y)zlzlbl=δl ∂ J ( W , b , x , y ) ∂ b l = ∂ J ( W , b , x , y ) ∂ z l ∂ z l ∂ b l = δ l

所以问题的关键就是求 δl δ l ,我们用数学归纳法,第 L L 层的δL上面我们已经求出,假设第 l+1 l + 1 层的 δl+1 δ l + 1 已经求出来了,那么如何求第 l l 层的δl呢?注意这里:
δl=J(W,b,x,y)zl=J(W,b,x,y)zl+1zl+1zl=δl+1zl+1zl δ l = ∂ J ( W , b , x , y ) ∂ z l = ∂ J ( W , b , x , y ) ∂ z l + 1 ∂ z l + 1 ∂ z l = δ l + 1 ∂ z l + 1 ∂ z l

可见,用归纳法递推 δl+1 δ l + 1 δl δ l 的关键在于如何求解 δl+1δl δ l + 1 δ l
zl+1 z l + 1 zl z l 的关系很容易找出:
zl+1=Wl+1al+bl+1=Wl+1σ(zl)+bl+1 z l + 1 = W l + 1 a l + b l + 1 = W l + 1 σ ( z l ) + b l + 1

可以得出:
zl+1zl=(Wl+1)T(σ(zl),..,σ(zl))nl+1 ∂ z l + 1 ∂ z l = ( W l + 1 ) T ⊙ ( σ ′ ( z l ) , . . , σ ′ ( z l ) ) ⏟ n l + 1

上式的Hadamard乘积表达的意义是 权值矩阵的每一个列向量都点乘 σ(zl) σ ′ ( z l )

将上式带入上面 δl δ l δl+1 δ l + 1 的关系我们得出:

δl=δl+1zl+1zl=(Wl+1)Tδl+1σ(zl) δ l = δ l + 1 ∂ z l + 1 ∂ z l = ( W l + 1 ) T δ l + 1 ⊙ σ ′ ( z l )

得到了 δl δ l 的递推关系,只要求出某一层的 δl δ l ,求解 Wl,bl W l , b l 对应的梯度就很简单了。

参考资料:
http://www.cnblogs.com/pinard/p/6422831.html

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值