吴恩达.深度学习系列-C1神经网络与深度学习-w4-( 作业:建立神经网络)

前言

注意:coursera要求不要在互联网公布自己的作业。如果你在学习这个课程,建议你进入课程系统自行完成作业。我觉得代码有参考和保留的意义。
本周的作业包含两个部分。Building your Deep Neural Network, Deep Neural Network - Application v8。总体来说作业很简单,有时都不用审题跟着向导、代码提示做都能写出来。尤其是Deep Neural Network - Application v8部分。但我觉得第一部分感觉更重要些。从代码层面去实现前向传播与反向传播之间的关系。

Building your Deep Neural Network

这里写图片描述
计算交叉熵cross-entropy cost J J , 如下等式:

(7) 1 m i = 1 m ( y ( i ) log ( a [ L ] ( i ) ) + ( 1 y ( i ) ) log ( 1 a [ L ] ( i ) ) )

交叉熵的导数是反向传播的起点:
Initializing backpropagation:
进行反向传播,我们知道前向传播的输出是 A[L]=σ(Z[L]) A [ L ] = σ ( Z [ L ] ) . 我们必须去计算AL的偏导数, dAL =LA[L] = ∂ L ∂ A [ L ] .
可以推导获得dAL(偏导)得出如下等式 :

dAL = - (np.divide(Y, AL) - np.divide(1 - Y, 1 - AL)) # derivative of cost with respect to AL

激活函数的偏导分两种情况,输出层的sigmoid,与隐藏层的relu。作业中sigmoid与relu前向,反向(偏导)的代码都是系统自己实现的,这里根据我自己的理解补充说明一下。
1)A=sigmoid(Z)
sigmoid’(Z)=sigmoid(Z)(1-sigmoid(Z))
2)A=Relu(Z)
if(Z>=0){
Relu’(Z)=1
else{
Relu’(Z)=0 #Z<0时,导数为0.
}

The three outputs (dW[l],db[l],dA[l

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值