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들도 값이 미묘하게 변한다고 했지만 그 부분은 이해가 안 돼서 다음에 다시 복습할 예정이다.
'딥러닝 이론' 카테고리의 다른 글
Day 8: Chapter 4-3, 5-1, 5-2 선형분류와 sigmoid (0) | 2023.02.27 |
---|---|
Day 7: Chapter 1 gradient, 벡터를 벡터로 미분하는 법 (0) | 2023.02.26 |
Day 5: Chapter 4-1 MLP, 행렬과 벡터로 나타내기 & 왜 non-linear activation 중요할까? (0) | 2023.02.24 |
Day 4: 왜 우리는 인공 신경망을 공부해야 하는가? Part 2 (0) | 2023.02.23 |
Day 3: Chapter 3. 왜 우리는 인공 신경망을 공부해야 하는가? (Part I) (0) | 2023.02.22 |