4.1深层神经网络
n[0]=nx=3 第0层 括号里代表层数。
n[1]=5....
n[4]=n[L]=1
a[L]代表第L层的激活函数
同理还有z[L],b[L],a[L]
4.2深层神经网络的前向传播
前向传播总结的公式如下: 实际上还是一层一层利用相同的计算逻辑来循环。
4.3正确的矩阵维度 重要!!
检查矩阵维度是深度学习里非常重要的一点。
训练集大小=1 注意矩阵都是小写
z[1]= w[1].x + b[1]
我们先不讨论b
首先根据网络可以确定 Z[1]的维度是(3,1) (3维矢量) 也就是(n[1],1)维矩阵
x 是(2,1)二维矩阵,因为有两个输入x1,x2 也就是(n[0],1)维矩阵
w[1]*x 得到Z[1] 根据矩阵乘法可知,W[1]的维度是(3,2) 也就是(n[1],n[0])维矩阵
所以w[L]的维度是(n[L],n[L-1])
自己在看一下n[2]这一层。
接下来看矢量b
b矩阵的维度要和z矩阵维度相等。比如第一层n=1 b1矩阵就需要是(3,1),第二层n=2 b2矩阵需要是(5,1)
所以b[L]维度是(n(L),1)
训练集大小=m,注意这里矩阵都换成大写
上述情况的意思是训练集大小为1(对应红圈里的列向量),但是实际上训练集大小不是固定的,所以Z的列数就不固定,如果训练集大小为m,那么Z[1]维度就是(n1,m)
所以X的维度也变了 变成了(n[0],m)
W1维度不变。
B1维度不变,因为python会把他广播成(n1,m)
所以Z[L],A[L]的维度为(n(L),m)
dZ[L],dA[L]维度和Z[L],A[L]保持一致,都是(n(L),m)
4.5 为深度神经网络构建模块
正向传播:通过a[L-1]得到a[L],注意可以先缓存z[L],对后续的正向传播反向传播非常有用。
反向传播: 为了梯度下降学习,要知道下降的斜率dW和db
L层的正向传播和反向传播示意图:
多层正向传播示意图:
多层反向传播示意图:
细节:缓存z W b
4.6正向传播和反向传播
正向传播:
反向传播:
一个例子:
4.7 参数和超参数
什么是超参数:
