반응형
| Optimizer | URL |
| 옵티마이저란? [optimizer] | https://ai-duck1.tistory.com/16 |
| SGD[Stochastic Gradient Descent] | https://ai-duck1.tistory.com/17 |
| 모멘텀[Momentum] | https://ai-duck1.tistory.com/18 |
| RMSProp |
https://ai-duck1.tistory.com/22 |
| Adam | https://ai-duck1.tistory.com/23 |
| Adamw | https://ai-duck1.tistory.com/35 |
모멘텀[Momentum]은
기울기의 방향만 보는 것이 아닌
이전 업데이트의 속도를 반영해서
파라미터를 더 부드럽고 빠르게 이동시키는 방식
모멘텀은 확률적 경사 하강법[Stochastic Gradient Descent, SGD]의 문제점을 극복한 옵티마이저이다.
모멘텀의 필요한 이유
일반 SGD의 문제
- 손실 함수 표면이 곡선이 심하거나 구불구불할 때
- 한 방향으로는 급격하게 진동하나 다른 방향으로는 천천히 이동 시
-> 학습이 느려짐
모멘텀
- 이전 기울기의 평균 방향을 기억하고 더 강하게 움직임
- 진동을 줄이고, 학습 속도를 높임
수식으로 보기
1. 속도 벡터 업데이트
$v_t=\gamma \cdot v_{t-1}+\eta\bigtriangledown L(\theta)v_t$
- v_t : 현재 속도
- γ : 모멘텀 계수 (예: 0.9)
- η : 학습률
- ∇L(θ) : 현재 기울기
2. 파라미터 업데이트
$\theta =\theta -v_t$
즉, 현재 기울기만 보는 것이 아니라, 과거 방향을 더함
SGD와의 차이
| 비교 항목 | SGD | 모멘텀 |
| 업데이트 기준 | 현재 기울기만 | 현재+이전 방향(속도) |
| 진동 | 클 가능성 있음 | 줄어듦 |
| 학습 속도 | 느릴 가능성 있음 | 빠름 |
| 경사면에 빠짐 | 빠질 가능성 있음 | 빠져나오기 쉬움 |
PyTorch에서 사용하기
optimizer = torch.optim.SGD(model.parameters(), lr=0.01, momentum=0.9)
momentum=0.9를 주면 90%는 이전 방향
10%는 현재 기울기를 반영함
요약
모멘텀은 "관성"을 이용해 더 빠르고 안정적으로 학습하도록 돕는 SGD의 개선형이다.
반응형
'AI숏츠' 카테고리의 다른 글
| Adam이란? [Adaptive Moment Estimation] | AI숏츠 (0) | 2025.09.25 |
|---|---|
| RMSProp이란? | AI숏츠 (0) | 2025.09.25 |
| SGD란?[Stochastic Gradient Descent] | AI숏츠 (0) | 2025.09.22 |
| 옵티마이저란? (Optimizer) | AI숏츠 (0) | 2025.09.22 |
| 딥러닝의 역사: GPT-3 | AI숏츠 (0) | 2025.09.13 |