확률적 경사 하강법(SGD)은 무작위로 선택된 데이터 하위 집합을 사용하여 기울기를 추정함으로써 경사 하강법을 근사하는 반복적 최적화 방법이다. SGD의 한계(예: 느린 수렴, 학습률에 대한 민감성)를 해결하기 위해 여러 변형이 개발되었다. 이러한 변형에는 모멘텀, 네스테로프 가속 경사법, AdaGrad, RMSProp, 그리고 Machine learning 및 Deep learning에서 모델을 효율적으로 훈련하는 데 널리 사용되는 Adam과 같은 현대적 적응형 방법이 포함된다.
SGD의 핵심 아이디어는 1950년대의 Robbins–Monro 알고리즘으로 거슬러 올라가며, 이 알고리즘은 근 찾기를 위한 확률적 근사를 도입했다. 기계 학습에서 SGD는 일반적으로 각 샘플의 손실 함수 합으로 구성된 목적 함수를 최소화한다. 기본 업데이트 규칙은 \( w := w - \eta \nabla Q_i(w) \)이며, 여기서 \( \eta \)는 학습률, \( Q_i \)는 \( i \)-번째 샘플에 대한 손실이다. 이 업데이트는 단순하지만 수렴이 느리고, 특히 손실 지형의 골짜기에서 진동할 수 있다. 변형들은 업데이트 방향, 학습률 또는 둘 다를 수정하여 이러한 문제를 해결한다.
모멘텀
모멘텀은 지속적인 기울기 방향으로 속도 벡터를 축적하여 SGD를 가속하는 기법이다. 1964년 Boris Polyak이 도입한 모멘텀은 물리적 관성을 모방한다. 단계 \( t \)에서의 업데이트는 \( v_t = \mu v_{t-1} - \eta \nabla Q_i(w_t) \) 및 \( w_{t+1} = w_t + v_t \)이며, 여기서 \( \mu \)는 모멘텀 계수(종종 0.9)이다. 이는 일관된 방향으로 옵티마이저가 더 빠르게 이동하도록 돕고 고곡률 영역에서 진동을 억제한다. 모멘텀은 특히 깊은 네트워크 훈련에 효과적이며, 노이즈가 있는 기울기 추정을 평활화한다.
네스테로프 가속 경사법
네스테로프 가속 경사법(NAG)은 선행 단계를 추가한 변형이다. 1983년 Yurii Nesterov가 제안한 NAG는 현재 위치가 아닌 투영된 위치 \( w_t + \mu v_{t-1} \)에서 기울기를 계산한다. 업데이트는 \( v_t = \mu v_{t-1} - \eta \nabla Q_i(w_t + \mu v_{t-1}) \) 및 \( w_{t+1} = w_t + v_t \)가 된다. 이 수정은 과도한 오버슈팅을 줄이고 미래 기울기에 대한 더 정확한 추정을 제공하여 볼록 설정에서 더 빠른 수렴을 이끈다. NAG는 신경망 훈련에 자주 사용되며 많은 라이브러리에 통합되었다.
AdaGrad
2011년 John Duchi, Elad Hazan, Yoram Singer가 도입한 AdaGrad는 제곱 기울기의 역사적 합계를 기반으로 매개변수별 학습률을 적응시킨다. 각 매개변수 \( w_j \)에 대해 업데이트는 \( w_j := w_j - \frac{\eta}{\sqrt{G_{j,j} + \epsilon}} \nabla Q_i(w_j) \)이며, 여기서 \( G_{j,j} \)는 제곱 기울기를 축적하고 \( \epsilon \)는 수치 안정성을 위한 작은 상수이다. AdaGrad는 희소 데이터에 잘 작동하며, 드문 특성에 더 큰 업데이트를 제공한다. 그러나 제곱 기울기의 축적으로 학습률이 시간이 지남에 따라 줄어들어 훈련이 조기에 중단될 수 있다.
RMSProp
2012년 Geoffrey Hinton의 강의 노트에서 제안된 RMSProp은 제곱 기울기의 지수 감쇠 평균을 사용하여 AdaGrad의 학습률 감소 문제를 해결한다. 업데이트는 이동 평균 \( E[g^2]_t = \rho E[g^2]_{t-1} + (1-\rho) g_t^2 \)을 유지하며, 여기서 \( \rho \)는 감쇠율(일반적으로 0.9)이다. 매개변수 업데이트는 \( w := w - \frac{\eta}{\sqrt{E[g^2]_t + \epsilon}} g_t \)이다. RMSProp은 비볼록 설정에서 효과적이며 순환 네트워크 및 딥러닝 모델 훈련에 널리 사용된다.
Adam
Adam(적응 모멘트 추정)은 2015년 Diederik Kingma와 Jimmy Ba가 도입한 것으로, 모멘텀과 RMSProp을 결합한다. 기울기의 첫 번째 모멘트(평균)와 두 번째 모멘트(분산)를 모두 유지하며, 초기 단계를 위한 편향 보정을 포함한다. 업데이트는 \( m_t = \beta_1 m_{t-1} + (1-\beta_1) g_t \), \( v_t = \beta_2 v_{t-1} + (1-\beta_2) g_t^2 \), 그리고 \( \hat{m}_t = m_t / (1-\beta_1^t) \), \( \hat{v}_t = v_t / (1-\beta_2^t) \)이다. 매개변수 업데이트는 \( w := w - \eta \frac{\hat{m}_t}{\sqrt{\hat{v}_t} + \epsilon} \)이다. Adam은 견고성과 빠른 수렴 덕분에 많은 Deep learning 작업에서 기본 옵티마이저가 되었다. 가중치 감쇠를 분리하는 AdamW와 수렴 문제를 해결하는 AMSGrad와 같은 변형도 개발되었다.
현대 적응형 방법
Adam 외에도 여러 적응형 방법이 제안되었다. AdaBelief(2020)는 현재 기울기 방향에 대한 신뢰를 기반으로 단계 크기를 조정한다. RAdam은 초기 훈련 단계를 안정화하기 위해 정류기를 도입한다. Google Brain이 2023년에 발견한 Lion(진화된 부호 모멘텀)은 부호 연산을 사용하여 메모리 사용을 줄이고 경쟁력 있는 성능을 보여준다. 이러한 방법은 효율성과 안정성이 중요한 대규모 언어 모델 및 기타 대규모 시스템 훈련에 자주 사용된다.
실용적 고려 사항
적절한 SGD 변형을 선택하는 것은 문제에 따라 달라진다. 볼록 문제의 경우 NAG는 이론적 보증을 제공한다. 깊은 네트워크의 경우 Adam 또는 RMSProp이 일반적인 시작점이다. 워밍업 및 감소와 같은 학습률 스케줄링은 종종 이러한 변형과 결합된다. 미니 배치 크기도 성능에 영향을 미치며, 더 큰 배치는 더 부드러운 기울기를 제공하지만 더 많은 메모리를 필요로 한다. 분산 훈련에서는 LARS(레이어별 적응형 속도 스케일링) 및 LAMB(레이어별 적응형 모멘트)와 같은 변형이 큰 배치로 확장하는 데 사용되며, AWS Trainium 및 Google Cloud과 같은 시스템에서 볼 수 있다.
기계 학습에 미치는 영향
SGD 변형은 현대 Artificial intelligence에 크게 기여했다. 이들은 Google DeepMind, Anthropic과 같은 조직이 수행하는 대규모 데이터셋에서 대규모 모델을 훈련할 수 있게 한다. 옵티마이저 선택은 모델 정확도와 훈련 속도에 영향을 미친다. 연구는 계속해서 새로운 변형을 정기적으로 개발하고 있다. 이러한 속성을 이해하는 것은 Machine learning 및 관련 분야의 실무자에게 필수적이다.
같이 보기
- Backpropagation
- learning-rate
- tool use