지난 포스트에서 Neural Network의 구조를 배웠습니다.
이번엔 Neural Network를 실제로 학습시키는 핵심 알고리즘인 역전파(Backpropagation) 를 알아보겠습니다.
역전파가 왜 필요할까?
딥러닝으로 들어오면서 경사 하강법을 사용해 cost 함수를 최소화하는 W, b를 계산하는 것이 너무 복잡해서 불가능하다고 Minsky 교수님이 말씀하셨습니다.
뉴럴 네트워크가 복잡해지면서 최종 결과에 대한 미분값(기울기)을 구하기가 매우 어려워졌기 때문입니다.
하지만 이 문제는 1974년 폴 워보스, 1986년 제프리 힌턴 교수에 의해 해결되었습니다.
출력값의 오류를 역방향으로 전파하며 미분값을 계산한다
Chain Rule (연쇄 법칙)
역전파의 핵심은 Chain Rule 입니다.
복잡한 함수의 미분을 여러 단계로 나눠서 계산하는 방법입니다.
f = wx + b 라는 함수가 있을 때
g = wx 로 나누면
f = g + b
αf/αx = (αf/αg) * (αg/αx)
복잡해 보여도 뒤에서부터 차근차근 곱해나가면 됩니다.
계산 그래프로 표현하기
f = wx + b 를 계산 그래프로 그리면:
w ──\
(×) ── g ──\
x ──/ (+) ── f
/
b ─────────────
우리가 구하고 싶은 것:
- w가 f에 미치는 영향 → αf/αw
- x가 f에 미치는 영향 → αf/αx
- b가 f에 미치는 영향 → αf/αb
이것이 각각의 미분값(기울기) 이 됩니다.
Forward : 앞에서 뒤로 값 계산
먼저 Forward(순전파) 는 학습 데이터에서 값을 가져와 그래프에 순서대로 입력하는 단계입니다.
w = -2
x = 5
b = 3
계산 순서:
g = w × x = (-2) × 5 = -10
f = g + b = -10 + 3 = -7
w=-2 ──\
(×) ── g=-10 ──\
x= 5 ──/ (+) ── f=-7
/
b= 3 ─────────────────
Backward : 뒤에서 앞으로 미분 계산
Backward(역전파) 는 출력(f)에서 시작해 역방향으로 미분값을 계산합니다.
출력 쪽 미분 먼저 계산
f = g + b 이므로
αf/αg = 1 ← g가 1 변할 때 f는 1 변한다
αf/αb = 1 ← b가 1 변할 때 f는 1 변한다
Chain Rule로 나머지 계산
w가 f에 미치는 영향:
αf/αw = αf/αg × αg/αw
= 1 × x
= 1 × 5
= 5
w가 1 변하면 f는 5배 영향을 받습니다.
x가 f에 미치는 영향:
αf/αx = αf/αg × αg/αx
= 1 × w
= 1 × (-2)
= -2
x가 1 변하면 f는 -2배 영향을 받습니다.
b가 f에 미치는 영향:
αf/αb = 1
b가 1 변하면 f도 1대1로 영향을 받습니다.
결과 정리
w=-2 ──\
(×) ── g=-10 ──\
x= 5 ──/ (+) ── f=-7
/
b= 3 ─────────────────
← 역방향 미분값 →
αf/αw = 5 (w가 f에 5배 영향)
αf/αx = -2 (x가 f에 -2배 영향)
αf/αb = 1 (b가 f에 1대1 영향)
왜 역전파가 강력한가?
뉴럴 네트워크가 아무리 깊어져도 (레이어가 많아져도) 뒤에서부터 차근차근 Chain Rule을 적용하면 모든 W, b의 미분값을 구할 수 있습니다.
입력층 → 은닉층1 → 은닉층2 → ... → 출력층
↓
오류 계산 (cost)
↓
출력층 ← 은닉층2 ← 은닉층1 ← ... ← 역전파 시작
(미분값을 역방향으로 전파하며 각 W, b 업데이트)
Minsky 교수님이 불가능하다고 했던 문제를 Chain Rule 이라는 수학적 방법으로 해결한 것입니다.
정리
개념 설명
| Backpropagation | 출력의 오류를 역방향으로 전파하며 미분값을 계산하는 알고리즘 |
| Chain Rule | 복잡한 함수의 미분을 단계별로 나눠 계산하는 방법 |
| Forward | 입력 → 출력 방향으로 값을 계산 |
| Backward | 출력 → 입력 방향으로 미분값(기울기)을 계산 |
| 미분값의 의미 | 해당 변수가 최종 출력에 얼마나 영향을 미치는지 |
역전파 알고리즘의 등장으로 딥러닝이 본격적으로 발전할 수 있게 되었습니다. 🚀
'AI > ML' 카테고리의 다른 글
| ReLU : Vanishing Gradient 문제와 해결책 (0) | 2026.03.22 |
|---|---|
| XOR 문제 Neural Network로 구현하기 (TensorFlow) (0) | 2026.03.21 |
| XOR 문제와 Neural Network : 딥러닝의 시작 (0) | 2026.03.19 |
| Overfitting : 과적합 이해하고 해결하기 (0) | 2026.03.13 |
| 머신러닝 학습 팁 : Learning Rate, 데이터 전처리 (0) | 2026.03.12 |