深度学习笔记(十三)搭建深层神经网络块及前向反向传播过程

个人认为这一课非常重要!!! 我们已经掌握了前向传播和反向传播的基础知识,那么如何搭建一个深层神经网络的框架结构,是至关重要的,只有网络块结构清晰了,我们才真正理解到整个神经网络框架是怎么样实现的。

一、搭建深层神经网络块

以神经网络的第 l l l层为例,分析一下前向传播、反向传播的输入及输出元素。
在这里插入图片描述

  • 参数: w [ l ] , b [ l ] w^{[l]},b^{[l]} w[l],b[l]
  • 前向:输入 a [ l − 1 ] a^{[l-1]} a[l1],输出 a [ l ] a^{[l]} a[l]
    z [ l ] = w [ l ] a [ l − 1 ] + b [ l ] , c a c h e ( 缓 存 ) z [ l ] z^{[l]}=w^{[l]}a^{[l-1]}+b^{[l]},cache(缓存)z^{[l]} z[l]=w[l]a[l1]+b[l],cachez[l]
    a [ l ] = g [ l ] ( z [ l ] ) a^{[l]}=g^{[l]}(z^{[l]}) a[l]=g[l](z[l])
  • 反向:输入 d a [ l ] , c a c h e ( z [ l ] ) da^{[l]},cache(z^{[l]}) da[l],cache(z[l]),输出 d a [ l − 1 ] , d w [ l ] , d b [ l ] da^{[l-1]},dw^{[l]},db^{[l]} da[l1],dw[l],db[l]

为了更清晰地表示出搭建输出网络块的过程,我画了如下一幅正反向传播流程图,在这幅图中标出了各个参数变量以及传播的方向。

  • 方框表示神经网络的每一层中的参数
  • 蓝色箭头表示前向传播
  • 红色箭头表示反向传播
  • 绿色箭头表示前向传播的缓存变量值,方便反向传播计算使用
  • 紫色箭头表示计算出的供参数更新的导数值
    在这里插入图片描述

在如上过程中,实现了一次梯度下降的循环。
值得注意的一点是,将计算出来的 z , w , b z,w,b z,w,b值进行缓存,在编程时会发现缓存非常方便,因为在计算反向传播中的导数时,缓存的数据可以迅速提供,从而快速求得 d w , d b dw,db dw,db

在这样一个复习梳理的过程中,神经网络的架构越来越清晰,对前向传播、反向传播的原理也会理解得越来越到位。

二、前向传播与反向传播

Forwords
在这里插入图片描述
向量化计算式:
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])

Backwards
在这里插入图片描述
用键盘输入这组计算式比较费时,但是我还是把这个过程写一写,列得更清晰一点儿。

d Z [ l ] = A [ l ] ∗ g ′ [ l ] ( z [ l ] ) dZ^{[l]}=A^{[l]}*g'^{[l]}(z^{[l]}) dZ[l]=A[l]g[l](z[l])

d w [ l ] = 1 m d Z [ l ] A [ l − 1 ] T dw^{[l]}=\frac{1}{m} dZ^{[l]} {A^{[l-1]}}^T dw[l]=m1dZ[l]A[l1]T

d b [ l ] = 1 m n p . s u m ( d z [ l ] , a x i s = 1 , k e e p d i m s = T r u e ) db^{[l]}=\frac{1}{m} np.sum(dz^{[l]}, axis=1, keepdims=True) db[l]=m1np.sum(dz[l],axis=1,keepdims=True)

d A [ l − 1 ] = w [ l ] T d Z [ l ] dA^{[l-1]}=w^{[l]T}dZ^{[l]} dA[l1]=w[l]TdZ[l]

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Mr.zwX

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值