Coursera Deeplearning.ai「深度学习」课程笔记L1.W4深层神经网络

1. 各参数的向量化表示

L L L表示神经网络的层数,输入层的索引为0,对于每层 l l l 都用 a [ l ] a^{[l]} a[l]
w [ l ] w^{[l]} w[l] 来记作在 l l l 层计算 z [ l ] z^{[l]} z[l] 的权重,再通过用激活函数 g g g 计算 a [ l ] a^{[l]} a[l]
(1) 输 入 变 量 A [ 0 ] = X = [ ⋮ ⋮ ⋮ ⋮ x ( 1 ) x ( 2 ) ⋯ x ( m ) ⋮ ⋮ ⋮ ⋮ ] 维 度 为 _ ∗ m , m 为 样 本 数 输入变量A^{[0]}=X = \left[ \begin{matrix} \vdots & \vdots & \vdots &\vdots \\ x^{(1)} & x^{(2)} & \cdots & x^{(m)} \\ \vdots & \vdots & \vdots &\vdots \\ \end{matrix} \right] 维度为 \_*m ,m为样本数\tag{1} A[0]=X=x(1)x(2)x(m)_mm(1)

(2) 输 入 变 量 W [ l ] = [ ⋯ w ( 1 ) ⋯ ⋯ w ( 2 ) ⋯ ⋮ ⋯ w ( h ) ⋯ ] 维 度 为 h ∗ _ , h 为 隐 藏 层 节 点 数 输入变量W^{[l]}=\left[ \begin{matrix} \cdots & w^{(1)} & \cdots \\ \cdots & w^{(2)} & \cdots \\ & \vdots &\\ \cdots & w^{(h)} &\cdots\\ \end{matrix} \right] 维度为 h*\_ ,h为隐藏层节点数\tag{2} W[l]=w(1)w(2)w(h)h_h(2)

2. 前向传播

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])

3. 反向传播

d Z [ l ] = d A [ l ] ∗ g [ l ] ′ ( Z [ l ] ) dZ^{[l]}=dA^{[l]}*g^{[l]'}(Z^{[l]}) dZ[l]=dA[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]

4. 核对矩阵维数

吴恩达:当实现深度神经网络的时候,其中一个我常用的检查代码是否有错的方法就是拿出一张纸过一遍算法中矩阵的维数

w w w的维度是(下一层的维数,前一层的维数),即 w [ l ] : ( n [ l ] , n [ l − 1 ] ) w^{[l]}:(n^{[l]},n^{[l-1]}) w[l]:(n[l],n[l1])
b b b的维度是(下一层的维数,1),即 b [ l ] : ( n [ l ] , 1 ) b^{[l]}:(n^{[l]},1) b[l]:(n[l],1)
z z z a a a的维度是, z [ l ] , a [ l ] : ( n [ l ] , 1 ) z^{[l]},a^{[l]}:(n^{[l]},1) z[l],a[l]:(n[l],1)

d w [ l ] dw^{[l]} dw[l] w [ l ] w^{[l]} w[l]维度相同, d b [ l ] db^{[l]} db[l] b [ l ] b^{[l]} b[l]维度相同
向量化后: w w w b b b向量化维度不变,但 z z z a a a以及 x x x的维度会向量化后发生变化。
Z [ l ] Z^{[l]} Z[l]可以看成由每一个单独的 z [ l ] z^{[l]} z[l]叠加而得到,即
Z [ l ] = ( z [ l ] [ 1 ] , z [ l ] [ 2 ] , z [ l ] [ 3 ] , . . . , z [ l ] [ m ] ) Z^{[l]}=(z^{[l][1]},z^{[l][2]},z^{[l][3]},...,z^{[l][m]}) Z[l]=(z[l][1],z[l][2],z[l][3],...,z[l][m])
其中, m m m为训练集大小。所以,
Z Z Z A A A的维度是, Z [ l ] , A [ l ] : ( n [ l ] , m ) Z^{[l]},A^{[l]}:(n^{[l]},m) Z[l],A[l]:(n[l],m)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值