Paper Review/Deep Learning

[OUTTA Alpha팀 논문 리뷰 요약] Part 2-4. Optimizer의 종류와 특성

YeonJuJeon 2024. 12. 28. 15:08

논문 링크1: https://arxiv.org/pdf/1609.04747

논문 링크2: https://arxiv.org/pdf/1412.6980

논문 링크3: https://arxiv.org/pdf/1711.05101

 

OUTTA 논문 리뷰 링크: [2024-2] 유경석 - Optimizer의 종류와 특성

 

[2024-2] 유경석 - Optimizer의 종류와 특성

https://arxiv.org/pdf/1609.04747https://arxiv.org/pdf/1412.6980https://arxiv.org/pdf/1711.05101 0. Gradient Descent란?Gradient descent는 model parameter $\theta$에 대한 손실함수 $J(\theta)$를 최소화시키기 위해서, 현재 시점에서의

blog.outta.ai


0. Gradient Descent

  1. 개념
    • 모델 파라미터 $\theta$에 대한 손실함수 $J(\theta)$최소화하려고, $\nabla J(\theta)$의 반대 방향으로 파라미터를 업데이트
    • 직관적으로, 함수 그래프의 내리막길을 따라가서 Valley(최솟값)에 도달하는 과정
  2. 수식 표현 $\theta \leftarrow \theta - \eta \,\nabla J(\theta)$
    • $\eta$: 학습률(learning rate)
  3. 변형
    • Batch Gradient Descent: 전체 데이터 이용 → 안정적이나 연산량 큼
    • Stochastic Gradient Descent(SGD): 매 샘플마다 업데이트 → 빠르지만 변동 큼
    • Mini-batch Gradient Descent: 소규모 묶음(batch)을 사용하는 절충안
  4. 한계
    • 학습률 $\eta$가 고정이므로, 상황별 동적 조정 어려움 → 학습 불안정·느린 수렴 가능
    • 이를 극복하기 위해 Momentum, RMSProp, Adam 등이 제안됨


1. Momentum

  1. 배경
    • SGD는 최소점을 찾는 과정에서 진동이 심해 시간이 오래 걸릴 수 있음
    • 이를 보완하기 위해 “관성”(Momentum) 개념을 추가
  2. 업데이트 식 $v_t = \gamma v_{t-1} + \eta \,\nabla J(\theta) \quad,\quad \theta \leftarrow \theta - v_t$
    • $v_t$: “속도(velocity)” 역할, $\gamma\approx 0.9$ 사용
    • $\gamma$: 관성(모멘텀)을 얼마나 줄지 결정
  3. 특징
    •  
    • 이전 단계와 같은 방향으로 기울기가 작용 시 가속, 반대 방향이면 감속
    • Local minimum 탈출빠른 수렴에 도움
  4. Nesterov Accelerated Gradient (NAG)
    • Momentum의 변형 → 더 빠른 수렴
    • 기존 파라미터를 $(\theta - \gamma v_{t-1})$로 먼저 예측 이동 후, 그 지점에서 기울기를 계산
    $v_t = \gamma v_{t-1} + \eta \,\nabla J(\theta - \gamma v_{t-1}),\quad \theta \leftarrow \theta - v_t$
    • “앞서 가서 미리 살피는” 효과로 더 효율적인 업데이트

2. RMSProp

  1. 배경
    • Adagrad 아이디어: 파라미터별 학습률을 다르게 적용 → 변화가 적은 파라미터는 큰 스텝, 많은 파라미터는 작은 스텝
    • 문제: Adagrad는 시간이 지남에 따라 학습률이 계속 감소 → 학습 중후반에 거의 업데이트가 되지 않음
  2. 핵심 아이디어
    • RMSProp은 Adagrad의 $\sum g^2$ 대신 지수 이동 평균($E[g^2]$) 사용
    • 지수평균으로 누적량이 무한정 커지지 않아, 학습률이 너무 작아지지 않게
  3. 업데이트 식 $$E[g^2]_t = \gamma \,E[g^2]_{t-1} + (1-\gamma)\,g_t^2 \quad,\quad \theta \leftarrow \theta - \frac{\eta}{\sqrt{E[g^2]_t + \epsilon}} \,g_t$$
    • 보통 $\gamma=0.9$, $\eta=0.001$ 제안
  4. AdaDelta
    • RMSProp과 유사한 지수평균 기법
    • 분자에도 RMS( $\sqrt{E[\Delta \theta^2]}$ ) 개념을 적용해, 학습률을 자동 조정
    • 초기 $\eta$ 설정 없이도 적절한 스텝 사이즈를 찾음

3. Adam (Adaptive Moment Estimation)

  1. 배경
    • Momentum + RMSProp 방식을 결합 → 현대 딥러닝에서 가장 널리 쓰이는 옵티마이저
  2. Algorithm(핵심 단계)
    1. 초기 파라미터: $\alpha=0.001, \beta_1=0.9, \beta_2=0.999, \epsilon=10^{-8}$
    2. Bias-corrected 1st & 2nd moment 계산 $$m_t = \beta_1 m_{t-1} + (1-\beta_1)\,g_t,\quad v_t = \beta_2 v_{t-1} + (1-\beta_2)\,g_t^2$$ $$\hat{m}_t = \frac{m_t}{1-\beta_1^t},\quad \hat{v}_t = \frac{v_t}{1-\beta_2^t}$$
    3. 파라미터 업데이트 $$\theta \leftarrow \theta - \frac{\alpha}{\sqrt{\hat{v}_t} + \epsilon}\,\hat{m}_t$$
  3. 특징
    • 학습 초기에 바이어스 보정(Bias correction) 단계로 모멘텀과 분산추정값($\hat{m}_t,\hat{v}_t$)을 안정화
    • 빠른 수렴과 동시에 좋은 일반화 성능(대체로)

4. AdamW

  1. 배경
    • Adam + Weight decay(L2 regularization) → Overfitting 방지, 일반화(generalization) 성능 강화
    • Adam에 L2 정규화를 단순히 곱하면 weight decay 효과가 덜 반영되어, SGD 대비 일반화 이슈 발생
  2. 업데이트 식  $$\theta \leftarrow (1-\lambda)\,\theta - \alpha \,\nabla f_t(\theta)$$
    • Weight decay: $\theta$를 일정 비율 $(1-\lambda)$만큼 줄이는 효과
  3. AdamWR
    • Warm Restart 기법으로 학습률을 주기적으로 높였다가 줄이는 패턴 → 다양한 최소점 탐색
    • Local minimum에 너무 깊이 빠지지 않고, 더 평탄한(Generalized) 최적점 유도

결론

  • Gradient Descent는 딥러닝 최적화의 기본 원리지만, 고정 학습률로 인해 수렴 속도 및 안정성에 한계
  • Momentum/NAG: 관성 활용 → 빠르고 안정적으로 최적점 접근
  • RMSProp/AdaDelta: 파라미터별 학습률 조정 → 학습률이 지나치게 줄어드는 문제 해결
  • Adam: Momentum + RMSProp 혼합 → 현재 표준으로 가장 많이 사용
  • AdamW: Adam에 Weight decay를 효과적으로 반영 → 일반화 성능 강화