Machine Learning/기법

[Optimizer] AdaGrad (Adaptive Gradient)

파송송 2022. 8. 15. 14:32
728x90

AdaGrad

 

  • 일정한 학습률을 사용하지 않고 변수마다 스텝마다 학습률을 다르게 하는 기법
  • 시간이 지날수록 학습률이 줄어듦
  • 큰 변화를 겪은 변수는 학습률이 대폭 작아지고 작은 변화를 겪은 변수의 학습률은 소폭으로 작아짐
  •  feature 마다 중요도, 크기가 다르기 때문에 제안됨


수식

$$ g_{t} = g_{t-1}+ (\nabla f(x_{t-1}))^{2}  $$

$$ x_{t}= x_{t-1} -  \frac{ \alpha }{ \sqrt{g_{t}+ \epsilon }}  .  \nabla f(x_{t-1})  $$

 

  • \( g \) : 기울기 누적 크기
  • \( \epsilon \) : 분모가 0이 되는 것을 방지하는 작은 값
  • \(  \alpha  \) : 학습률 (Learning rate)

x, y 는 \( \theta \) 값이다.

 

단점

  • 스텝이 진행되면 누적 \( g \) 의 값이 커져 학습률이 작아져 학습이 거의 되지 않는 문제가 발생함
  • 이를 개선한 Optimizer는 RMSProp이다
728x90