새소식

머신러닝 & 딥러닝

[최적화] AdaGrad(Adaptive Gradient)

  • -

AdaGrad(Adaptive Gradient)는 말그대로 학습률을 적응적으로 조정하는 최적화 알고리즘이다. 각 변수에 대해 학습률을 개별적으로 조절하므로, 변수마다 스케일이 다른 최적화 문제에 효과적이다.

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

 

$G_{t+1} = G_t + \nabla_{\theta_t} L(\theta_t) \odot \nabla_{\theta_t} L(\theta_t)$
$\theta_{t+1} = \theta_t - \frac{\eta_t}{\sqrt{G_{t+1}+\epsilon}} \odot \nabla_{\theta_t} L(\theta_t)$

 

여기서 $G_t$는 기울기(gradient)의 제곱의 누적합을 나타낸다. $\odot$는 요소별 곱셈/아다마르 곱(element-wise multiplication/Hadamard product)을 나타내며, $\epsilon$은 0으로 나누는 것을 방지하는 작은 상수다(보통 $10^{-8}$). $\eta_t$는 학습률(learning rate)를 나타낸다.

 

AdaGrad 알고리즘은 각 변수의 기울기에 따라 개별적으로 학습률을 조절하면서 최적화를 진행한다. 이를 통해 변수 간 스케일 차이에 따른 영향을 줄이고 더 안정적으로 학습이 진행된다. 하지만 AdaGrad의 단점 중 하나는 학습이 진행됨에 따라 학습률이 지속적으로 감소하여 결국 학습이 느려지거나 멈출 수 있다는 점이다. 이러한 문제를 개선하기 위해 RMSprop, Adam 등의 알고리즘이 제안되었다.

Contents

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

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