용어집

확률적 그라디언트 하강(SGD)

확률적 경사 하강이 어떻게 머신러닝 모델을 최적화하여 대규모 데이터 세트와 딥러닝 작업을 효율적으로 학습할 수 있는지 알아보세요.

YOLO 모델을 Ultralytics HUB로 간단히
훈련

자세히 알아보기

일반적으로 SGD로 알려진 확률적 경사 하강은 머신 러닝(ML), 특히 딥 러닝(DL)에서 광범위하게 사용되는 인기 있고 효율적인 최적화 알고리즘입니다. 이 알고리즘은 표준 경사 하강 알고리즘의 변형이지만 매우 큰 데이터 세트를 처리할 때 속도와 효율성을 위해 특별히 설계되었습니다. 각 단계에서 전체 데이터 집합을 사용해 기울기(손실 함수의 가장 가파른 하강 방향)를 계산하는 대신, SGD는 무작위로 선택된 단일 데이터 샘플 또는 미니 배치라고 하는 작은 하위 집합을 기반으로 기울기를 근사화합니다. 이 접근 방식은 계산 비용과 메모리 요구 사항을 크게 줄여주므로 방대한 양의 데이터에 대해 복잡한 모델을 훈련할 수 있습니다.

머신 러닝의 관련성

SGD는 대규모 머신 러닝 모델, 특히 많은 최신 AI 애플리케이션을 구동하는 복잡한 신경망(NN) 을 훈련하기 위한 초석입니다. 그 효율성은 메모리에 담기에는 너무 크거나 기존의 배치 경사 하강을 사용하여 처리하는 데 너무 오래 걸리는 데이터 세트로 작업할 때 없어서는 안 될 필수 요소입니다. 다음과 같은 모델 Ultralytics YOLO 와 같은 모델은 객체 감지, 이미지 분류, 이미지 분할과 같은 작업을 위한 패턴을 학습하기 위해 훈련 과정에서 SGD 또는 그 변형을 활용하는 경우가 많습니다. 다음과 같은 주요 딥 러닝 프레임워크 PyTorchTensorFlow 와 같은 주요 딥 러닝 프레임워크는 SGD의 강력한 구현을 제공하여 AI 생태계에서 SGD의 근본적인 역할을 강조합니다.

주요 개념

SGD를 이해하려면 몇 가지 핵심 아이디어가 필요합니다:

  • 확률적 특성: "확률적"이라는 용어는 각 단계에서 기울기를 추정하기 위해 하나 또는 몇 개의 샘플만 사용하여 도입되는 무작위성을 의미합니다. 이러한 무작위성은 최적화 프로세스에 노이즈를 추가하여 모델이 열악한 국부 최소값을 피하고 더 나은 전체 솔루션을 찾는 데 도움이 될 수 있습니다.
  • 미니 배치: 순수 SGD는 업데이트당 단일 샘플을 사용하지만, 실제로는 작은 "미니 배치" 샘플(예: 32, 64, 128)을 사용하는 것이 더 일반적입니다. 이 접근 방식은 단일 샘플 업데이트의 효율성과 작은 배치에 대한 평균 기울기를 통해 얻는 안정성의 균형을 맞추는 방식으로, 여전히 SGD라고도 불립니다. 이 배치의 크기는 배치 크기 하이퍼파라미터로 제어됩니다.
  • 학습 속도: 이 중요한 하이퍼파라미터는 최적화 프로세스 중에 수행되는 단계의 크기를 결정합니다. 학습 속도가 너무 높으면 프로세스가 최소값을 초과할 수 있고, 너무 낮으면 학습 속도가 지나치게 느려질 수 있으므로 학습 속도를 잘 선택하는 것은 컨버전스에 매우 중요합니다. 학습 속도 스케줄링과 같은 기술은 종종 SGD와 함께 사용됩니다.
  • 손실 함수: SGD는 학습 데이터에서 모델의 예측과 실제 목표 값의 차이를 측정하는 손실 함수를 최소화하는 것을 목표로 합니다.

관련 개념과의 차이점

SGD는 여러 최적화 알고리즘 중 하나이며, 다른 알고리즘과 구별하는 것이 중요합니다:

  • 그라디언트 하강(배치 GD): 주요 차이점은 기울기를 계산하는 방식에 있습니다. 배치 GD는 각 파라미터 업데이트에 전체 데이터 세트를 사용하므로 정확한 그라데이션을 제공하지만 대규모 데이터 세트의 경우 계산 비용이 많이 들고 속도가 느려집니다. SGD는 하나의 샘플(또는 미니 배치)을 사용하므로 각 업데이트가 훨씬 빠르지만 노이즈가 더 큽니다. 표준 방법에 대한 자세한 내용은 그라디언트 하강 용어집 페이지에서 확인할 수 있습니다.
  • 미니 배치 그라디언트 하강: 이것은 흔히 SGD라고 부르는 가장 일반적인 실제 구현입니다. 데이터의 작은 무작위 하위 집합(미니 배치)에서 기울기를 계산합니다. 배치 GD의 정확도와 순수 SGD의 효율성 사이에서 균형을 이룹니다.
  • 아담 옵티마이저: Adam은 적응형 학습 속도 최적화 알고리즘으로, 과거 기울기를 기반으로 각 매개변수에 대한 학습 속도를 개별적으로 조정합니다. Adam은 기본 SGD보다 빠르게 수렴하는 경우가 많지만, "머신 러닝에서 적응형 그라데이션 방법의 한계값"과 같은 연구에서 논의된 바와 같이 SGD(특히 모멘텀 포함)가 보이지 않는 데이터에 더 잘 일반화할 수 있는 경우도 있습니다.

실제 애플리케이션

SGD의 효율성 덕분에 수많은 대규모 AI 애플리케이션에서 사용할 수 있습니다:

예 1: 대규모 언어 모델(LLM) 학습하기

자연어 처리(NLP) 에 사용되는 것과 같은 학습 모델에는 종종 수십억 개의 단어로 구성된 방대한 텍스트 데이터 세트가 포함됩니다. SGD와 그 변형은 이러한 데이터를 효율적으로 반복하여 모델이 문법, 문맥 및 의미를 학습할 수 있도록 하는 데 필수적입니다. 다음과 같은 플랫폼 Hugging Face 와 같은 플랫폼은 트랜스포머 모델 학습을 위해 이러한 최적화 도구에 크게 의존합니다.

예제 2: 실시간 객체 감지 훈련

실시간 추론을 위해 설계된 Ultralytics YOLO 같은 모델의 경우, 훈련이 효율적이어야 합니다. 개발자는 SGD를 통해 COCO와 같은 대규모 이미지 데이터 세트 또는 Ultralytics HUB와 같은 플랫폼을 통해 관리되는 사용자 정의 데이터 세트에서 이러한 모델을 훈련할 수 있습니다. 빠른 업데이트는 배치 GD에 비해 더 빠른 수렴을 가능하게 하며, 이는 모델 개발 및 하이퍼파라미터 튜닝 중에 빠르게 반복하는 데 중요합니다.

모두 보기