경사하강법(Gradient Descent)은 손실 함수를 최소화하기 위해 그래디언트(기울기)의 반대 방향으로 파라미터를 반복적으로 업데이트하는 최적화 알고리즘이다.
직관
산에서 가장 빠른 길로 내려가는 방법:
→ 현재 위치에서 가장 경사가 급한 방향(그래디언트의 반대)으로 한 걸음
→ 반복해서 골짜기(최솟값) 도달
업데이트 규칙
θ = θ - α * ∂L/∂θ
θ: 파라미터 (가중치, 편향)
α: 학습률 (learning rate)
∂L/∂θ: 손실 L에 대한 θ의 그래디언트
변형 알고리즘
| 알고리즘 | 특징 |
|---|
| Batch GD | 전체 데이터로 그래디언트 계산 |
| SGD | 샘플 하나씩 업데이트 |
| Mini-batch SGD | 작은 배치 단위 (실제 사용) |
| Adam | 적응적 학습률 (가장 많이 사용) |
| RMSprop | 최근 그래디언트에 더 가중치 |
Adam 옵티마이저
python
optimizer = torch.optim.Adam(model.parameters(), lr=0.001,
betas=(0.9, 0.999))
# 학습 루프
for epoch in range(100):
optimizer.zero_grad()
loss = criterion(model(X), y)
loss.backward() # 그래디언트 계산
optimizer.step() # 파라미터 업데이트
관련 개념
- •역전파 — 그래디언트 계산 알고리즘
- •손실 함수 — 최소화 대상
- •과적합 — 과도한 학습의 문제
참고문헌
- •Kingma & Ba (2014). Adam: A Method for Stochastic Optimization