딥러닝 ADAM optimizer 에 대한 설명 및 의미


딥러닝 최적화 기법 중 Adam optimizer에 대해 알아보겠습니다. Adam optimizer 는 Momentum optimizer와 RMSprop optimizer의 특징을 합친 optimizer입니다. Momentum optimizer에 대한 설명은 아래의 글을 보고 오세요.

딥러닝-최적화-기법-Momentum-optimizer-에-대한-설명-및-의미

Adam optimizer 설명

Adam optimizer를 제시한 논문 [1]에 있는 adam optimizer 내용을 보겠습니다.

$\alpha>0$:step size,

$0<\beta_1,\beta_2<1$

$W_t$는 parameter

$L_t$은 t번째의 loss

$g_t= \nabla L_t$

$m_0 = 0$

$v_0 = 0$

$t = 0$

$W_t$가 수렴할때 까지 다음을 반복한다.

  $t = t+1$

  $m_t = \beta_1 m_{t-1} + (1-\beta_1)g_t$ (momentum, 관성)

  $v_t = \beta_2 v_{t-1} + (1-\beta_2)g_t^2$ (rmsprop, 보폭)

  $\hat{m_t} = m_t / (1-\beta_1^t), \hat{v_t} = v_t / (1-\beta_2^2)$

  $W_t = W_{t-1} – \alpha \hat{m_t}/(\sqrt{g_t}+\epsilon)$

여기서 포인트는 세가지로 집을 수 있다.

  $m_t = \beta_1 m_{t-1} + (1-\beta_1)g_t$ (momentum, 관성이라는 점)

(참고글:딥러닝-최적화-기법-Momentum-optimizer-에-대한-설명-및-의미)

  $v_t = \beta_2 v_{t-1} + (1-\beta_2)g_t^2$ (rmsprop, 보폭이라는 점)

  $\hat{m_t} = m_t / (1-\beta_1^t), \hat{v_t} = v_t / (1-\beta_2^2)$는 가중치가 0이 되지 않기 위해 해주는 계산이다.

Adam은 Momentum과 RMSprop의 특징을 결합한 optimizer이다.

출처

[1]arXiv:1412.6980

Leave a Comment