최적화 방법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−η∂L∂W
(α: 모멘텀 계수, v: 속도)
W←W+v
전체적인 식을 보기 위해 위 두 식을 합쳐서 써보면 W←W+αv−η∂L∂W와 같고, 잘 정리해보면 아래와 같다.
W←(W−η∂L∂W)+αv
어라? 어딘가 익숙하지 않은가!
바로 경사하강법의 가중치 매개변수 업데이트 공식(W←W−η∂L∂W)에서 αv를 더한 형태임을 알 수 있다.
- αv에서 α는 모멘텀 계수로, 보통 0.9정도의 값으로 설정된다. 이전 기울기 90%, 현재 기울기 10%을 반영한다는 의미이다.
- αv에서 v는 속도로, 0으로 시작해서 갈수록 유의미한 속도를 가지게 된다. (+ v를 구하기 위해서는 두 식을 따로 봐야함.)
+ 나중을 위한 check!
비록 모멘텀 수식 v←αv−η∂L∂W에 1−α가 명시적으로 붙어 있지는 않지만, 이전 값에 α를 곱함으로써 지수적으로 가중치를 감소시키는 형태를 띄고 있기 때문에 지수 이동 평균의 특성을 가지고 있다!
- 앞서 GD와 SGD를 설명할 때 든 손실함수 L의 예시를 그대로 사용해보고자 한다.
e.g. L=e12+e22+e32+e42+e52일 때,
GD, SGD, Momentum에서 가중치 매개변수를 1번 갱신할 때 필요한 행렬식은 각각 다음의 표와 같다.
(Momentum에는 αvi항이 더해져 있음을 알 수 있다.)
Gradient Descent | Stochastic Gradient Descent |
[w1w2w3w4w5]←[w1w2w3w4w5]−η[2e1∂e1∂w12e2∂e2∂w22e3∂e3∂w32e4∂e4∂w42e5∂e5∂w5] | [w1w2w3w4w5]←[w1w2w3w4w5]−η[0⋮2ei∂ei∂wi⋮0] |
Mometum | |
[w1w2w3w4w5]←[w1w2w3w4w5]+[αv1−η⋅2e1∂e1∂w1αv2−η⋅2e2∂e2∂w2αv3−η⋅2e3∂e3∂w3αv4−η⋅2e4∂e4∂w4αv5−η⋅2e5∂e5∂w5] |

- 위 행렬식을 사용해서 f(x,y)=120x2+y2에서의 Momentum의 최적화 경로를 계산해보면 오른쪽 그림과 같다. SGD보다 훨씬 부드러워짐을 알 수 있다!
- 여기서 어떻게 더 개선을 할 수 있을까? Momentum에서는 학습률이 고정되어 있다. 학습 초기, 중기, 후기에 따라 필요한 학습률이 달라지기 때문에, 학습 단계에 맞게 학습률을 변화시킬 수 있다면 조금 더 효율적이고 안정적인 학습이 가능하다. 이러한 생각에서 나온 최적화 방법이 AdaGrad와 RMSProp이다. 조금 더 욕심을 내보자!
- 다음 포스팅에서는 단계에 따라 학습률을 변화시킬 수 있는 AdaGrad와 RMSProp에 대해서 정리해보려고 한다.
참고문헌
- 사이토 고키, 『밑바닥부터 시작하는 딥러닝』, Chapter 6: 학습 관련 기술들, 한빛미디어, 2017.
- 혁펜하임, "[Easy! 딥러닝] 6-4강. Momentum과 RMSProp," 동영상, 2023년 9월 19일. https://www.youtube.com/watch?v=-oHYAUhq5ao&t=355s.
- "마리오카트 배경화면," https://ko.phoneky.com/wallpapers/?id=w51w1069845 (accessed November 3, 2024).
'기본기 다지기 > Optimization' 카테고리의 다른 글
[기본이론] 최적화 방법6- Adam (수식o) (4) | 2024.11.08 |
---|---|
[기본이론] 최적화 방법5- RMSProp (수식o, 그래프o) (0) | 2024.11.06 |
[기본이론] 최적화 방법4- AdaGrad (수식o) (0) | 2024.11.04 |
[기본이론] 최적화 방법2- Stochastic Gradient Descent (수식o) (4) | 2024.11.02 |
[기본이론] 최적화 방법1- Gradient Descent (수식o) (8) | 2024.11.01 |