1.4 深層神經網絡
1.4.1 深層神經網絡
符號定義:
- 層數:L=4;輸入層的索引爲“0”;
- n[l]:代表第l層有多少個神經元,n[1]=5,n[2]=5,n[3]=3,n[4]=n[L]=1(輸出單元爲1);n[0]=nx=3(輸入層);
- a[l]代表第l層激活後結果;
- w[l]代表第l層計算z[l]值的權重;
1.4.2 前向傳播和反向傳播
前向傳播:
第一層z[1]=w[1]x+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])
歸納爲多次迭代z[l]=w[l]a[l−1]+b[l],a[l]=g[l](z[l])
向量化:z[l]=W[l]⋅A[l−1]+b[l],A[l]=g[l](Z[l])
變量維度:
w[l]:R(n[l],n[l−1]);
b[l] : R(n[l],1);
z[l],R(n[l],1);
向量化後的維度:
Z[l]=(z[l][1],z[l][2],z[l][3],…,z[l][m]),Z[l]∈(n[l],m)
A[l]∈(n[l],m),A[0]=X∈(n[l],m)
反向傳播:
(1)dz[l]=da[l]∗g[l]′(z[l])
(2)dw[l]=dz[l]⋅a[l−1]
(3)db[l]=dz[l]
(4)da[l−1]=w[l]T⋅dz[l]
(5)dz[l]=w[l+1]Tdz[l+1]⋅ g[l]′(z[l])
式子(5)由式子(4)帶入式子(1)得到,前四個式子就可實現反向函數。
向量化:
(6)dZ[l]=dA[l]∗g[l]′(Z[l])
(7)dW[l]=m1dZ[l]⋅A[l−1]T
(8)db[l]=m1 np.sum(dz[l],axis=1,keepdims=True)
(9)dA[l−1]=W[l]T.dZ[l]