吴恩达深度学习第一课第四周(深层神经网络)

打卡(1)

4.1 深层神经网络

这里写图片描述
* 符号约定:输入层 X = a [ 0 ] , y ^ = a [ L ]

打卡(2)

4.2 深层网络中前向传播

这里写图片描述
单个样本:
X = a [ 0 ]
Z [ 1 ] = W [ 1 ] a [ 0 ] + b [ 1 ]
a [ 1 ] = g [ 1 ] ( Z [ 1 ] ) 第一层
Z [ 2 ] = W [ 2 ] a [ 1 ] + b [ 2 ]
a [ 2 ] = g [ 2 ] Z [ 2 ] 第二层
…..
Z [ 4 ] = W [ 4 ] a [ 3 ] + b [ 4 ]
a [ 4 ] = g [ 4 ] Z [ 4 ] = y ^

Z [ l ] = W [ l ] a [ l 1 ] + b [ l ]
a [ l ] = g [ l ] Z [ l ]
所有样本:
Z [ 1 ] = W [ 1 ] A [ 0 ] + b [ 1 ]
A [ 1 ] = g [ 1 ] ( Z [ 1 ] ) 第一层
Z [ 2 ] = W [ 2 ] A [ 1 ] + b [ 2 ]
A [ 2 ] = g [ 2 ] Z [ 2 ] 第二层
…….

4.3 核对矩阵的维数

假定:输入层的维度为 n [ 0 ] ,隐藏层第一层为 n [ 1 ] ,第二层 n [ 2 ] ,…..。
则:
第一层的权重 W [ 1 ] : ( n [ 1 ] , n [ 0 ] ) , b [ 1 ] : ( n 1 , 1 )
第二层的权重 W [ 1 ] : ( n [ 2 ] , n [ 1 ] ) , b [ 2 ] : ( n 2 , 1 )
…..
W [ l ] : ( n [ l ] , n [ l 1 ] )
b [ l ] : ( n l , 1 )
同样反向传播时:
d W [ l ] W [ l ] : ( n [ l ] , n [ l 1 ] )
d b [ l ] b [ l ] : ( n [ l ] , n [ l 1 ] )
这里写图片描述

单个样本的计算:
Z [ 1 ] = W [ 1 ] X + b [ 1 ]
其中, Z [ 1 ] 的维度是 n [ 1 ] , 1 W [ 1 ] 的维度是 n [ 1 ] , n [ 0 ] ) X的维度是 n [ 0 ] , 1 ) b [ 1 ] 的维度是 n [ 1 ] , 1 ;
对于整个训练集(m个样本):
Z [ 1 ] 的维度为 n [ 1 ] , m W [ 1 ] 的维度是 ( n [ 1 ] , n [ 0 ] ) X 的维度是 ( n [ 0 ] , m ) b [ 1 ] 的维度是 ( n [ 1 ] , m ) .

  • Z [ l ] a [ l ] : n [ l ] , 1
  • Z [ l ] A [ l ] : ( n [ l ] , m )
  • l = 0 时, A [ 0 ] = X = ( n [ 0 ] , m )
  • d z [ l ] d A [ l ] n [ l ] , m

4.4 为什么使用深层表示

深度神经网络并不需要很大的神经网络,但是得有深度,得有比较多的隐藏层

4.5 搭建深层神经网络块

这里写图片描述
编程过程中需要将 Z [ l ] W [ l ] b [ l ] 缓存,在反向传播时可直接使用,节省时间
这里写图片描述

4.6 前向和反向传播

前向传播:
这里写图片描述
后向传播
L = f ( y ^ , y ) y ^ = a [ l ]
" d a [ l ] "= d L d a [ l ]
" d Z [ l ] "= d a d Z =" d a [ l ] " g [ l ] ( Z [ l ] )
" d W [ l ] "=" d Z " d Z d W [ l ] =" d Z [ l ] " a [ l 1 ]
" d b [ l ] "=" d Z " d Z d b [ l ] =" d Z [ l ] "
" d a [ l 1 ] "=" d Z " d Z d a [ l 1 ] = W [ l ] T " d Z [ l ] "
" d a l 1 " W [ l ] 需要转置,因为 " d a [ l 1 ] " 维度为 ( n [ l 1 ] , 1 ) W [ l ] 维度为 n [ l ] , n [ l 1 ] ) " d Z [ l ] " 维度为 ( n [ l ] , 1 )
这里写图片描述
这里写图片描述

4.7 参数和超参数

  • 超参数在某种程度上决定了参数
    这里写图片描述