새소식

머신러닝 & 딥러닝

[최적화] Adam(Adaptive Moment Estimation)

  • -

Adam(Adaptive Moment Estimation)은 RMSprop와 Momentum 기법을 결합한 최적화 알고리즘이다. 이 알고리즘은 기울기의 지수 가중 이동 평균(1st moment)과 기울기 제곱의 지수 가중 이동 평균(2nd moment)을 동시에 추정하여, 적응적으로 학습률을 조절한다.

Adam의 업데이트 규칙은 다음과 같다.

 

$m_t = \beta_1 m_{t-1} + (1-\beta_1) \nabla_{\theta_t} L(\theta_t)$
$v_t = \beta_2 v_{t-1} + (1-\beta_2) \nabla_{\theta_t} L(\theta_t) \odot \nabla_{\theta_t} L(\theta_t)$
$\hat{m}_t = \frac{m_t}{1-\beta_1^t}$
$\hat{v}_t = \frac{v_t}{1-\beta_2^t}$
$\theta_{t+1} = \theta_t - \frac{\eta_t}{\sqrt{\hat{v}_t} + \epsilon} \odot \hat{m}_t$

 

여기서 $m_t$는 기울기의 1st moment(지수 가중 이동 평균)를 나타내며, $v_t$는 기울기의 2nd moment(지수 가중 이동 평균)를 나타낸다. $\beta_1$과 $\beta_2$는 각각 1st 및 2nd moment의 감쇠 계수다(보통 $\beta_1 = 0.9$, $\beta_2 = 0.999$). $\odot$는 요소별 곱셈/아다마르 곱(element-wise multiplication/Hadamard product)을 나타내며, $\epsilon$은 0으로 나누는 것을 방지하는 작은 상수다(보통 $10^{-8}$). $\eta_t$는 학습률(learning rate)를 나타낸다.

 

Adam 알고리즘도 몇 가지 한계점은 있다.

  • 오버슈팅(overshooting) 문제: Adam은 초기 단계에서 기울기의 크기에 따라 학습률을 적응적으로 조절하기 때문에, 일시적으로 목표값을 초과하거나 학습률이 불안정해질 수 있다. 이로 인해 최적화 과정이 불안정해질 수 있다.
  • 일부 경우에서의 더 느린 수렴 속도: Adam은 일반적으로 다양한 최적화 문제에서 빠른 수렴 속도를 보이지만, 일부 경우에서는 다른 최적화 알고리즘(ex. SGD, RMSprop)에 비해 더 느린 수렴 속도를 보일 수 있다.
  • 무거운 계산량: Adam은 기울기의 1st 및 2nd moment를 추정하고 업데이트하는 과정에서 추가적인 계산량이 발생한다. 이로 인해 다른 최적화 알고리즘에 비해 계산량이 무거울 수 있다.

 

이런 한계점이 있음에도 불구하고, Adam은 다양한 최적화 문제에서 높은 성능을 보여주며, 많은 딥러닝 연구와 애플리케이션에서 널리 사용되는 알고리즘이다.

Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.