체인 룰(Chain rule)과 경사 하강법(Gradient descent)의 관계

Bean·2025년 3월 30일
0

인공지능

목록 보기
2/123

1 체인 룰과 경사 하강법의 관계

(1) 체인 룰이 필요한 이유

신경망의 출력 𝐿 (손실 Loss)은 여러 층을 거쳐 계산됩니다.
따라서 특정 가중치 𝑤가 Loss에 어떻게 영향을 주는지 계산하려면 체인 룰(Chain Rule)을 사용해야 합니다.

Lw=Lypred×ypredw\frac{\partial L}{\partial w} = \frac{\partial L}{\partial y_{\text{pred}}} \times \frac{\partial y_{\text{pred}}}{\partial w}

즉,
1. 먼저 예측값 ypredy_{\text{pred}}이 변화할 때 Loss LL이 얼마나 변하는지 계산
2. ww가 변화할 때 예측값 ypredy_{\text{pred}}가 어떻게 변하는지 계산
3. 이 두 값을 곱하여 Lw\frac{\partial L}{\partial w} 를 구함 → 경사 하강법에서 사용

(2) 경사 하강법과 연결

경사 하강법(Gradient Descent)은 체인 룰로 구한 기울기를 이용하여 가중치를 업데이트하는 방식입니다.

가중치 업데이트 공식:

w=wηLww = w - \eta \cdot \frac{\partial L}{\partial w}

  • 𝜂 (eta): 학습률 (learning rate)
  • Lw\frac{\partial L}{\partial w}: 체인 룰을 사용하여 계산한 기울기

즉, 체인 룰 없이 기울기를 구할 수 없으며, 기울기 없이는 경사 하강법을 사용할 수 없습니다.


2 예제: 체인 룰 + 경사 하강법

예제 문제

ypred=wxy_{\text{pred}} = w \cdot x
L=1n(ypredytrue)2L = \frac{1}{n} \sum (y_{\text{pred}} - y_{\text{true}})^2

체인 룰을 사용하여 기울기 계산

Lw=2n(ypredytrue)x\frac{\partial L}{\partial w} = \frac{2}{n} \sum (y_{\text{pred}} - y_{\text{true}}) \cdot x

경사 하강법 적용하여 가중치 업데이트

w=wηLww = w - \eta \cdot \frac{\partial L}{\partial w}


(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()  # MSE 손실 함수

# 역전파 (체인 룰 적용하여 기울기 계산)
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) → 체인 룰로 구한 기울기를 사용하여 가중치 업데이트
  • 결론: 체인 룰 없이는 역전파가 불가능하고, 역전파 없이는 경사 하강법도 사용할 수 없음

즉, 체인 룰이 경사 하강법을 가능하게 하는 핵심 원리입니다!

profile
AI developer

0개의 댓글