Building your Deep Neural Network
1.初始化参数
W1,b1,W2,b2
2. forward propagation
Z[l]=W[l]A[l−1]+b[l]
where A[0]=X
3. 计算activation functio
sigmoid/relu
A[l]=g(Z[l])=g(W[l]A[l−1]+b[l])
output (A,cache)
其中cache 包括w1,b1…
4. 实现FP
AL, cache = linear_activation_forward(A,parameters['W'+str(L)],parameters['b'+str(L)],activation = "sigmoid")
caches.append(cache)
5.计算 cost function
−1m∑i=1m(y(i)log(aL)+(1−y(i))log(1−aL))
np.dot不支持交换律
6.实现back propagation(以下的实现逻辑应该是倒着来的)
- 取dZ,W,b 求dW,db,dA
- 取dA,activation_cache求dZ,sigmoid/relu dZ[l]=dA[l]∗g′(Z[l])
- 取AL,Y,caches 求dA
dAL = - (np.divide(Y, AL) - np.divide(1 - Y, 1 - AL))
7.计算梯度grads
grads[“dW”+str(l)]=dW[l]
8.更新参数
W[l]=W[l]−α dW[l]
b[l]=b[l]−α db[l]