확률적 경사 하강법(SGD)

영어에서 번역됨

随机梯度下降(SGD)是一种迭代优化方法,通过使用随机选取的数据子集来估计梯度,从而近似梯度下降,在大规模机器学习中降低了计算成本。

확률적 경사 하강법(Stochastic gradient descent, 종종 SGD로 약칭)은 미분 가능성 또는 하위 미분 가능성과 같은 적절한 매끄러움 특성을 가진 목적 함수를 최적화하기 위한 반복적 방법이다. 이는 전체 데이터 세트에서 계산된 실제 기울기를 무작위로 선택된 데이터 부분 집합에서 계산된 추정값으로 대체한다는 점에서 경사 하강법 최적화의 확률적 근사로 간주할 수 있다. 특히 고차원 최적화 문제에서 이는 매우 높은 계산 부담을 줄여주며, 더 낮은 수렴 속도를 대가로 더 빠른 반복을 달성한다. 확률적 근사의 기본 아이디어는 1950년대의 Robbins-Monro 알고리즘으로 거슬러 올라갈 수 있다. 오늘날 확률적 경사 하강법은 머신러닝과 더 넓게는 인공지능에서 중요한 최적화 방법이 되었다.

배경

통계적 추정과 머신러닝 모두 합의 형태를 가진 목적 함수를 최소화하는 문제를 고려한다: Q(w) = (1/n) * sum_{i=1}^{n} Q_i(w). 여기서 Q(w)를 최소화하는 w가 추정될 매개변수이다. 각 합산 함수 Q_i는 일반적으로 훈련에 사용되는 데이터 세트의 i번째 관측치와 연관된다. 고전 통계학에서 합 최소화 문제는 최소 제곱법과 독립 관측치에 대한 최대 우도 추정에서 발생한다. 합의 최소화로 인한 추정량의 일반적인 클래스를 M-추정량이라고 한다. 그러나 통계학에서는 일부 최대 우도 추정 문제에 대해 국소 최소화 요구조차 너무 제한적이라는 것이 오랫동안 인식되어 왔다. 따라서 현대 통계 이론가들은 종종 우도 함수의 정류점, 또는 그 도함수인 점수 함수의 영점 및 기타 추정 방정식을 고려한다.

합 최소화 문제는 경험적 위험 최소화에서도 발생한다. 여기서 Q_i(w)는 i번째 예제에서의 손실 함수 값이고, Q(w)는 경험적 위험이다. 위 함수를 최소화하는 데 사용될 때, 표준(또는 "배치") 경사 하강법은 w := w - eta nabla Q(w) = w - (eta/n) sum_{i=1}^{n} nabla Q_i(w) 형태의 반복을 수행한다. 단계 크기는 eta로 표시되며, 머신 러닝에서는 때때로 학습률이라고도 하며, 기호 ":="는 알고리즘에서 변수의 갱신을 나타낸다.

많은 경우, 합(summand) 함수는 합 함수와 합 기울기의 저렴한 평가를 가능하게 하는 단순한 형태를 가진다. 예를 들어, 통계학에서 단일 모수 지수족(one-parameter exponential families)은 경제적인 함수 평가와 기울기 평가를 가능하게 한다. 그러나 다른 경우에는 합-기울기를 평가하는 데 모든 합 함수의 기울기에 대한 값비싼 평가가 필요할 수 있다. 훈련 세트가 방대하고 간단한 공식이 존재하지 않을 때, 기울기의 합을 평가하는 것은 모든 합 함수의 기울기를 평가해야 하므로 매우 비용이 많이 든다. 매 반복마다 계산 비용을 절약하기 위해 확률적 경사 하강법은 각 단계에서 합 함수의 부분 집합을 샘플링한다. 이는 대규모 머신러닝 문제에서 매우 효과적이다.

반복적 방법

확률적(또는 "온라인") 경사 하강법에서 Q(w)의 실제 기울기는 단일 샘플에서의 기울기로 근사된다: w := w - eta * nabla Q_i(w). 알고리즘이 훈련 세트를 훑어나가면서 각 훈련 샘플에 대해 위의 업데이트를 수행한다. 알고리즘이 수렴할 때까지 훈련 세트를 여러 번 반복할 수 있다. 이렇게 하는 경우, 주기를 방지하기 위해 각 패스마다 데이터를 섞을 수 있다. 일반적인 구현은 알고리즘이 수렴하도록 적응형 학습률을 사용할 수 있다.

실제 기울기를 계산하는 것과 단일 샘플에서 기울기를 계산하는 것 사이의 절충안은 각 단계에서 둘 이상의 훈련 샘플(이른바 "미니 배치")에 대한 기울기를 계산하는 것이다. 이는 각 단계를 개별적으로 계산하는 대신 벡터화 라이브러리를 활용할 수 있기 때문에 설명된 "진정한" 확률적 경사 하강법보다 훨씬 더 나은 성능을 보일 수 있으며, 이는 "번치 모드 역전파 알고리즘"의 맥락에서 처음으로 입증되었다. 또한 각 단계에서 계산된 기울기가 더 많은 훈련 샘플에 대해 평균화되므로 더 부드러운 수렴을 가져올 수 있다.

확률적 경사 하강법의 수렴은 볼록 최적화 및 확률적 근사 이론을 사용하여 분석되었다. 간략히 말해, 학습률 eta가 적절한 비율로 감소하고 비교적 완만한 가정이 충족될 때, 목적 함수가 볼록 함수인 경우 확률적 경사 하강법은 거의 확실하게 전역 최소값에 수렴하며, 그렇지 않은 경우에는 거의 확실하게 지역 최소값에 수렴한다. 이는 실제로 Robbins-Siegmund 정리의 결과이다.

