Processing math: 100%

기본기 다지기/Optimization

[기본이론] 최적화 방법3- Momentum (수식o)

syveany 2024. 11. 3. 11:02

최적화 방법3- Momentum

앞에서 확률적 경사하강법(SGD)까지 정리했다. 이어서 모멘텀(Momentum)에 대해서 정리하려고 한다.

 

~ 목차 ~

0. 서론- 왜 갑자기 최적화를 공부하고 있는가

1. 최적화란

2. 종류

  2.1 경사하강법(GD)

  2.2 확률적 경사하강법(SGD)

  2.3 Momentum

  2.4 AdaGrad

  2.5 RMSProp

  2.6 Adam

3. 정리

 

2. 종류 

  2.3 Momentum

마리오카트 드리프트

  - 모멘텀(Momentum)은 운동량이라는 뜻으로, 이전의 이동방향을 계속 유지하려고 하는 성질, 즉 관성을 뜻한다. 최적화에서는 이러한 느낌을 살려서 가중치 매개변수를 갱신할 때 이전 기울기를 일부 반영하면서 현재 기울기에 따라 새로운 방향으로 이동하도록 만든다.

  - 모멘텀을 도입하면 SGD의 단점(비효율적인 지그재그 이동경로)이 개선될 수 있다.

     e.g. 마리오카트 같은 게임에서 방향을 바꿀 때 경로를 따라서 직선으로 움직이기보다는 드리프트로 끽~ 움직여야 최적의 경로로 빠르게 갈 수 있다. (이 감을 잡아야 순위권 안에 들 수 있을만큼 중요함)

 

  - 이 역시 수식으로 설명해보고자 한다. 모멘텀의 가중치 매개변수 업데이트 공식은 아래와 같다.

 

vαvηLW

(α: 모멘텀 계수, v속도)

 

WW+v

 

     전체적인 식을 보기 위해 위 두 식을 합쳐서 써보면 WW+αvηLW와 같고, 잘 정리해보면 아래와 같다.

W(WηLW)+αv

     어라? 어딘가 익숙하지 않은가!

     바로 경사하강법의 가중치 매개변수 업데이트 공식(WWηLW)에서 αv를 더한 형태임을 알 수 있다.

 

     - αv에서 α 모멘텀 계수로, 보통 0.9정도의 값으로 설정된다. 이전 기울기 90%, 현재 기울기 10%을 반영한다는 의미이다.

     - αv에서 v 속도로, 0으로 시작해서 갈수록 유의미한 속도를 가지게 된다. (+ v를 구하기 위해서는 두 식을 따로 봐야함.)

+ 나중을 위한 check!
   비록 모멘텀 수식 vαvηLW1α가 명시적으로 붙어 있지는 않지만, 이전 값에 α를 곱함으로써 지수적으로 가중치를 감소시키는 형태를 띄고 있기 때문에 지수 이동 평균의 특성을 가지고 있다!

 

 

  - 앞서 GD와 SGD를 설명할 때 든 손실함수 L의 예시를 그대로 사용해보고자 한다.

      e.g. L=e12+e22+e32+e42+e52일 때,

            GD, SGD, Momentum에서 가중치 매개변수를 1번 갱신할 때 필요한 행렬식은 각각 다음의 표와 같다.

            (Momentum에는 αvi항이 더해져 있음을 알 수 있다.)

Gradient Descent Stochastic Gradient Descent
[w1w2w3w4w5][w1w2w3w4w5]η[2e1e1w12e2e2w22e3e3w32e4e4w42e5e5w5] [w1w2w3w4w5][w1w2w3w4w5]η[02eieiwi0]
Mometum
[w1w2w3w4w5][w1w2w3w4w5]+[αv1η2e1e1w1αv2η2e2e2w2αv3η2e3e3w3αv4η2e4e4w4αv5η2e5e5w5]

 

Momentum에 의한 최적화 갱신 경로 (출처: 밑시딥)

 

  - 위 행렬식을 사용해서 f(x,y)=120x2+y2에서의 Momentum의 최적화 경로 계산해보면 오른쪽 그림과 같다. SGD보다 훨씬 부드러워짐을 알 수 있다!

  - 여기서 어떻게 더 개선을 할 수 있을까? Momentum에서는 학습률이 고정되어 있다. 학습 초기, 중기, 후기에 따라 필요한 학습률이 달라지기 때문에, 학습 단계에 맞게 학습률을 변화시킬 수 있다면 조금 더 효율적이고 안정적인 학습이 가능하다. 이러한 생각에서 나온 최적화 방법이 AdaGrad RMSProp이다. 조금 더 욕심을 내보자!

 

 

 

- 다음 포스팅에서는 단계에 따라 학습률을 변화시킬 수 있는 AdaGrad RMSProp에 대해서 정리해보려고 한다.

 

 

참고문헌

  1. 사이토 고키, 『밑바닥부터 시작하는 딥러닝』, Chapter 6: 학습 관련 기술들, 한빛미디어, 2017.
  2. 혁펜하임, "[Easy! 딥러닝] 6-4강. Momentum과 RMSProp," 동영상, 2023년 9월 19일. https://www.youtube.com/watch?v=-oHYAUhq5ao&t=355s.
  3. "마리오카트 배경화면," https://ko.phoneky.com/wallpapers/?id=w51w1069845 (accessed November 3, 2024).