확률적 경사 하강법(Stochastic Gradient Descent)

•
2026년 11월 01일 발행•2026년 11월 01일 수정
요약

무작위로 뽑은 일부 표본의 기울기로 파라미터를 반복 갱신하는 최적화 알고리즘

중급
경사 하강법과 미분, 기댓값과 분산 같은 확률 개념에 대한 이해가 필요하며, 학습률·배치 크기 설정이 학습에 미치는 영향을 해석할 수 있어야 한다.

#개념

확률적 경사 하강법(Stochastic Gradient Descent, SGD)은 전체 학습 데이터 대신 무작위로 뽑은 일부 표본에서 계산한 기울기로 모델 파라미터를 반복 갱신하는 최적화 알고리즘이다. 정확한 기울기를 추정치로 대체하기 때문에 한 번의 갱신 비용이 데이터 크기와 무관하게 작으며, 오늘날 딥러닝 학습의 기본 골격을 이룬다.
기원은 1951년 허버트 로빈스(Herbert Robbins)와 서턴 먼로(Sutton Monro)가 발표한 확률적 근사(Stochastic Approximation) 방법이다. 이 연구는 잡음이 섞인 관측만으로 함수의 근을 반복적으로 찾는 절차를 제시했으며, 이후 기대 손실을 최소화하는 문제에 적용되면서 머신러닝 최적화의 이론적 토대가 되었다. 대규모 머신러닝에서 SGD가 갖는 이론적·실무적 의미는 Bottou, Curtis, Nocedal(2018)의 리뷰에 폭넓게 정리되어 있다.
파라미터 $\theta$와 손실 함수 $L(\theta) = \frac{1}{N}\sum_{i=1}^{N} \ell_i(\theta)$가 주어지면, SGD는 $t$번째 단계에서 미니배치 $B_t$를 뽑아 $\theta_{t+1} = \theta_t - \eta_t \frac{1}{|B_t|}\sum_{i \in B_t} \nabla \ell_i(\theta_t)$로 갱신한다. 여기서 $\eta_t$는 학습률(Learning Rate)이다. 미니배치를 균등하게 뽑으면 기울기 추정치의 기댓값이 전체 기울기 $\nabla L(\theta_t)$와 같아지므로, 이 추정치는 불편 추정량(Unbiased Estimator)이 된다.
한 번의 갱신에 사용하는 표본 수에 따라 경사 하강법은 세 가지로 나뉜다. 표본 수는 기울기의 정확도와 갱신 속도 사이의 균형을 결정하며, 그 차이는 다음과 같다.
표본 수에 따른 경사 하강법 비교
  • 배치 경사 하강법(Batch Gradient Descent): 매 단계 전체 데이터의 기울기를 계산한다. 기울기가 정확하고 갱신 경로가 매끄럽지만, 데이터가 클수록 한 단계의 비용이 커지고 메모리 부담도 크다.
  • 순수 확률적 경사 하강법(Pure SGD): 표본 하나로 기울기를 계산한다. 갱신이 매우 빠르고 온라인 학습에 적합하지만, 기울기 잡음이 커서 경로가 크게 흔들린다.
  • 미니배치 경사 하강법(Mini-batch Gradient Descent): 수십에서 수천 개 표본으로 기울기를 계산한다. GPU 병렬 연산을 활용하면서 잡음을 적절히 줄일 수 있어 딥러닝의 사실상 표준이며, 실무에서 SGD라 하면 대개 이 방식을 가리킨다.
