其他分享
首页 > 其他分享> > 神经网络的反向传播公式表达(吴恩达)

神经网络的反向传播公式表达(吴恩达)

作者:互联网

 

首先要明确的是反向传播的目的

神经网络训练的最终目的,是得到可观的模型参数(如ω,b等)训练参数的方式,就是通过反向传播,使用梯度下降法(一般情况下)改变模型参数。

其原理则是通过最优化损失函数(loss function),即使其导数向0靠近,公式表达为dL/dω,而损失函数L是一个复合函数,则其求导过程如图所示

 

 

 

 由链式法则知,dL/dω = dL/da * da/dz * dz/dω  (一切的源头

需要注意的是,上述链式法则实际上部分应该为偏导,但此次为方便理解全部使用导数,其中da/dz为激活函数(即非线性函数)求导,需注意

吴恩达后续的视频中用

dz表达dL/dz

da表达dL/da

dw表达dL/dω

这是为了方便在python中定义变量dzdadw等,需要注意

则由上式可以得出

dz/dω = X

dz/db = 1

所以最终可以得到

dw = dL/dω = dL/dz * dz/dω = dz*X (或者dz*A)

db = dL/db = dL/dz * dz/db = dz

da[L-1] = ω * dz  (吴恩达视频并没有给出推导过程)

其中dz = dL/da * da/dz   

  对于dL/da:如果在最后一层,dL/da则由前向传播最终值yhat和损失函数得到,如果在中间层,则可以后一层a计算得到。

       对于da/dz:即激活函数的求导   

由以上四个公式,则可计算反向传播如图

 

标签:吴恩达,函数,db,dL,da,神经网络,dz,反向
来源: https://www.cnblogs.com/toriyung/p/16444688.html