논문 링크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
- 개념
- 모델 파라미터 $\theta$에 대한 손실함수 $J(\theta)$를 최소화하려고, $\nabla J(\theta)$의 반대 방향으로 파라미터를 업데이트
- 직관적으로, 함수 그래프의 내리막길을 따라가서 Valley(최솟값)에 도달하는 과정
- 수식 표현 $\theta \leftarrow \theta - \eta \,\nabla J(\theta)$
- $\eta$: 학습률(learning rate)
- 변형
- Batch Gradient Descent: 전체 데이터 이용 → 안정적이나 연산량 큼
- Stochastic Gradient Descent(SGD): 매 샘플마다 업데이트 → 빠르지만 변동 큼
- Mini-batch Gradient Descent: 소규모 묶음(batch)을 사용하는 절충안
- 한계
- 학습률 $\eta$가 고정이므로, 상황별 동적 조정 어려움 → 학습 불안정·느린 수렴 가능
- 이를 극복하기 위해 Momentum, RMSProp, Adam 등이 제안됨
1. Momentum
- 배경
- SGD는 최소점을 찾는 과정에서 진동이 심해 시간이 오래 걸릴 수 있음
- 이를 보완하기 위해 “관성”(Momentum) 개념을 추가
- 업데이트 식 $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$: 관성(모멘텀)을 얼마나 줄지 결정
- 특징
-
- 이전 단계와 같은 방향으로 기울기가 작용 시 가속, 반대 방향이면 감속
- Local minimum 탈출 및 빠른 수렴에 도움
-
- Nesterov Accelerated Gradient (NAG)
- Momentum의 변형 → 더 빠른 수렴
- 기존 파라미터를 $(\theta - \gamma v_{t-1})$로 먼저 예측 이동 후, 그 지점에서 기울기를 계산
- “앞서 가서 미리 살피는” 효과로 더 효율적인 업데이트
2. RMSProp
- 배경
- Adagrad 아이디어: 파라미터별 학습률을 다르게 적용 → 변화가 적은 파라미터는 큰 스텝, 많은 파라미터는 작은 스텝
- 문제: Adagrad는 시간이 지남에 따라 학습률이 계속 감소 → 학습 중후반에 거의 업데이트가 되지 않음
- 핵심 아이디어
- RMSProp은 Adagrad의 $\sum g^2$ 대신 지수 이동 평균($E[g^2]$) 사용
- 지수평균으로 누적량이 무한정 커지지 않아, 학습률이 너무 작아지지 않게 함
- 업데이트 식 $$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$ 제안
- AdaDelta
- RMSProp과 유사한 지수평균 기법
- 분자에도 RMS( $\sqrt{E[\Delta \theta^2]}$ ) 개념을 적용해, 학습률을 자동 조정
- 초기 $\eta$ 설정 없이도 적절한 스텝 사이즈를 찾음
3. Adam (Adaptive Moment Estimation)
- 배경
- Momentum + RMSProp 방식을 결합 → 현대 딥러닝에서 가장 널리 쓰이는 옵티마이저
- Algorithm(핵심 단계)
- 초기 파라미터: $\alpha=0.001, \beta_1=0.9, \beta_2=0.999, \epsilon=10^{-8}$
- 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}$$
- 파라미터 업데이트 $$\theta \leftarrow \theta - \frac{\alpha}{\sqrt{\hat{v}_t} + \epsilon}\,\hat{m}_t$$
- 특징
- 학습 초기에 바이어스 보정(Bias correction) 단계로 모멘텀과 분산추정값($\hat{m}_t,\hat{v}_t$)을 안정화
- 빠른 수렴과 동시에 좋은 일반화 성능(대체로)
4. AdamW
- 배경
- Adam + Weight decay(L2 regularization) → Overfitting 방지, 일반화(generalization) 성능 강화
- Adam에 L2 정규화를 단순히 곱하면 weight decay 효과가 덜 반영되어, SGD 대비 일반화 이슈 발생
- 업데이트 식 $$\theta \leftarrow (1-\lambda)\,\theta - \alpha \,\nabla f_t(\theta)$$
- Weight decay: $\theta$를 일정 비율 $(1-\lambda)$만큼 줄이는 효과
- AdamWR
- Warm Restart 기법으로 학습률을 주기적으로 높였다가 줄이는 패턴 → 다양한 최소점 탐색
- Local minimum에 너무 깊이 빠지지 않고, 더 평탄한(Generalized) 최적점 유도
결론
- Gradient Descent는 딥러닝 최적화의 기본 원리지만, 고정 학습률로 인해 수렴 속도 및 안정성에 한계
- Momentum/NAG: 관성 활용 → 빠르고 안정적으로 최적점 접근
- RMSProp/AdaDelta: 파라미터별 학습률 조정 → 학습률이 지나치게 줄어드는 문제 해결
- Adam: Momentum + RMSProp 혼합 → 현재 표준으로 가장 많이 사용
- AdamW: Adam에 Weight decay를 효과적으로 반영 → 일반화 성능 강화