Deep Neural Network의 Propagation
Shallow network와 동일하게 forward/backward propagation을 통해 예측/update를 할 수 있다.
Caching
Backward propagation을 통해 gradient를 구할 때에는 a와 z 값을 caching 해놓는 것이 좋다.
Forward propagtion을 쭉 다 한 후 backward propagation을 수행하게 되는데, forward에서 사용된 a와 z 값이 backward에서 그대로 사용되기 때문이다.
따라서 forward에서 구한 $a^{[l]}, z^{[l]}$의 값들을 버리지말고 저장해놨다가 backward에서 사용하는 것이 연산 시간을 줄일 수 있다.
Backward Propagation
$l$-th layer의 backward propagation을 일반화하면 아래와 같다.
$dW$와 $db$는 $W$와 $b$에 대한 update 값이므로 m으로 나눠 평균을 취해야 한다.
각 matrix의 shpae는 아래와 같다.
- $W^{[l]}$, $dW^{[l]}$ : $(n^{[l]}, n^{[l-1]})$
- $b^{[l]}$, $b^{[l]}$ : $(n^{[l]}, 1)$
- $Z^{[l]}$, $dZ^{[l]}$ : $(n^{[l]}, 1)$
- $A^{[l]}$, $dA^{[l]}$ : $(n^{[l]}, 1)$
'Computer Science > AL, ML' 카테고리의 다른 글
[네트워크 성능] Dataset (0) | 2022.04.20 |
---|---|
네트워크의 성능 (0) | 2022.04.20 |
Neural Network에서 Layer 수 vs. Unit 수 (0) | 2022.04.20 |
Deep Neural Network의 Vectorization (0) | 2022.04.20 |
Deep Neural Network (DNN) (0) | 2022.04.20 |
댓글