deeplearning.ai 总结 - 如何计算神经网络各部分的shape
flyfish
标记方法采用deeplearning.ai的标记方法

输入层(Input layer)
隐藏层(Hidden layer)
输出层(Output layer)。
上图中是两层神经网络,输出层不算。
输入矩阵X记为
a[0]
,
隐藏层输出记为a[1]
。
a[1]1]
表示隐藏层第1个神经元,a[1]2]
表示隐藏层第2个神经元。
隐藏层有4个神经元写成矩阵的形式是
a[1]=⎡⎣⎢⎢⎢⎢⎢⎢a[1]1a[1]2a[1]3a[1]4⎤⎦⎥⎥⎥⎥⎥⎥
输出层记为
a[2]
计算过程
z=wTx+b
a=σ(z)
从输入层到隐藏层的计算
z[1]1=w[1]T1x+b[1]1, a[1]1=σ(z[1]1)
z[1]2=w[1]T2x+b[1]2, a[1]2=σ(z[1]2)
z[1]3=w[1]T3x+b[1]3, a[1]3=σ(z[1]3)
z[1]4=w[1]T4x+b[1]4, a[1]4=σ(z[1]4)
隐藏层到输出层的计算
z[2]1=w[2]T1a[1]+b[2]1, a[2]1=σ(z[2]1)
转换成矩阵计算
Z[1]=W[1]X+b[1]
A[1]=σ(Z[1])
Z[2]=W[2]A[1]+b[2]
A[2]=σ(Z[2])
W[1]
的维度是(4,3),4是隐藏层神经元个数,3是输入层特征数
b[1]
的维度是(4,1),
W[2]
的维度是(1,4),
1对应着输出层神经元个数,4对应着隐藏层神经元个数。
b[2]
的维度是(1,1)。
多个样本使用矩阵
fori=1到m
z[1](i)=W[1]x(i)+b[1]
a[1](i)=σ(z[1](i))
z[2](i)=W[2]a[1](i)+b[2]
a[2](i)=σ(z[2](i))
矩阵方式是
Z[1]=W[1]X+b[1]
A[1]=σ(Z[1])
Z[2]=W[2]A[1]+b[2]
A[2]=σ(Z[2])
行是神经元个数,列是样本数目m
Z[1]
和A[1]
的维度是(4,m)
Z[2]
和A[2]
的维度均为(1,m)。