모멘텀 최적화기는 경사 기반 최적화를 가속화하는 방법으로, 특히 신경망 훈련에서 사용된다. 이는 표준 확률적 경사 하강법(SGD)의 느린 수렴과 진동 문제를 해결하기 위해 도입되었다. 과거 기울기의 정보를 담는 속도 벡터를 축적함으로써, 모멘텀은 업데이트 궤적을 평활화하고 일관된 방향으로는 더 빠르게 이동하며, 곡률이 높은 영역에서는 진동을 억제한다. 이 기법은 머신러닝과 딥러닝의 기초가 되며, Adam 및 RMSProp과 같은 많은 현대 최적화기의 기반을 형성한다.
모멘텀의 핵심 아이디어는 언덕을 굴러 내려가는 공에 비유할 수 있다. 공은 내려가면서 속도를 얻고, 그 운동은 현재 기울기와 이전 속도 모두에 영향을 받는다. 수학적으로 모멘텀의 업데이트 규칙은 다음과 같다: v_t = μ v_{t-1} - η ∇L(θ_t), θ_{t+1} = θ_t + v_t. 여기서 v는 속도 벡터, μ는 모멘텀 계수(일반적으로 0.9), η는 학습률, ∇L은 손실 함수의 기울기이다. 이 공식은 1980년대 유리 네스테로프(Yurii Nesterov)에 의해 대중화되었으며, 그는 또한 미리 앞을 내다본 위치에서 기울기를 평가하는 네스테로프 가속 경사(NAG)라는 변형을 제안하여 더 빠른 수렴을 제공했다.
역사적 발전
최적화에서의 모멘텀 개념은 현대 딥러닝보다 앞선다. 1964년, 버나드 위드로우와 마시안 호프는 업데이트를 안정화하기 위한 모멘텀의 한 형태를 포함하는 최소 평균 제곱(LMS) 알고리즘을 도입했다. 그러나 경사 하강법을 위한 공식적인 모멘텀 방법은 1964년 보리스 폴리악이 제안한 헤비볼(heavy-ball) 방법이다. 이 방법은 1983년 유리 네스테로프가 볼록 문제에 대한 최적 수렴 속도를 달성한 가속 경사 방법으로 개선했다. 1980년대와 1990년대에 모멘텀은 신경망 훈련의 표준 도구가 되었으며, 데이비드 E. 루멜하트, 제프리 힌턴, 로널드 윌리엄스의 교과서에 문서화되어 역전파를 대중화하고 학습 속도를 높이는 데 사용되었다.
수학적 공식화
모멘텀 최적화기는 속도 항을 도입하여 표준 SGD 업데이트를 수정한다. 표준 SGD 업데이트는 θ_{t+1} = θ_t - η ∇L(θ_t)이다. 모멘텀을 사용하면 업데이트는 다음과 같이 된다: v_t = μ v_{t-1} - η * ∇L(θ_t), θ_{t+1} = θ_t + v_t. 여기서 μ는 모멘텀 계수로, 일반적으로 0.5에서 0.9 사이로 설정된다. 더 높은 μ는 과거 기울기에 더 많은 가중치를 부여하여 더 부드럽지만 새로운 기울기 방향에 대한 반응은 잠재적으로 더 느리게 만든다. 속도 벡터 v는 과거 기울기의 지수 감소 평균을 축적한다. 이 평균화는 업데이트의 분산을 줄이며, 미니 배치를 사용하는 확률적 경사 하강법에서와 같이 기울기가 노이즈가 많을 때 특히 유용하다.
네스테로프 가속 경사(NAG)는 미리 앞을 내다본 지점에서 기울기를 계산하는 변형이다: v_t = μ v_{t-1} - η ∇L(θ_t + μ * v_{t-1}), θ_{t+1} = θ_t + v_t. 이 미리 보기는 NAG가 미래를 "엿볼" 수 있게 하여 경로를 더 빨리 수정하고 많은 환경에서 더 빠른 수렴을 달성할 수 있게 한다. 실제로 NAG는 특히 볼록 문제와 심층 네트워크에서 표준 모멘텀보다 더 나은 성능을 보이는 경우가 많다.
신경망 훈련에서의 역할
심층 신경망을 훈련할 때 모멘텀은 수렴을 가속화하고 안정성을 개선하기 위해 널리 사용된다. 모멘텀이 없으면 SGD는 가파른 방향으로 진동하고 완만한 방향으로는 느리게 진행될 수 있다. 모멘텀은 기울기를 평균화하여 진동을 억제하고, 일관된 방향으로 더 큰 단계를 밟을 수 있게 한다. 이는 손실 표면이 고도로 비볼록하고 많은 지역 최솟값과 안장점을 포함하는 여러 층을 가진 심층 아키텍처를 훈련할 때 특히 중요하다. 모멘텀은 속도를 축적하여 평평한 영역을 지나 최적화기를 운반할 수 있으므로 안장점을 탈출하는 데 도움이 된다.
TensorFlow 및 PyTorch와 같은 현대 딥러닝 프레임워크는 SGD 최적화기에 모멘텀을 표준 매개변수로 포함한다. 예를 들어, PyTorch의 torch.optim.SGD는 momentum 인수를 허용하고, TensorFlow의 tf.keras.optimizers.SGD에는 momentum 매개변수가 있다. 이러한 구현을 통해 실무자는 훈련 파이프라인에 모멘텀을 쉽게 추가할 수 있다.
변형 및 확장
여러 최적화기가 모멘텀 개념을 기반으로 구축되었다. 가장 주목할 만한 것은 2015년 디더릭 P. 킹마와 지미 바가 도입한 Adam(적응 모멘트 추정)이다. Adam은 모멘텀을 매개변수별 적응 학습률과 결합하여 기울기의 첫 번째 모멘트(평균)와 두 번째 모멘트(중심화되지 않은 분산)를 모두 사용한다. 이로 인해 Adam은 희소 기울기와 노이즈가 많은 데이터에 강건하며, 딥러닝에서 가장 인기 있는 최적화기 중 하나가 되었다. 제프리 힌턴이 강의 노트에서 도입한 RMSProp는 제곱 기울기의 이동 평균을 사용하여 학습률을 정규화하고 모멘텀의 한 형태도 통합한다. 다른 변형으로는 과거 기울기를 기반으로 학습률을 적응시키는 AdaGrad와 네스테로프 모멘텀과 Adam을 결합한 Nadam이 있다.
실용적 고려 사항
모멘텀을 사용할 때 모멘텀 계수 μ의 선택이 중요하다. 일반적인 기본값은 0.9이지만, 매우 노이즈가 많은 기울기의 경우 0.95 또는 0.99와 같은 값이 사용된다. 학습률 η는 모멘텀과 함께 조정되어야 한다. 더 높은 모멘텀은 종종 더 큰 학습률을 허용하지만, 너무 높은 학습률은 발산을 초래할 수 있다. 실제로 학습률 스케줄(예: 단계 감소 또는 코사인 어닐링)은 종종 모멘텀과 결합되어 좋은 성능을 달성한다. 또한 가중치 감쇠(L2 정규화)는 AdamW에서와 같이 모멘텀과 별도로 적용되는 경우가 많아 간섭을 피한다.
모멘텀은 대규모 언어 모델 및 트랜스포머 훈련과 같은 다른 최적화 맥락에서도 사용된다. 예를 들어, GPT 및 BERT와 같은 모델을 훈련할 때 종종 모멘텀이 포함된 Adam을 사용하여 대규모 매개변수 공간과 미니 배치 훈련의 노이즈가 많은 기울기를 처리한다.
다른 최적화기와의 비교
일반 SGD와 비교하여 모멘텀은 더 빠르게 수렴하고 학습률에 덜 민감하다. 그러나 조정해야 할 추가 하이퍼파라미터(μ)를 도입한다. Adam과 같은 적응형 방법과 비교하여 모멘텀은 더 단순하고 특히 컴퓨터 비전과 같은 일부 작업에서 더 나은 일반화 성능을 보이는 경우가 많다. 연구에 따르면 모멘텀이 있는 SGD는 특정 아키텍처에서 Adam보다 더 나은 테스트 정확도를 달성할 수 있지만, Adam은 초기 단계에서 더 빠르게 수렴한다. 이로 인해 훈련 중 Adam에서 모멘텀이 있는 SGD로 전환하는 것과 같은 하이브리드 접근 방식이 생겨났다.
영향과 유산
모멘텀 최적화기는 인공지능 분야에 지대한 영향을 미쳤다. 이는 최적화 도구 상자의 기본 도구로, 그렇지 않으면 비실용적일 심층 네트워크의 훈련을 가능하게 한다. 그 원리는 많은 다른 최적화기로 확장되었으며, 연구와 산업에서 여전히 표준 기준선으로 남아 있다. 모멘텀의 개념은 또한 강화 학습 및 생성형 AI와 같은 다른 영역에도 영향을 미쳐 훈련을 안정화하는 데 사용된다.
참고 문헌 및 추가 자료
포괄적인 이해를 위해 독자는 폴리악(1964)과 네스테로프(1983)의 원본 논문과, 모멘텀을 자세히 다루는 이안 굿펠로우, 요슈아 벤지오, 아론 쿠르빌의 딥러닝 교과서를 탐구하는 것이 좋다. PyTorch 및 TensorFlow의 문서와 같은 온라인 리소스는 모멘텀 구현에 대한 실용적인 지침을 제공한다.