topic난이도 · 약 25

역전파 — 오차를 거슬러 올라가다

체인 룰로 출력→입력 방향으로 기울기를 전파. PyTorch의 loss.backward()가 이를 자동화한다.

#역전파#체인 룰#오토그래드#PyTorch
왜 배우는가

96개의 층으로 이루어진 GPT-3. 출력에서 생긴 오차가 어떻게 첫 번째 층의 파라미터까지 전달되어 업데이트될까? 역전파(Backpropagation) — 체인 룰로 출력에서 입력 방향으로 기울기를 전달하는 알고리즘이다.

겹겹이 쌓인 함수의 미분은 '체인'처럼 연결됩니다

용어설명
역전파출력→입력 방향으로 오차를 전파하며 기울기를 계산
오토그래드PyTorch의 자동 미분 엔진

d/dx f(g(x)) = f'(g(x)) × g'(x) 합성함수 f(g(x))의 미분은 바깥 함수의 미분 × 안쪽 함수의 미분입니다. 이를 여러 층에 확장하면 역전파가 됩니다.

역전파 순서설명
1. 순전파 (Forward)입력 → [층1] → [층2] → ... → [층96] → 출력
2. 손실 계산출력과 정답 비교 → Cross-Entropy 손실
3. 역전파 시작∂L/∂출력 계산 (손실의 미분)
4. 체인 룰 적용∂L/∂W₁ = ∂L/∂출력 × ∂출력/∂층96 × ... × ∂층1/∂W₁
5. 파라미터 업데이트GPT-3: 96개의 층을 거슬러 올라가며 기울기 계산!
역전파 체인 룰 — 출력에서 입력 방향으로 기울기가 전파되는 흐름

간단한 네트워크에서 역전파를 직접 실행합니다

순전파로 output을 계산하고, 역전파로 체인 룰을 적용하여 w1, w2의 기울기를 구한 뒤, 학습률 0.01로 파라미터를 업데이트한다.

PyTorch의 loss.backward()가 역전파를 자동으로 해줍니다

수동 역전파 vs PyTorch: 수동 (우리가 한 것): dL_doutput = 2 * (output - target) dL_dw2 = dL_doutput * a1 dL_dw1 = dL_dz1 * x PyTorch (한 줄): loss.backward() # 자동으로 모든 기울기 계산! → GPT-3의 1750억 파라미터에 대해 자동 실행

핵심 개념설명
체인 룰합성함수 f(g(x))의 미분 = f'(g(x)) × g'(x)
역전파출력→입력 방향으로 체인 룰을 반복 적용하여 기울기 계산
오토그래드PyTorch가 loss.backward() 한 줄로 역전파를 자동 실행
역전파 순서설명
1단계순전파: 입력 → 층1 → 층2 → ... → 출력
2단계손실 계산: 출력과 정답 비교 → Cross-Entropy
3단계역전파: ∂L/∂출력에서 시작하여 역방향으로 기울기 전파
4단계업데이트: 계산된 기울기로 모든 파라미터 조정

GPT-3는 96개 층을 거슬러 올라가며 1750억 개 파라미터의 기울기를 자동 계산한다

실기 드릴 5문항
edit실기 드릴 · 단답형

역전파에서 기울기를 계산하는 순서는?

check_circle실기 드릴 · OX

PyTorch에서 loss.backward()를 호출하면 모든 파라미터의 기울기가 오토그래드로 계산된다.

edit실기 드릴 · 단답형

체인 룰에서 합성함수 f(g(x))의 미분은 어떻게 계산하나요?

edit실기 드릴 · 단답형

PyTorch 코드의 빈칸: loss.___() — 역전파 시작

check_circle실기 드릴 · OX

역전파에서 기울기 소실(vanishing gradient) 문제는 층이 깊어질수록 심해진다.