17. Vectorizing Logistic Regression's Gradient Output
2023. 9. 8. 22:50ㆍGoogle 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)로 바꾼거.
'Google ML Bootcamp > 1. Neural Networks and Deep Learning' 카테고리의 다른 글
19. A Note on Python/Numpy Vectors (0) | 2023.09.08 |
---|---|
18. Broadcasting in Python (0) | 2023.09.08 |
16. Vectorizing Logistic Regression (0) | 2023.09.08 |
15. More Vectorization Examples (0) | 2023.09.08 |
14. Vectorization (0) | 2023.09.08 |