Adam 최적화 완전 정복: Adaptive Learning Rate의 핵심 원리

Bean·2025년 8월 6일
0

인공지능

목록 보기
104/123

🔍 Adam이란?

Adam(Adaptive Moment Estimation)은 적응형 학습률 최적화 알고리즘입니다. 전통적인 확률적 경사 하강법(SGD)이 모든 파라미터에 고정된 학습률을 사용하는 것과 달리, Adam은 학습률을 동적으로, 파라미터마다 다르게 조정합니다.


⚙️ Adam의 핵심 아이디어

Adam은 두 가지 핵심 요소를 결합하여 동작합니다:

  1. 1차 모멘트 (Momentum): 기울기의 지수 이동 평균
  2. 2차 모멘트 (RMSProp): 기울기 제곱의 지수 이동 평균

이 두 가지 모멘트를 기반으로 파라미터별로 학습률을 조정하며, 빠른 수렴과 안정적인 학습을 유도합니다.


📘 1차 모멘트란?

1차 모멘트는 기울기의 지수 이동 평균을 의미합니다. 단순 평균이 아닌, 최근 기울기에 더 많은 가중치를 주는 방식입니다.

mt=β1mt1+(1β1)gtm_t = \beta_1 m_{t-1} + (1 - \beta_1) g_t
  • gtg_t: 현재 시점의 기울기
  • β1\beta_1: 일반적으로 0.9

이는 모멘텀(Momentum)과 동일한 개념으로, 파라미터가 진동하지 않고 일관된 방향으로 나아가도록 도와줍니다.


📗 2차 모멘트란?

2차 모멘트는 기울기 제곱의 지수 이동 평균입니다. 학습률을 기울기의 분산에 따라 조정할 수 있도록 돕습니다.

vt=β2vt1+(1β2)gt2v_t = \beta_2 v_{t-1} + (1 - \beta_2) g_t^2
  • gt2g_t^2: 기울기의 제곱
  • β2\beta_2: 일반적으로 0.999

이 방식은 RMSProp에서 유래했으며, 기울기의 크기에 따라 학습률을 자동으로 조절해 줍니다.


🔁 편향 보정

Adam은 초기 학습 단계에서 모멘트들이 0에 가깝게 치우치는 편향을 보정합니다.

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}

🔧 최종 업데이트 식

Adam의 파라미터 업데이트는 다음과 같이 이루어집니다:

Wt+1=Wtηv^t+ϵm^tW_{t+1} = W_t - \frac{\eta}{\sqrt{\hat{v}_t} + \epsilon} \hat{m}_t
  • η\eta: 초기 학습률
  • ϵ\epsilon: 분모가 0이 되는 것을 방지하기 위한 작은 수 (예: 10810^{-8})

📊 RMS vs 분산의 관계

RMS(Root Mean Square)와 분산은 비슷해 보이지만 개념적으로 다릅니다.

  • 분산: 데이터의 편차의 제곱 평균

    σ2=1N(xiμ)2\sigma^2 = \frac{1}{N} \sum (x_i - \mu)^2
  • RMS: 데이터 자체의 제곱 평균의 제곱근

    RMS=1Nxi2\text{RMS} = \sqrt{ \frac{1}{N} \sum x_i^2 }

만약 데이터의 평균이 0이라면, RMS의 제곱은 분산과 같아집니다.


📘 RMSProp에서의 RMS 의미

RMSProp에서 말하는 "RMS"는 기울기 제곱의 지수 이동 평균을 기반으로 한 값입니다. 즉, 분산의 추정치처럼 사용되며, 학습률을 안정적으로 조절하기 위한 기준이 됩니다.


🧠 지수 이동 평균(EWMA)이란?

Adam이 사용하는 평균 방식은 단순 평균이 아닌 지수 이동 평균입니다.

vt=βvt1+(1β)θtv_t = \beta v_{t-1} + (1 - \beta) \theta_t
  • 최근(과거) 데이터에 더 큰 가중치를 주어, 노이즈를 줄이면서도 추세 변화에 빠르게 대응합니다.
  • 과거 데이터를 모두 반영하지만, 오래된 데이터는 점점 영향이 작아집니다.

✅ Adam 요약

개념역할수식
1차 모멘트 mtm_t기울기 평균 (모멘텀)mt=β1mt1+(1β1)gtm_t = \beta_1 m_{t-1} + (1 - \beta_1) g_t
2차 모멘트 vtv_t기울기 제곱 평균 (RMSProp)vt=β2vt1+(1β2)gt2v_t = \beta_2 v_{t-1} + (1 - \beta_2) g_t^2
업데이트학습률 조절 & 파라미터 갱신Wt+1=Wtηv^t+ϵm^tW_{t+1} = W_t - \frac{\eta}{\sqrt{\hat{v}_t} + \epsilon} \hat{m}_t

📎 마무리

Adam은 다음과 같은 이유로 딥러닝의 대표 최적화 알고리즘으로 자리잡았습니다:

  • 학습률을 파라미터별로 자동 조절
  • 안정적이고 빠른 수렴
  • 모멘텀과 RMSProp의 장점을 결합

하지만 모든 상황에 Adam이 최적은 아니며, 경우에 따라 SGD with Momentum, AdaGrad, RMSProp 등을 선택하는 것이 더 좋을 수도 있습니다. 실험과 데이터의 특성을 고려하여 적절한 옵티마이저를 선택하는 것이 중요합니다.


profile
AI developer

0개의 댓글