시험공부빅데이터분석
← 보드Autograd — 자동으로 기울기 구하기 · 3/8

계산 그래프와 chain rule — 뒤에서 앞으로 곱하기 ★★

모델은 계산이 여러 단계로 이어져 있어요. PyTorch는 계산한 순서를 지도처럼 기록해 두는데 이것이 계산 그래프예요. 그리고 기울기를 구할 때는 이 지도를 뒤에서 앞으로 거슬러 가요.

비유 — 도미노와 톱니바퀴

톱니바퀴가 3개 이어져 있다고 생각해 보세요. 첫 톱니를 1바퀴 돌릴 때 마지막 톱니가 몇 바퀴 도는지는 각 톱니바퀴 사이의 비율을 곱하면 나와요. chain rule(연쇄 법칙)이 바로 "각 단계의 변화 비율을 차례로 곱하기"예요.

교수님 자료의 예제예요. w = 2일 때 a = w², b = 3a, L = b + 1이에요.

w = 2 a = w² = 4 b = 3a = 12 L = b+1 = 13 dL/db = 1 db/da = 3 da/dw = 2w = 4 앞으로 가며 값 계산 (forward) 뒤로 가며 비율 곱하기 (backward) dL/dw = 1 × 3 × 4 = 12
w = torch.tensor(2.0, requires_grad=True) a = w ** 2 b = 3 * a L = b + 1 L.backward() print("a =", a.item(), "b =", b.item(), "L =", L.item()) print("dL/dw =", w.grad.item())
a = 4.0 b = 12.0 L = 13.0 dL/dw = 12.0
코드 줄무슨 뜻
a = w ** 2a = 2² = 4
b = 3 * ab = 3 × 4 = 12
L = b + 1L = 12 + 1 = 13
L.backward()뒤에서부터 각 단계의 비율을 곱해요. 1 × 3 × 4 = 12
.item()숫자 하나짜리 Tensor에서 순수한 파이썬 숫자를 꺼내요.

한 번에 미분해도 같은 값이에요. L = 3w² + 1이니까 기울기는 6w이고, w = 2를 넣으면 12예요. 각 단계가 자기 비율만 알면 되기 때문에, 층이 수십 개인 모델도 같은 방식으로 계산할 수 있어요. 이 과정이 신경망의 역전파(backpropagation)예요.

조금 더 모델다운 예제도 볼게요. 예측값 = w × x, 손실 = (예측값 − 정답)²이에요. w = 2, x = 3, 정답 = 10을 넣어요.

w = torch.tensor(2.0, requires_grad=True) x = torch.tensor(3.0) target = torch.tensor(10.0) prediction = w * x loss = (prediction - target) ** 2 loss.backward() print("prediction =", prediction.item()) print("loss =", loss.item()) print("dL/dw =", w.grad.item())
prediction = 6.0 loss = 16.0 dL/dw = -24.0

기울기가 −24로 음수예요. w를 늘리면 예측값이 10에 가까워지니 loss가 줄어든다는 뜻이에요. 6-1의 표와 맞아요. 또한 기울기는 w의 현재 값을 정한 다음에야 구할 수 있어요. 위치마다 경사가 다르기 때문이에요.

계산 그래프와 chain rule
교수님 슬라이드 — 계산 그래프와 chain rule, 뒤에서 앞으로 곱하기
이렇게 고르세요 (풀이 요령)

기울기 값을 묻는 문제는 ① 앞으로 계산해 중간 값(예측값, loss)을 구하고 ② loss를 w로 미분해서 ③ w, x의 숫자를 넣어요. 위 예제에서 w=2, x=3, 정답 10이면 −24예요. 이 숫자들은 교수님 자료에 나온 값이라서 그대로 외워 두면 비슷한 문제에 바로 쓸 수 있어요.

잠깐 확인 — w=2에서 a=w², b=3a, L=b+1일 때 dL/dw를 chain rule로 쓰면?

1 × 3 × 4 = 12예요. dL/db = 1, db/da = 3, da/dw = 2w = 4를 곱해요.

다음 카드 → .grad를 다룰 때 알아야 할 규칙 — leaf, 스칼라

자료: 6주차 · Week04_Autograd_Loss_Optimizer · 6주차 녹취(빅데이터06), 7주차 녹취(빅데이터07)