토니의 연습장
SGD와 Adam 차이 본문
🚩 핵심 요약
SGD(Stochastic Gradient Descent) vs Adam(Adaptive Moment Estimation)
구분SGD (확률적 경사 하강법)Adam (적응형 모멘트 추정)
핵심 아이디어 | 단순히 Gradient 방향으로 조금씩 움직이는 기본적인 방식 | Gradient의 Momentum 및 Adaptive learning rate 사용 |
학습 속도 | 비교적 느림. 최적의 지점을 찾기까지 시간이 오래 걸릴 수 있음 | 상대적으로 빠름. 더 빨리 최적 지점으로 수렴하는 경향이 있음 |
Learning Rate | 고정값 (수동으로 조정 필요) | 학습 도중 자동 조정 (적응형 learning rate) |
Momentum 사용 | 기본적인 SGD에는 없음 (Momentum SGD는 별도의 기법) | Momentum 개념 포함 (과거의 Gradient를 고려) |
Hyperparameter 개수 | 적음 (주로 Learning Rate) | 많음 (Learning Rate, β₁, β₂, ε 등) |
계산 복잡도 | 단순함. 메모리 사용이 적음 | 약간 복잡하며 메모리를 더 사용함 (Gradient 평균, 분산 관리) |
적용 분야 | 간단한 모델, 충분히 많은 데이터와 튜닝이 가능할 때 적합 | 복잡한 모델 (Transformer 등), 튜닝을 최소화하고 싶을 때 적합 |
수렴 특징 | 다소 불안정할 수 있으나, 잘 튜닝하면 더 좋은 최적점을 찾을 수 있음 | 안정적이고 빠르게 수렴하지만, 과적합되거나 다소 덜 정확한 결과가 나올 수도 있음 |
📌 원리의 차이 상세 설명
1. SGD (확률적 경사 하강법)
기본적인 경사 하강법의 방식은 다음과 같습니다.
w←w−η∂L∂ww \leftarrow w - \eta \frac{\partial L}{\partial w}
여기서 **𝜂 (η, 학습률)**은 고정된 값이며, 매번 gradient 방향으로만 이동합니다.
SGD는 다음과 같은 특징을 가집니다.
- 이전 gradient 값은 무시하고 현재 gradient 값만 사용하여 업데이트합니다.
- 계산이 단순하고 메모리 사용이 적지만, 학습률 조정이 필요합니다.
- 학습률이 너무 높으면 발산하고, 너무 낮으면 수렴 속도가 느려질 수 있습니다.
- Gradient 방향이 자주 바뀌면 업데이트가 불안정할 수 있습니다.
이러한 문제를 해결하기 위해 Momentum, Nesterov Accelerated Gradient(NAG) 등의 방법이 추가로 개발되었습니다.
2. Adam (Adaptive Moment Estimation)
Adam은 Adaptive Learning Rate와 Momentum 개념을 결합한 방법입니다.
🔹 Adam의 업데이트 규칙
Adam의 업데이트 공식은 다음과 같습니다.
mt=β1mt−1+(1−β1)gtm_t = \beta_1 m_{t-1} + (1-\beta_1) g_t vt=β2vt−1+(1−β2)gt2v_t = \beta_2 v_{t-1} + (1-\beta_2) g_t^2 m^t=mt1−β1t,v^t=vt1−β2t\hat{m}_t = \frac{m_t}{1-\beta_1^t}, \quad \hat{v}_t = \frac{v_t}{1-\beta_2^t} wt←wt−1−ηm^tv^t+ϵw_t \leftarrow w_{t-1} - \eta \frac{\hat{m}_t}{\sqrt{\hat{v}_t} + \epsilon}
🔹 Adam의 주요 개념
- gtg_t (현재 Gradient): 현재 시점의 gradient
- mtm_t (Momentum 개념): Gradient의 지수 이동 평균으로, 과거 Gradient 방향을 기억하고 가속하는 역할
- vtv_t (Adaptive learning rate 개념): Gradient의 제곱값에 대한 지수 이동 평균으로, 학습률을 자동으로 조정하는 역할
- β1,β2β_1, β_2: 이동 평균을 계산할 때 사용하는 상수 (보통 0.9, 0.999로 설정됨)
- ϵϵ (epsilon): 0으로 나누는 것을 방지하는 작은 상수 (보통 1e-8 사용)
🔹 Adam의 장점
- 과거 Gradient 방향과 크기를 기억하여 현재 방향을 결정 (Momentum 개념 포함)
- Gradient 크기가 큰 파라미터는 작은 학습률, 작은 Gradient를 가지는 파라미터는 큰 학습률로 조정 (Adaptive learning rate 개념 포함)
- 이로 인해 Adam은 매우 안정적이며 빠르게 최적점을 찾을 수 있음
📌 언제 SGD를 사용하고, 언제 Adam을 사용할까요?
✅ SGD가 적합한 경우
- 충분한 데이터와 계산 자원을 가지고 있는 경우
- Learning rate 튜닝을 잘할 수 있는 경우
- 긴 학습 시간이 허용되는 경우
- 최적화를 세밀하게 조정하여 최상의 성능을 목표로 하는 경우
📌 예시:
- ResNet 같은 이미지 분류 모델
- CNN 기반 모델 학습
✅ Adam이 적합한 경우
- 빠르게 학습해야 하고, Learning rate 튜닝을 최소화하고 싶은 경우
- 데이터가 적거나 학습 조건이 제한적인 경우
- 복잡한 모델이거나 초기 학습 안정성이 중요한 경우 (Transformer, NLP 모델 등)
- Hyperparameter 튜닝에 많은 노력을 기울이기 어려운 경우
📌 예시:
- Transformer 기반 NLP 모델 (GPT, BERT 등)
- 대규모 언어 모델 (LLM) 초기 학습
📌 실무에서의 활용 방식
- SGD (+Momentum): **컴퓨터 비전 분야 (CNN 모델 등)**에서 널리 사용됩니다.
- Adam: **NLP 분야 (Transformer, GPT, BERT 등)**에서 표준처럼 사용됩니다.
최근에는 Adam을 초기 학습에 사용한 후, 최종 성능을 높이기 위해 SGD로 변경하는 전략이 많이 활용됩니다.
📌 결론 정리
✅ SGD: 단순한 방식으로 Gradient 방향만 고려하며, 정확도를 높이기 위해서는 튜닝이 필요합니다.
✅ Adam: Momentum과 Adaptive Learning Rate 개념을 활용하여 빠르고 안정적인 수렴이 가능합니다.
✅ 실무에서는 Adam으로 빠르게 학습한 후, 최종적으로 성능을 올리기 위해 SGD로 변경하는 경우가 많습니다.
'AI 일반 > AI 면접 대비 기출문제' 카테고리의 다른 글
Transformer 요약 (0) | 2025.03.15 |
---|---|
F1 Score: Precision과 Recall의 조화 평균 (0) | 2025.03.12 |
ML/AI 엔지니어 면접 문항 총정리 (0) | 2025.03.12 |
Gradient descent (0) | 2025.03.08 |