1 체인 룰과 경사 하강법의 관계
(1) 체인 룰이 필요한 이유
신경망의 출력 𝐿 (손실 Loss)은 여러 층을 거쳐 계산됩니다.
따라서 특정 가중치 𝑤가 Loss에 어떻게 영향을 주는지 계산하려면 체인 룰(Chain Rule)을 사용해야 합니다.
∂w∂L=∂ypred∂L×∂w∂ypred
즉,
1. 먼저 예측값 ypred이 변화할 때 Loss L이 얼마나 변하는지 계산
2. w가 변화할 때 예측값 ypred가 어떻게 변하는지 계산
3. 이 두 값을 곱하여 ∂w∂L 를 구함 → 경사 하강법에서 사용
(2) 경사 하강법과 연결
경사 하강법(Gradient Descent)은 체인 룰로 구한 기울기를 이용하여 가중치를 업데이트하는 방식입니다.
가중치 업데이트 공식:
w=w−η⋅∂w∂L
- 𝜂 (eta): 학습률 (learning rate)
- ∂w∂L: 체인 룰을 사용하여 계산한 기울기
즉, 체인 룰 없이 기울기를 구할 수 없으며, 기울기 없이는 경사 하강법을 사용할 수 없습니다.
2 예제: 체인 룰 + 경사 하강법
예제 문제
ypred=w⋅x
L=n1∑(ypred−ytrue)2
체인 룰을 사용하여 기울기 계산
∂w∂L=n2∑(ypred−ytrue)⋅x
경사 하강법 적용하여 가중치 업데이트
w=w−η⋅∂w∂L
(3) PyTorch 코드로 실행
import torch
x = torch.tensor([1.0, 2.0, 3.0, 4.0])
y_true = torch.tensor([2.0, 4.0, 6.0, 8.0])
w = torch.tensor([0.5], requires_grad=True)
y_pred = w * x
loss = ((y_pred - y_true) ** 2).mean()
loss.backward()
learning_rate = 0.1
with torch.no_grad():
w -= learning_rate * w.grad
w.grad.zero_()
print(f"Updated w: {w.item()}")
3 결론
- 체인 룰(Chain Rule) → 역전파에서 기울기 계산
- 경사 하강법(Gradient Descent) → 체인 룰로 구한 기울기를 사용하여 가중치 업데이트
- 결론: 체인 룰 없이는 역전파가 불가능하고, 역전파 없이는 경사 하강법도 사용할 수 없음
즉, 체인 룰이 경사 하강법을 가능하게 하는 핵심 원리입니다!