DeepLearning.ai笔记:(1-4)-- 深层神经网络(Deep neural networks)


title: ‘DeepLearning.ai笔记:(1-4)-- 深层神经网络(Deep neural networks)’
id: 2018091316
tags:

  • dl.ai
    categories:
  • AI
  • Deep Learning
    date: 2018-09-13 16:54:18

首发于个人博客:fangzh.top,欢迎来访
这一周主要讲了深层的神经网络搭建。

深层神经网络的符号表示

在深层的神经网络中,

  • L L L表示神经网络的层数 L = 4 L = 4 L=4
  • n [ l ] n^{[l]} n[l]表示第 l l l层的神经网络个数
  • W [ l ] : ( n [ l ] , n l − 1 ) W^{[l]}: (n^{[l]},n^{l-1}) W[l]:(n[l],nl1)
  • d W [ l ] : ( n [ l ] , n l − 1 ) dW^{[l]}: (n^{[l]},n^{l-1}) dW[l]:(n[l],nl1)
  • b [ l ] : ( n [ l ] , 1 ) b^{[l]}: (n^{[l]},1) b[l]:(n[l],1)
  • d b [ l ] : ( n [ l ] , 1 ) db^{[l]}: (n^{[l]},1) db[l]:(n[l],1)
  • z [ l ] : ( n [ l ] , 1 ) z^{[l]}:(n^{[l]},1) z[l]:(n[l],1)
  • a [ l ] : ( n [ l ] , 1 ) a^{[l]}:(n^{[l]},1) a[l]:(n[l],1)

前向传播和反向传播

前向传播

input a [ l − 1 ] a^{[l-1]} a[l1]

output a [ l ] , c a c h e ( z [ l ] ) a^{[l]},cache (z^{[l]}) a[l],cache(z[l]) ,其中cache也顺便把 W [ l ] , b [ l ] W^{[l]}, b^{[l]} W[l],b[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])

维度

假设有m个样本,那么 Z [ l ] Z^{[l]} Z[l] 维度就是 ( n [ l ] , m ) (n^{[l]}, m) (n[l],m) A [ l ] A^{[l]} A[l]的维度和 Z [ l ] Z^{[l]} Z[l]一样。

那么 $ W^{[l]} A^{[l-1]}$维度就是 ( n [ l ] , n l − 1 ) ∗ ( n [ l − 1 ] , m ) (n^{[l]},n^{l-1}) * (n^{[l-1]},m) (n[l],nl1)(n[l1],m) 也就是 ( n [ l ] , m ) (n^{[l]}, m) (n[l],m),这个时候,还需要加上 b [ l ] b^{[l]} b[l],而 b [ l ] b^{[l]} b[l]本身的维度是 ( n [ l ] , 1 ) (n^{[l]},1) (n[l],1),借助python的广播,扩充到了m个维度。

反向传播

input d a [ l ] da^{[l]} da[l]

output d a [ l − 1 ] , d W [ l ] , d b [ l ] da^{[l-1]} , dW^{[l]} , db^{[l]} da[l1],dW[l],db[l]

公式:

向量化:

正向传播和反向传播如图:

具体过程为,第一层和第二层用Relu函数,第三层输出用sigmoid,这个时候的输出值是 a [ 3 ] a^{[3]} a[3]

而首先进行反向传播的时候先求得 d a [ 3 ] = − y a − 1 − y 1 − a da^{[3]} = - \frac{y}{a} - \frac{1-y}{1-a} da[3]=ay1a1y,然后再包括之前存在cache里面的 z [ 3 ] z^{[3]} z[3],反向传播可以得到 d w [ 3 ] , d b [ 3 ] , d a [ 2 ] dw^{[3]}, db^{[3]},da^{[2]} dw[3],db[3],da[2],然后继续反向,直到得到了 d w [ 1 ] , d b [ 1 ] dw^{[1]},db^{[1]} dw[1],db[1]后,更新一下w,b的参数,然后继续做前向传播、反向传播,不断循环。

Why Deep?

如图直观上感觉,比如第一层,它会先识别出一些边缘信息;第二层则将这些边缘进行整合,得到一些五官信息,如眼睛、嘴巴等;到了第三层,就可以将这些信息整合起来,输出一张人脸了。

如果网络层数不够深的话,可以组合的情况就很少,或者需要类似门电路那样,用单层很多个特征才能得到和深层神经网络类似的效果。

搭建深层神经网络块

和之前说的一样,一个网络块中包含了前向传播和反向传播。

前向输入 a [ l − 1 ] a^{[l-1]} a[l1],经过神经网络的计算, g [ l ] ( w [ l ] a [ l − 1 ] + b [ l ] ) g^{[l]}(w^{[l]}a^{[l-1]} + b^{[l]}) g[l](w[l]a[l1]+b[l])得到 a [ l ] a^{[l]} a[l]

反向传播,输入 d a [ l ] da^{[l]} da[l],再有之前在cache的 z [ l ] z^{[l]} z[l],即可得到 d w [ l ] , d b [ l ] dw^{[l]},db^{[l]} dw[l],db[l]还有上一层的 d a [ l − 1 ] da^{[l-1]} da[l1]

参数与超参数

超参数就是你自己调的,玄学参数:

  • learning_rate
  • iterations
  • L = len(hidden layer)
  • n [ l ] n^{[l]} n[l]
  • activation function
  • mini batch size(最小的计算批)
  • regularization(正则)
  • momentum(动量)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值