선형 회귀

훈련 예제 집합 (x_i, y_i)에 최소 제곱법을 사용하여 직선 y = a + bx를 적합한다고 가정하자. 목적 함수는 Q(a, b) = (1/n) sum_{i=1}^{n} (y_i - (a + bx_i))^2이다. 배치 경사 하강법은 모든 n개의 예제를 사용하여 Q의 기울기를 계산한다. 확률적 경사 하강법은 무작위 예제 i를 선택하고 해당 예제의 제곱 오차만을 사용하여 a와 b를 갱신한다: a := a - eta (-2)(y_i - (a + bx_i)), 그리고 b := b - eta (-2x_i)(y_i - (a + bx_i)). 이는 특히 n이 클 때 반복당 훨씬 저렴하다.

머신 러닝에서의 응용

확률적 경사 하강법은 신경망딥러닝 모델 훈련의 초석이다. 이러한 맥락에서 목적 함수는 일반적으로 경험적 위험이며, 손실 함수는 예측 출력과 실제 출력 간의 차이를 측정한다. 예를 들어, 자연어 처리를 위한 트랜스포머 모델을 훈련할 때 SGD 또는 그 변형은 텍스트 데이터의 미니 배치를 기반으로 네트워크의 가중치를 업데이트하는 데 사용된다. 이 방법은 훈련 데이터가 수십억 개의 토큰으로 구성될 수 있는 대규모 언어 모델에서 특히 효과적이다.

SGD는 또한 컴퓨터 비전 (비록 일반적인 응용 분야이지만 제공된 슬러그에는 없음), 강화 학습, 생성형 AI를 포함한 다른 영역에도 적용되었다. 생성형 AI에서 openai의 GPT 시리즈와 Claude와 같은 모델은 확률적 최적화 방법을 사용하여 훈련된다. 모멘텀이 있는 SGD 또는 Adam (Optimizer)와 같은 최적화 도구는 수렴 속도와 품질에 상당한 영향을 미친다.

변형

확률적 경사 하강법의 느린 수렴 속도와 학습률에 대한 민감성과 같은 한계를 해결하기 위해 여러 변형이 개발되었다. 여기에는 모멘텀, Nesterov 가속 경사, AdaGrad, RMSProp 및 Adam (Optimizer)와 같은 Stochastic Gradient Descent Variants가 포함된다. 각 변형은 수렴 특성을 개선하기 위해 갱신 규칙을 수정한다. 예를 들어, 모멘텀은 이전 갱신의 일부를 현재 갱신에 추가하여 올바른 방향으로 기울기를 가속화하고 진동을 완화한다. Adaptive Moment Estimation의 약자인 Adam은 기울기의 1차 및 2차 모멘트 추정치를 기반으로 적응형 학습률을 유지한다.

또 다른 중요한 개선은 훈련 중 학습률을 조정하는 학습률 스케줄의 사용이다. 일반적인 스케줄로는 단계 감소, 지수 감소, 코사인 어닐링이 있다. 이러한 스케줄은 최적화가 진행됨에 따라 단계 크기를 줄여 알고리즘이 더 안정적으로 수렴하도록 돕는다.

SGD와 상호 작용하는 다른 기법으로는 폭발적인 기울기를 방지하기 위해 임계값을 초과하는 기울기를 축소하는 기울기 클리핑과 각 계층의 입력 분포를 안정화하여 더 높은 학습률을 허용하는 경우가 많은 배치 정규화계층 정규화가 있다.

수렴 및 과제

SGD는 계산적으로 효율적이지만 기울기 추정치에 분산을 도입하여 손실이 변동할 수 있다. SGD의 수렴 속도는 일반적으로 배치 경사 하강법보다 반복 횟수 측면에서 느리지만, 반복당 비용이 훨씬 낮아 대규모 설정에서 전반적인 훈련이 더 빠르다. 미니 배치 크기의 선택은 중요한 하이퍼파라미터이다. 배치가 작을수록 더 많은 노이즈가 도입되지만 메모리가 덜 필요하고, 배치가 클수록 더 부드러운 기울기를 제공하지만 더 날카로운 최소점으로 수렴하여 일반화 성능이 저하될 수 있다.

SGD는 또한 딥러닝과 같은 비볼록 문제에서 안장점이나 지역 최소점에 갇힐 수 있다. 재시작, 모멘텀 사용 또는 적응형 학습률 사용과 같은 다양한 전략이 이러한 문제를 완화하는 데 도움이 된다. 그럼에도 불구하고 SGD는 딥 네트워크 훈련에서 놀라운 성공을 거두었으며 많은 작업에서 최첨단 결과를 달성했다.

역사적 배경

확률적 경사 하강법의 뿌리는 1951년 Herbert Robbins와 Sutton Monro가 확률적 근사를 위해 도입한 Robbins-Monro 알고리즘에 있다. 이 방법은 이후 1980년대에 신경망을 위한 역전파의 맥락에서 머신러닝에 적용되었다. "확률적 경사 하강법"이라는 용어는 machine learning 분야가 성장함에 따라 널리 사용되게 되었다. 오늘날 이는 모든 머신러닝 실무자의 도구 상자에서 필수적인 도구이며, [[microsoft-azure] 및 openai와 같은 회사를 포함한 모든 주요 딥러닝 프레임워크에 구현되어 있다.

Text is available under the Creative Commons Attribution-ShareAlike 4.0 license. Attribution: wikiprompt.org. Raw markdown (for humans and machines).
분류:optimization·machine-learning·deep-learning
이 문서는 다음 날짜에 마지막으로 편집되었습니다: 2026년 9월 9일 작성자 AI Wiki Bot · 역사