神经网络与深度学习笔记(番外)反向传播推导

Posted 沧夜2021

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了神经网络与深度学习笔记(番外)反向传播推导相关的知识,希望对你有一定的参考价值。

回顾

我们设 n [ l ] n^{[l]} n[l] 为第 l l l 层的单元数

则它们的维数
w [ l ] , d w : ( n [ l ] , n [ l − 1 ] ) w^{[l]}, dw :(n^{[l]},n^{[l-1]})\\\\ w[l],dw(n[l],n[l1])

b [ l ] , d b : ( n [ l ] , 1 ) b^{[l]}, db :(n^{[l]},1)\\\\ b[l],db(n[l],1)

z [ l ] , a l : ( n [ l ] , 1 ) z^{[l]},a^{l}:(n^{[l]},1)\\\\ z[l],al:(n[l],1)

Z l , A l , d Z , d A : ( n [ l ] , m ) Z^{l},A^{l},dZ,dA:(n^{[l]},m) Zl,Al,dZ,dA:(n[l],m)

反向传播公式为:
d z [ l ] = d a [ l ] ∗ g [ l ] ′ ( z [ l ] ) dz^{[l]} = da^{[l]} * g^{[l]'}(z^{[l]})\\\\ dz[l]=da[l]g[l](z[l])

d w [ l ] = d z [ l ] ∗ a [ l − 1 ] dw^{[l]} = dz^{[l]} * a^{[l-1]}\\\\ dw[l]=dz[l]a[l1]

d b [ l ] = d z [ l ] db^{[l]} = dz^{[l]}\\\\ db[l]=dz[l]

d a [ l − 1 ] = w [ l ] T ∗ d z [ l ] da^{[l-1]} = w^{[l]^{T}}*dz^{[l]} da[l1]=w[l]Tdz[l]

推导

首先我们知道
z [ l ] = w [ l ] ∗ a [ l − 1 ] + b [ l ] z^{[l]} = w^{[l]}*a^{[l-1]} + b^{[l]} z[l]=w[l]a[l1]+b[l]

a [ l ] = g [ l ] ( z [ l ] ) a^{[l]} = g^{[l]}(z^{[l]}) a[l]=g[l](z[l])

ȷ ( a , y ) = − y l o g a − ( 1 − y ) l o g ( 1 − a ) \\jmath(a,y) = - yloga-(1-y)log(1-a)\\\\ ȷ(a,y)=yloga(1y)log(1a)

接下来开始推导过程:

d z [ l ] dz^{[l]} dz[l]的证明

由公式 $\\jmath(a,y) = - yloga-(1-y)log(1-a)\\$ 对 a a a 求导得:
d ȷ ( a [ l ] , y ) d a [ l ] = − y a [ l ] + 1 − y 1 − a [ l ] \\frac{d\\jmath(a^{[l]},y)}{da^{[l]}} = -\\frac{y}{a^{[l]}} + \\frac{1-y}{1-a^{[l]}}\\\\ da[l]dȷ(a[l],y)=a[l]y+1a[l]1y

d ȷ ( a [ l ] , y ) d z [ l ] = d ȷ ( a [ l ] , y ) d a [ l ] ∗ d a [ l ] d z [ l ] \\frac{d\\jmath(a^{[l]},y)}{dz^{[l]}} = \\frac{d\\jmath(a^{[l]},y)}{da^{[l]}}*\\frac{da^{[l]}}{dz^{[l]}} dz[l]dȷ(a[l],y)=da[l]dȷ(a[l],y)dz[l]da[l]


d a [ l ] d z [ l ] = g [ l ] ′ ( z

以上是关于神经网络与深度学习笔记(番外)反向传播推导的主要内容,如果未能解决你的问题,请参考以下文章

《神经网络与深度学习》笔记5-反向传播算法(上)

神经网络与深度学习笔记正向传播与反向传播

学习笔记:深度学习——BP神经网络

神经网络和深度学习笔记 - 第二章 反向传播算法

《Python深度学习》第二章笔记

《Andrew Ng深度学习》笔记2