앗! 광고가 차단되었어요!

글 내용이 방문자께 도움이 되었다면, 광고 차단 프로그램 해제를 고려해주세요 😀.

전공 정리/인공지능 (Coursera)

Neural Network - forward and backward propagation

this-gpa 2020. 6. 28. 16:11

오늘은 뉴럴 네트워크의 중요한 개념 forward propagation과 backward propagation을 정리하려고 한다.

뉴럴 네트워크의 학습 과정을 간단히 설명하면 (regression algorithm과 비슷하게) 파라미터 W, b (또는 Theta)를 이용하여 각 레이어의 activation과 loss를 계산하고, gradient descent 기법을 적용하기 위해 파라미터들의 partial derivative를 구하게 된다. (그리고 learning rate에 따라 파라미터를 업데이트할 것이다)

여기서 W, b를 이용하여 각 layer의 activation 값 (a), 마지막 prediction 값(y hat), 그리고 loss (cost)를 구하는 과정이 forward propagation, error (delta) 값 및 미분을 이용하여 파라미터에 대한 partial derivative를 구하는 과정이 back propagation이 되겠다.

시작하기 전에, 다음과 같은 L-layer Nerual Network이 존재한다고 하자.

L-layer neural network, for binary classification

이 모델을 기준으로, Forward Propagation, Backward Propagation을 computation graph로 나타내면 다음과 같다.

 

Forward Propagation
Back Propagation

수식이 굉장히 많지만 의미를 알면 완벽하지는 않아도 그림 없이 어느 정도 끄적일 수 있을 것 같다.

먼저 Forward Propagation의 공식은 back에 비하면 단순한 편이다. weight와 bias, 앞 레이어의 activation에 따라 linear 하게 계산 후, 이는 non-linear 한 activation function g를 거치게 된다.

Backward Propagation에서는 dW, db가 dZ, dA에 의해 결정되며, dA는 뒷 레이어의 에러(dZ)의 propagation이라고 이해하면 좋을 것 같다. 그래서 뒷 레이어의 dZ와 W를 사용한다.

그리고 A는 Z가 activation function을 지난 것이므로, A를 Z로 미분하면 g' 항이 붙는 것을 알 수 있다.

프로그래밍으로, 이를 직접 구현한다면, forward propagation 관련 함수를 호출할 때 Z, W, b 값을 레이어별로 캐싱하고, 이를 back propagation에서 역순으로 사용하는 기법을 사용할 수 있다. (Coursera 프로그래밍 과제의 경우, 이런 방식을 사용했다)

* 자료는 Andrew Ng 교수님의 자료를 참고했으며, 그림은 제가 직접 그렸습니다.
* 이미지 사용하시려면 출처 부분은 남겨주세요 ㅠ

'전공 정리 > 인공지능 (Coursera)' 카테고리의 다른 글

YOLO Algorithm Shallow Notes  (0) 2020.07.31
01. Introduction to Machine Learning  (0) 2020.07.02