Hello Computer Vision

딥러닝 Momentum(관성)에 대한 이해 본문

딥러닝

딥러닝 Momentum(관성)에 대한 이해

지웅쓰 2022. 11. 25. 18:20

해당 내용에 대한 출처와 이미지는 밑에 남겨 두었습니다.

 

우리가 아무리 혁신적인 아이디어와 모델을 가지고 있더라도 가장 중요한 것은 

이 모델이 잘 학습할 수 있느냐다. 

본인이 가지고 있는 모델의 100% 성능을 끌어내기 위해 사람들은 여러 하이퍼 파라미터를 훈련한다.

 

여기서 잘 학습할 수 있느냐는 gradient descent과정에서 잘 수렴하냐이다.

해당 함수를 convex function(볼록 함수)라고 한다.

만약 손실함수가 이러하다면 초기 weight가 어떻든 잘 수렴할 것입니다.

그렇지만 우리가 만나는 함수들은 대부분 non convex function일 텐데요,

이렇게 무시무시한 함수 사이에서 우리의 손실값은 minimum값을 찾아야합니다.

잘 찾으면 좋겠지만 아마 local minimum 안에 빠질 확률이 높습니다.

 

함수가 복잡하지 않더라도 이런 함수에서는 어떨까요?

검은색 점이 아주 밸런스있게 자리잡은 것을 보실 수 있습니다.

이러한 것을 Saddle Point(안장점)라고 하는데 말의 안장과 비슷한 모양 위에 있다고 해서 붙여진 이름입니다.

A-B 부분에서는 최솟값이지만 C-D 부분에서는 최댓값인 것을 확인할 수 있습니다.

해당 지점에서의 미분 값은 0일 것이기 때문에 더 이상 학습이 이루어지지 않으며 종료될 것이며

이럴 경우 모델의 성능은 형편없을 것입니다.

 

앞서 말한 Local Minimum, Saddle Point 문제들이 학습에 방해가 되는 요인인데요,

이러한 문제점들을 해결하기 위해 도입된 것이 Momentum(관성)입니다.

 

가볍게 실생활 예시로 들어보겠습니다.

우리가 공을 던진다면 공은 떨어진 곳에 멈추는 것이 아니라 남아있는 운동에너지에 대하여

추가로 이동할 것인데요, 이것이 학습할 때 적용이 됩니다.

학습 단계에서 업데이트를 하는 과정에서 이전 학습에서 업데이트한 크기를 고려하는 것입니다.

이를 수식으로 나타내 보자면

$$v_{t} = \gamma v_{t-1} + \eta ▽f(x_{t-1})$$

$v_{t} $ : t번째 time step에서 x의 이동 벡터

$\gamma$ : 관성계수(momentum term)

$\eta$ : 학습률(Learning rate)

 

지금까지는 학습할 때 $\eta ▽f(x_{t-1})$ 크기만을 update했다면 momentum을 추가한다면

이전 update할 때 이동했던 크기인 $v_{t-1}$ 을 추가로 더해주는 것입니다.

 

처음에 제가 든 생각은 Learning rate은 0.0001처럼 작은 값을 주는데 momentum값을 왜 이렇게 크게 줄까

생각을 했었는데 기존에 이동했던 크기인 $v_{t-1}$이 이미 learning rate가 곱해져서 작은 값이니

momenum 값은 주로 0.9를 주곤 합니다.

 

이렇게 momenutm 을 추가하게 된다면 학습할 때 update하는 값에 추가로 값을 주면서

Local minimum 및 saddle point 에서 나올 가능성이 더 커지는 것입니다.

 

내용 출처 : https://heytech.tistory.com/382

 

[Deep Learning] 최적화(Optimizer): (1) Momentum

본 포스팅에서는 딥러닝 최적화(optimizer) 기법 중 하나인 Momentum의 개념에 대해 알아봅니다. 먼저, Momentum 기법이 제안된 배경인 경사 하강법(Gradient Descent)의 한계점에 대해 다루고 알아보도록 하

heytech.tistory.com