吴恩达深度学习编程作业_吴恩达深度学习 编程作业三 深度神经网络

构建深度神经网络,做图像处理

整个训练的流程图

f694477179baacc16e50281c217ee99c.png
图片源自吴恩达深度学习

e5b4cee66a47f946bfaeea13c418455a.png

(1)参数初始化

两层神经网络,随机初始化w,0初始化b,记住w和b的形状,无论网络如何变化,形状的公式是不变的w[l].shape=(n[l],n[l-1]),b[l].shape=(n[l],1)

859df6529d874d333ed2c1aded01be54.png

1a529eb491bfba79af5f0e24da443455.png

具体公式

ee5bad25fc1ba7cc39bc47d3d6668f79.png

(2)前向传播

在前向传播时,计算z时,可以适当打印w,b的形状,这将有助于查找错误。

9f3950a7ac1b2d361b952b4b8771a4d1.png

前向传播与激活函数sigmoid,relu

a9e86568bf91ad23f3820d72a29e0e70.png

前向传播的组合

fb92dfa7802f0544d27f0964bd2c5182.png

(3)损失函数

计算损失函数时,需要查看Y与AL的形状,需要知道哪些地方使用的是矩阵相乘np.dot,哪些又是对应元素相乘* or np.multiply

65a4349de993d41228eaf058f210bedf.png

(4)反向传播

反向传播利用那6个公式进行书写,其中需要用到前向传播过程中存入缓存的z。

8d248eeb42dcd3971037dbee46f0a5e2.png

81b3d089ab76671d26fe3563ddec4d5e.png

利用上述公式编写程序,此处dZ为随机数输入。

8f897c8b371bfd4a8c45b158de130f9a.png

之前一直没搞懂的dz求解,现在才搞懂,原来就是一个简单的链式法则,公式如下:

eab6fe98025064409da0338e0006c236.png

组合

86404c92e3be4bfe6679990da88d3644.png

完整的反向传播过程:

需要注意反向传播是从最后层开始的,然后倒数第二层等等,每一步的参数不要用错了哦!

e711b1c810fdf26ef77234c0b15ac38a.png

(5)更新参数

利用之前的函数得到的梯度值再加上学习率来更新参数。

81d59d0a1d25cecb62e5c24b1ba3a0c1.png

小结:

整个神经网络,从前到后,再从后到前,从前到后前向传播就是正常的函数计算,线性函数与激活函数互相掺杂使用,最后一层根据需求,分类的会使用sigmoid或softmax,回归的会使用linar,直到最后输出yhat也叫AL,随后计算损失函数cost,并利用求导公式,发现传播,计算每一层的da,dz,dw,db,因为公式是现有的,只需要根据公式把代码写出来好了,其中需要注意的是有些地方是矩阵相乘,而另一些地方只是简单的元素相乘,使用函数时需要分清哦!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值