17. Vectorizing Logistic Regression's Gradient Output

2023. 9. 8. 22:50Google ML Bootcamp/1. Neural Networks and Deep Learning

a 는 sigmoid(z)의 결과값으로 y*

dz(i) = a(i) - y(i) , 즉 loss를 의미.

 

따라서 dZ = A - Y

- dZ = [a(1)-y(1), a(2)-y(2), ... , a(m)-y(m)]

 

기존 

for m

    for w(nx)

 

에서

for m

    dw+= x * dz

로 for문 제거. 

 

에서 또 한번 for문을 제거

결국

dW = 1/m * X * dZ(T)

dB = 1/m * np.sum(db)

로 초기화함으로써 for문 하나 더 제거.

 

즉 dW에는 m개의 훈련 예제가 x * dz를 통해 x(i)당 nx개의 기울기 누적합이 존재.

- 그걸 m개 평균을 내서 한번에 update 진행.

 

기존에는 1부터 m까지 한번씩 dw+=를 통해 진행.

그걸 한번에 sum(dw)로 바꾼거.