누누와데이터

AdaGrad(Adaotive Method) 개념 및 코드 구현 본문

딥러닝

AdaGrad(Adaotive Method) 개념 및 코드 구현

happynunu 2021. 7. 10. 00:06

개념

핸즈온 머신러닝 2 책에서는 Adagrad의 원리를 다음과 같이 소개한다. 한쪽이 길쭉한 그릇 모양의 손실함수가 있다고 가정해보자. Gradient descent 알고리즘은 global minimum으로 곧장 향하지 않고 가장 가파른 경사를 따라 빠르게 내려가기 시작해서 골짜기 아래로 느리게 이동한다. AdaGrad 알고리즘은 global minimum의 방향을 좀 더 일찍 감지하고 global minimum쪽으로 좀더 정확한 방향을 잡아서 이동한다.  

일반적인 Gradient descent 알고리즘의 경우에는, 모든 파라메터에 대해 동일한 step-size (학습률) 이 적용된다. 이에 반해 Adaptive 방법은, 각각의 매개변수에 맞춰서 학습률을 변화시키는 학습을 진행하면서, 학습률을 점차 줄여가는 방법 이다. 학습률 감소시키는 기법인 learning rate decay와 비슷하다고 할 수 있다.

 

 

 

공식설명

첫번째 단계는 가중치에 대한 gradient의 제곱을 G벡터에 누적한다. 다시말해 si는 xi에 대한 비용함수의 편미분을 제곱하여 누적한다. 비용함수가 i 번째 차원을 따라 가파르다면 si는 반복이 진행됨에 따라 점점 커질 것이다.

두번째 단계는 경사하강법과 거의 같다. 한가지 큰 차이는 griadient 벡터를 첫번째 식에서 구한 g벡터에 root를 취하고 엡실론 값을 더해서 나누어 스케일 조정하는 점이다. 

AdaGrad 알고리즘은 학습률을 감소시키지만 경사가 완만한 차원보다 가파른 차원에 대해 더 빠르게 감소된다. 이를 adaptive learning rate라고 부르면 전역 최적점 방향으로 곧장 가도록 갱신하는데 도움이 된다. 

하지만 Ada Grad 알고리즘은 하습률이 너무 감소되어 전역 최적점에 도착하기 전에 알고리즘이 자주 멈추긴 해서 자주 쓰이지는 않지만, 이를 알면 다른 adaptive 학습률 옵티마이저를 이해하는 데 도움이 된다.

실제 코드 구현

AdaGrad 함수
데이터, 함수생성 및 plot
결과

 

참고

오렐리앙 제롱 핸즈온 머신러닝 2판

'딥러닝' 카테고리의 다른 글

Momentum 개념 및 코드 구현  (0) 2021.07.09
Comments