해당 게시물은 "혁펜하임의 AI DEEP DIVE"를 수강하고 작성되었습니다.
역전파(Backpropagation)는 미분이 뒤로 전달되기 때문에 "Back"propagation이라고 부른다.
역전파를 이해하기 위해 chain rule을 먼저 알아야 하는데 이에 대해서 잠시 설명한다.
(x2+1)2라는 식은 x→x2→x2+1→(x2+1)2의 과정으로 만들어진다.
(x2+1)2을 chain rule을 따라 미분해 보면 아래와 같이 미분할 수 있다.
- d(x2+1)2dx=(x2+1)2d(x2+1)(x2+1)d(x2)(x2)d(x)
감이 오는지? 식 전개 과정에서 자기 자신을 그 전 단계에 대해 미분하는걸 반복하면 된다. 그것이 chain rule이다.

위와 같은 신경망이 있다.
loss 는 MSE로 L=(^y1−y1)2+^y2−y2)2라고 하자.
그러면 그래디언트 ∂L∂w1는 chain rule에 의하여 아래와 같이 계산할 수 있다.
- ∂L∂w1=∂L∂n3∂n3∂d2∂d2∂n2∂n2∂d1∂d1∂w1
그런데 w2가 바뀐다면 loss를 구성하고 있는 ^y2에도 영향을 미치기 때문에 이것도 고려해 주어야 한다.
즉, 위 그림에서 하늘색 path도 아래와 같이 고려해 주어야 한다.
- ∂L∂w1=∂L∂n3∂n3∂d2∂d2∂n2∂n2∂d1∂d1∂w1+하늘색path
이는 아래와 같은 식으로 정리할 수 있다.
- ∂L∂w1=2(^y1−y1)f′2(d2)w2f′1(d1)n1
activation과 weight가 반복되는 모습을 보이는데,
hidden layer가 하나라면 activation-weight-activation-n의 꼴이고
hidden layer가 두개라면 activation-weight-activation-weight-activation-n 꼴이 된다.
forward propagation를 통해 d 값들을 계산한 후 저장한다.
이후 backpropagation을 할 때 저장해 놓았던 d값들을 사용하여 미분값을 구한다.
위 그림과 같은 신경망에서는 총 17개의 파라미터가 있는데(weight, bias) 이에 대한 미분을 위와 같은 방법으로 전부 구한다.
그러면 17개의 파라미터를 업데이트 할 때 (x1=x0−αg꼴) 여기 있는 g 값을 backpropagation을 통해 얻음으로써
loss가 최소가 되는 방향으로 업데이트를 진행하는 것이다.
마지막으로 backpropagation의 이해를 돕는 유튜브 영상을 첨부한다.
'AI' 카테고리의 다른 글
Sigmoid를 이용한 이진 분류, Logistic Regression (0) | 2024.09.04 |
---|---|
선형 분류 & 퍼셉트론 (2) | 2024.09.04 |
MLP를 행렬과 벡터로 나타내기, Non-linear activation의 중요성 (2) | 2024.09.02 |
Adam (Adaptive Moment Estimation) (0) | 2024.09.02 |
Momentum vs RMSProp (0) | 2024.09.01 |