토니의 연습장

SGD와 Adam 차이 본문

AI 일반/AI 면접 대비 기출문제

SGD와 Adam 차이

bellmake 2025. 3. 8. 22:13

🚩 핵심 요약

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 RateMomentum 개념을 결합한 방법입니다.

🔹 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