딥러닝 최적화 기법 중 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