Momentum

운동량을 뜻하는 단어가 의미하는 바와 같이, 모멘텀 기법은 아래의 수식과 같이 공이 그릇의 바닥을 구르는 듯한 움직임을 보여준다.
$$ v \gets \alpha v - \eta \frac{\partial L}{\partial W} \\ W \gets W + v $$ SGD와 마찬가지로 W는 가중치 매개변수, L은 손실함수, $\eta$는 학습률이다. 새로나오는 변수중 v는 속도(velocity)고, $\alpha$로 속도의 크기를 설정해줌으로써 물체가 아무런 힘을 받지 않을 때도 서서히 하강시키게 된다. 보통 $\alpha$값은 0.9등의 값으로 설정한다.
SGD의 단점에서 예를 든 함수와 비교하며 변수의 변화에 따라 Momentum이 어떤식으로 학습하는지 알아보자.
  1. $\eta : 0.1, \alpha : 0.9$, 반복횟수 30회

  2. 위와 같이 지면을 따라 구르듯이 진행함을 알 수 있다. 그런데 여기서 최솟값인 0.0을 지나서 계속 굴러지나가는(?) 모습이 보이는데, 반복 횟수를 높여 그냥 지나가버리는지 아니면 다시 최솟값을 향해 굴러오는지 확인해보자. 우선 현재 최솟값부근을 확대하면 아래와 같다.
  3. $\eta : 0.1, \alpha : 0.9$, 반복횟수 60회

  4. 최솟값을 향해 잘 굴러옴을 알 수 있다. 확대해서 보면 아래와 같다.

    이번엔 속도의 크기를 낮춰보자.
  5. $\eta : 0.1, \alpha : 0.8$, 반복횟수 60회

  6. 속도크기가 0.9일때와 비교해보면, 진행방향이 아래-위가 바뀔때의 위치가 작아졌음을 볼 수 있다. 즉, 이 $\alpha$값이 작을수록 조금씩만 진행된다고 할 수 있다.
    이번에는 크기를 키워보자.
  7. $\eta : 0.1, \alpha : 1$, 반복횟수 60회

  8. 1로 설정하니 학습이 거의 이루어지지 않아 보인다. 실제로 반복횟수를 훨씬 더 큰 값으로 하면 아래와 같이 확연히 알 수 있다.

    그렇다면 1보다 커지면 어떻게 되는지 알아보자.
  9. $\eta : 0.1, \alpha : 1.1$

  10. 위에서 알 수 있듯이 아예 학습이 안된다.

댓글

이 블로그의 인기 게시물

Loss Function

Backpropagation

SGD = Stochastic Gradient Descent