미니배치 기울기 추정치의 분산은 대략 배치 크기 $b$에 반비례한다. 배치가 작을수록 잡음이 커져 수렴 경로가 불안정해지지만, 이 잡음이 단점만은 아니다. 잡음 덕분에 안장점(Saddle Point)이나 얕은 국소 최소점에서 빠져나오기 쉬워지고, 일종의 암묵적 정칙화(Regularization) 효과를 내어 일반화에 도움이 된다는 해석이 널리 논의된다.
학습률은 SGD의 수렴을 좌우하는 가장 중요한 하이퍼파라미터다. Robbins-Monro 조건은 학습률 수열이 $\sum_{t} \eta_t = \infty$와 $\sum_{t} \eta_t^2 < \infty$를 동시에 만족해야 한다는 것으로, 전자는 최적점까지 충분히 멀리 이동할 수 있게 하고 후자는 잡음의 누적을 억제한다. $\eta_t \propto 1/t$ 형태의 감쇠 스케줄이 대표적인 예이며, 볼록 문제에서는 적절한 가정 아래 이 조건으로 최적해 수렴이 보장된다.
실제 딥러닝에서는 이론적 조건을 그대로 따르기보다 계단식 감쇠, 코사인 감쇠(Cosine Annealing), 초기 워밍업(Warmup) 등 경험적인 학습률 스케줄(Learning Rate Schedule)을 사용한다. 상수 학습률의 SGD는 최적점 근처에서 잡음 크기에 비례하는 영역을 맴돌기 때문에, 학습 후반에 학습률을 낮추면 손실이 한 단계 더 떨어지는 현상이 자주 관찰된다.
기본 SGD는 손실 곡면이 한 방향으로 길쭉할 때 좁은 축을 따라 진동하며 느리게 전진한다. 이 진동을 줄이고 수렴을 가속하기 위해 다음과 같은 기법이 함께 쓰인다.
모멘텀 계열 기법
  • 모멘텀(Momentum): 과거 기울기를 누적한 속도 $v_{t+1} = \mu v_t + g_t$를 유지하고 $\theta_{t+1} = \theta_t - \eta v_{t+1}$로 갱신한다. 일관된 방향으로는 가속하고 부호가 자주 바뀌는 축에서는 진동을 상쇄하며, $\mu$는 보통 0.9 근처를 쓴다.
  • 네스테로프 가속 경사(Nesterov Accelerated Gradient, NAG): 모멘텀으로 미리 이동한 지점에서 기울기를 계산해 속도를 보정한다. Sutskever 등(2013)은 잘 조정된 모멘텀이 심층 신경망 학습의 곡률 문제를 다루기에 충분함을 보였다.
  • 가중치 감쇠(Weight Decay): 갱신마다 파라미터를 일정 비율로 줄여 큰 가중치를 억제한다. SGD에서는 학습률로 스케일을 맞추면 L2 정칙화와 동치이다.
배치 크기와 학습률은 함께 조정해야 한다. Goyal 등(2017)은 미니배치 크기를 $k$배로 키우면 학습률도 $k$배로 키우는 선형 스케일링 규칙(Linear Scaling Rule)과, 학습 초기에 작은 학습률에서 목표값까지 점진적으로 올리는 워밍업(Warmup)을 결합했다. 그 결과 ResNet-50을 미니배치 8,192로 256개 GPU에서 1시간 만에 학습하면서도 작은 배치와 같은 정확도를 얻었다.
일반화 측면에서는 배치 크기와 해의 성질에 대한 논의가 이어져 왔다. Keskar 등(2017)은 큰 배치로 학습하면 손실 곡면의 날카로운 최소점(Sharp Minimum)에 수렴하는 경향이 있고, 작은 배치는 기울기 추정의 잡음 덕분에 평탄한 최소점(Flat Minimum)에 도달해 일반화가 더 좋다고 보고했다. 다만 평탄함의 척도가 파라미터 재매개변수화에 따라 달라질 수 있다는 반론도 있어, 이 관계는 여전히 연구가 진행 중이다.
대규모 모델은 여러 장치에 나누어 학습하며, 가장 보편적인 방식은 데이터 병렬(Data Parallelism)이다. 각 작업자가 모델 사본을 가지고 서로 다른 미니배치의 기울기를 계산한 뒤 이를 합산해 갱신하므로, 전체적으로는 큰 배치의 SGD와 같다. 기울기를 모으는 방식에 따라 다음과 같이 구분한다.
분산 SGD의 동기화 방식
  • 동기식 SGD(Synchronous SGD): 모든 작업자의 기울기를 올리듀스(All-Reduce)로 평균한 뒤 한꺼번에 갱신한다. 단일 장치에서 큰 배치로 학습한 것과 같아 재현성이 좋지만, 가장 느린 작업자를 기다려야 한다.
  • 비동기식 SGD(Asynchronous SGD): 작업자가 공유 파라미터에 기울기를 각자 반영하므로 대기 시간이 없다. 대신 오래된 파라미터로 계산한 기울기(Stale Gradient)가 섞여 수렴이 불안정해질 수 있으며, Hogwild!(2011)는 희소한 문제에서 잠금 없이 공유 메모리를 갱신해도 거의 최적의 수렴 속도를 얻을 수 있음을 보였다.
