본문 바로가기
Optimization

[Optimization]Adam(Adaptive Momentum Estimation), Adamax

by 어떻게든 되겠지~ 2024. 6. 13.

앞선 글에서 Gradient Descent에서 Momentum(운동량), Velocity(속도)를 조정하는 방법들에 대해서 알아보았습니다

 

[Optimization]Momentum, Nesterov Accelerated Gradient(NAG)

앞서 Gradient Descent 에서 Mini - Batch GD, SGD를 공부해보았습니다 [Optimization][Gradient Descent] Batch와 Gradient Descent(Full batch, Mini-batch, SGD)[Optimization] Gradient Descent(경사하강법)! Optimization에 대해서 이제 처

self-objectification.tistory.com

 

 

이번 글에서는 Momentum, Velocity를 모두 조정하는 방법인 Adam에 대해 알아보도록 하겠습니다

Adam(Adaptive Momoment Estimation)

Adam은 Momentum과 RMSProp의 장점을 결합한 Gradient Descent 
Momentum의 특징인 $v_i$와 RMSProp의 특징인 기울기의 제곱을 지수 이동 평균한 값을 수식에 활용합니다

 

$$
\begin{aligned}
&w_{t+1} = w_t -\eta \cdot \frac{\hat{M(t)}}{\sqrt{\hat{V(t)} + \epsilon}}\\
&v(t) = {\beta}_1 \cdot v(t-1) + (1- {\beta}_1) \cdot \eta\nabla{L(w_t)}\\
&G(t) = {\beta}_2 \cdot G(t-1) + (1-{\beta}_2) \cdot (\nabla{L(w_t)})^2
\end{aligned}
$$

 

$$\hat{v(t)} = \frac{v(t)}{1 - \beta_1^t}, \quad \hat{G(t)} = \frac{G(t)}{1 - \beta_2^t}$$

 

$\hat{v(t)},\; \hat{G(t)}$ 는 초기 학습 단계에서 gradient가 작을 때 적절한 learning rate를 선택하기 위해 bias가 수정된 값이다

 

$v(t)$는 Momentum에서와 같이 Gradient에 EMA를 적용한 값을 사용한 것입니다

여기서 $\beta_1$은 보통 0.9의 값을 사용합니다

&$v(t) = {\beta}_1 \cdot v(t-1) + (1- {\beta}_1) \cdot \eta\nabla{L(w_t)}\\$$

 

[Optimization]Momentum, Nesterov Accelerated Gradient(NAG)

앞서 Gradient Descent 에서 Mini - Batch GD, SGD를 공부해보았습니다 [Optimization][Gradient Descent] Batch와 Gradient Descent(Full batch, Mini-batch, SGD)[Optimization] Gradient Descent(경사하강법)! Optimization에 대해서 이제 처

self-objectification.tistory.com

 

$G(t)$는 RMSprop에서와 같이 Gradient의 제곱에 EMA를 적용한 값을 사용한 것입니다

여기서 $\beta_2$은 보통 0.99의 값을 사용합니다

$$G(t) = {\beta}_2 \cdot G(t-1) + (1-{\beta}_2) \cdot (\nabla{L(w_t)})^2$$

 

[Optimization]Adagrad(Adaptive Gradient), RMSProp(Root Mean Squared Propagation), Adadelta(Adaptive delta)

앞선 글에서는 Gradient Descent의 운동량(Momentum)을 조정하여 수렴속도를 빠르게 하는 방법인 Momentum, Nesterov Accelerated Gradient(NAG) Optimizer를 살펴보았습니다  [Optimization]Momentum, Nesterov Accelerated Gradient(

self-objectification.tistory.com


Adamax

Adamax는 Adam 논문에서 Extension으로 제안된 알고리즘입니다

AdamL2 Norm을 기반으로 Learning rate를 조정하는데 AdamaxNP Norm으로 확장하여 Learning rate를 조정하도록 확장시킨 알고리즘입니다

하지만 p가 매우 클 경우, NP Norm이 극단적인 값을 갖는 등 매우 불안정할 수 있다고 합니다

 

$v(t)$는 Adagrad에서 사용한 것과 동일하게 사용합니다

$$v(t) = {\beta}_1 \cdot v(t-1) + (1- {\beta}_1) \cdot \eta\nabla{L(w_t)}$$

 

Adam은 L2 Norm을 사용하였지만 LP Norm으로 확장시킨 식은 아래와 같습니다

$$V(t) = {\beta}_2 \cdot V(t-1) + (1-{\beta}_2) \cdot (\nabla{L(w_t)})^p = (1 - \beta_2^p) \sum \limits_{i=1}^{t} {\beta_2}^{p(t-i)} \Big| \frac{\partial L}{\partial w(t)} \Big|$$

 

여기서 $p \rightarrow \infty $일 때 $V(t)^{\frac{1}{p}}$를 $G(t)$라고 하면

$$\underset{p \rightarrow \infty}\lim {V(t)}^{\frac{1}{p}} = G(t) = \max\big(\beta_2 G(t-1), \Big| \frac{\partial L}{\partial w(t)}\Big|\big)$$

 

따라서 Adamax의 알고리즘은 아래와 같습니다

$$w(t+1) = w(t) - \frac{\eta}{G(t)} \hat{v(t)}$$

반응형