01. 神经网络和深度学习
第四周 深层神经网络
4.1 深层神经网络
- 什么是深度神经网络
- 深度神经网络符号注释
(1) L L L——层数
(2) n [ l ] n^{[l]} n[l]——第l层节点数
(3) a [ l ] a^{[l]} a[l]——第l层的激活函数
(4) W [ l ] W^{[l]} W[l]——第l层的权重
4.2 前向和反向传播
- 第l层的前向传播
输入: A [ l − 1 ] A^{[l-1]} A[l−1]
输出: A [ l ] A^{[l]} A[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[l−1]+b[l]
A [ l ] = g [ l ] ( Z [ l ] ) A^{[l]}=g^{[l]}(Z^{[l]}) A[l]=g[l](Z[l]) - 第l层的反向传播
输入: d a [ l ] da^{[l]} da[l]
输出: d a [ l − 1 ] , d W [ l ] , d b [ l ] da^{[l-1]}, dW^{[l]},db^{[l]} da[l−1],dW[l],db[l]
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[l−1]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[l−1]=W[l]TdZ[l] - 总结
4.3 神经网络中的前向传播
- 深度网络中的前向传播
- 对层的循环可以使用for循环
4.4 核对矩阵的维数
- 用于减少代码bug
- w [ l ] w^{[l]} w[l]的维度应为 ( n [ l ] , n [ l − 1 ] ) (n^{[l]}, n^{[l-1]}) (n[l],n[l−1])
- b [ l ] b^{[l]} b[l]的维度应为 ( n [ l ] , 1 ) (n^{[l]}, 1) (n[l],1)
- Z [ l ] , A [ l ] Z^{[l]}, A^{[l]} Z[l],A[l]的维度应为 ( n [ l ] , m ) (n^{[l]},m) (n[l],m), m m m为样本数
4.5 为什么使用深层表示
- 深度表示的直觉
- 电路理论和深度学习
当层数较深时,所用的隐藏单元节点数会呈指数级降低。
4.6 搭建神经神经网络块
回顾了神经网络的前向和反向传播,重点强调了对 z [ l ] z^{[l]} z[l]的缓存
4.7 参数VS超参数
- 什么是超参
举例:学习率,梯度下降法的迭代次数,隐层数,隐藏单元数,激活函数,动量,Minibatch大小,正则项 - 实践深度学习是一个经验过程