오늘날 딥러닝에서는 동기식 데이터 병렬이 주류이며, PyTorch의 DistributedDataParallel처럼 기울기 통신을 역전파 계산과 겹쳐 실행해 통신 지연을 숨기는 구현이 널리 쓰인다. 배치 크기가 작업자 수에 비례해 커지므로, 앞서 설명한 선형 스케일링 규칙과 워밍업이 분산 학습 설정에서 특히 중요해진다.
SGD는 구조가 단순한 만큼 설정에 따라 결과가 크게 달라진다. 실무에서 참고할 만한 사항은 다음과 같다.
실무 팁
  • 데이터 셔플링: 에폭마다 학습 데이터를 섞어 미니배치가 편향되지 않도록 한다. 정렬된 데이터로 학습하면 기울기 추정이 편향되어 수렴이 크게 나빠질 수 있다.
  • 학습률 탐색: 학습률을 로그 스케일로 탐색하고, 손실이 발산하지 않는 범위의 큰 값 근처를 출발점으로 삼는다. 배치 크기를 바꾸면 학습률도 함께 재조정한다.
  • 특징 스케일링: 입력 특징의 스케일이 크게 다르면 손실 곡면이 길쭉해져 진동이 커진다. 표준화나 배치 정규화로 이를 완화하면 같은 학습률로 더 안정적으로 학습된다.
  • 기울기 클리핑(Gradient Clipping): 기울기 노름이 임계값을 넘으면 잘라내어 순환 신경망이나 대형 모델에서 발생하는 기울기 폭주를 막는다.
SGD는 Adam 같은 적응형 옵티마이저의 출발점이자, 이미지 분류처럼 모멘텀 SGD가 잘 정립된 영역에서는 여전히 강력한 기준선이다. scikit-learn의 SGDClassifier와 SGDRegressor처럼 대규모 선형 모델과 온라인 학습에서도 널리 쓰이며, 기울기 잡음·학습률·배치 크기의 상호작용을 이해하는 것은 어떤 옵티마이저를 쓰든 학습을 안정적으로 설계하는 기반이 된다.

#관련 용어

경사 하강법
손실 함수의 기울기 반대 방향으로 파라미터를 이동시켜 최솟값을 찾는 최적화 방법
학습률
한 번의 갱신에서 파라미터를 이동시키는 보폭을 정하는 하이퍼파라미터
미니배치
한 번의 기울기 계산에 사용하는 학습 데이터의 작은 부분 집합
모멘텀
과거 기울기를 누적한 속도를 이용해 진동을 줄이고 수렴을 가속하는 기법
아담 옵티마이저
기울기의 1차·2차 모멘트 추정으로 파라미터별 학습률을 조정하는 적응형 옵티마이저

#직무 연관도

DA
Data Analyst
낮음
대규모 데이터에 선형 모델을 학습하거나 학습 결과의 안정성을 해석할 때 참고
DS
Data Scientist
밀접
모델 학습의 최적화 설정을 설계하고 수렴과 일반화 특성을 분석하는 데 필수적인 개념
DE
Data Engineer
높음
분산 학습 환경에서 배치 크기·학습률 스케일링과 동기화 방식을 구성하는 데 필요

#사용 사례

인터넷 서비스전자상거래금융의료자율주행
개요
확률적 경사 하강법은 신경망을 학습하는 거의 모든 산업 분야에서 기본 최적화 방법으로 쓰인다. 인터넷 서비스와 전자상거래에서는 대규모 로그 기반 추천·광고 모델 학습에, 의료와 자율주행에서는 이미지 인식 모델 학습에 활용되며, 금융에서는 대용량 거래 데이터에 대한 선형 모델의 온라인 학습에도 사용된다.
사례
전자상거래 플랫폼에서 수억 건의 클릭 로그로 클릭률 예측 모델을 학습할 때, 미니배치 SGD와 데이터 병렬을 사용해 여러 GPU에서 매일 모델을 재학습한다.

#참고 자료

#추천 포스트

© 2024 diki All rights reserved.