Day 6: Chapter 4-2 Backpropagation, 깊은 인공신경망의 학습

2023. 2. 25. 23:32딥러닝 이론

오늘 공부한 내용은 Ch.4-2입니다:

- Backpropagation

- The maths behind backpropagation

 

Chapter 4에서 배우고 있는 MLP(Multilayer perceptron)의 전체적인 과정은:

1. forward propagation (prediction)

2. backpropagation (calculate loss, update weights & biases)

3. repeat for X number of epochs

 

어제 배운 forward propagation은 prediction (output)을 내기 위해 X*W+b를 하고 non-linear activation function을 계산하는 과정이 나온다. 최종적은 결괏값은 output이다.

그리고 이 결과값을 label data와 비교해 Chapter 3에서 배운 loss함수(MSE)를 고르고 loss를 계산하는 과정(Optimizer)을 거친다. Loss를 통해 우리는 새로운 weights and biases를 update 해준다. 이 update 하는 과정은 Chapter 3에서 배운 gradient descent이며 이 부분을 backpropagation이라 부른다. 수학이 요구되어서 살짝 어려웠다.

 

1. Backpropagation and the maths behind it:

- Forward pass (forward propagation)는 왼쪽에서 오른쪽으로 가는 거라면 backpropagation은 오른쪽에 왼쪽으로 갑니다. Loss함수를 정하고 우리는 바로 loss함수의 gradient를 구합니다 - 즉 loss의 미분을 계산합니다. 강의 에서는 아직 MSE만 배워서 그 함수의 미분을 구합니다.

L_mse = (y1_hat - y1) ** 2 + (y2_hat - y2) ** 2

그리고 미분을 취하면 된다. 미분을 취할 때는 연쇄법칙 (ch1-7 chain rule, 왼쪽 노트 참고)를 사용 해야 한다. Chain rule도 식을 보면 알 수 있지만 반대 (오른쪽 -> 왼쪽) 방향으로 가니 직관적으로 맞는 것 같다.

 

여기서 쓰이는 수학은 gradient descent하고 chain rule이다. 계산이 살짝 복잡하다... 이 과정을 끝내면 optimizer를 선택하면 된다.

강의에서 Weight 1의 gradient를 구하면 다른 weight들도 값이 미묘하게 변한다고 했지만 그 부분은 이해가 안 돼서 다음에 다시 복습할 예정이다.