용어집

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

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

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

자세히 알아보기

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

머신 러닝의 관련성

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

주요 개념

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

  • 손실 함수: 손실 함수: 모델의 예측이 실제 목표 값과 얼마나 잘 일치하는지를 측정하는 함수입니다. SGD는 이 함수를 최소화하는 것을 목표로 합니다.
  • 학습 속도: 학습 속도: 각 파라미터 업데이트 시 걸리는 단계 크기를 제어하는 하이퍼파라미터입니다. 효과적인 학습을 위해서는 적절한 학습 속도를 찾는 것이 중요합니다. 학습 속도 스케줄은 학습 중에 학습 속도를 조정하는 데 자주 사용됩니다.
  • 배치 크기: 기울기를 추정하기 위해 한 번의 반복에 사용되는 훈련 샘플의 수입니다. 순수 SGD에서 배치 크기는 1입니다. 작은 하위 집합을 사용하는 경우 미니 배치 그라데이션 하강이라고도 합니다.
  • 학습 데이터: 모델 학습에 사용되는 데이터 세트입니다. SGD는 이 데이터를 샘플 단위 또는 미니 배치로 처리합니다. 고품질 데이터는 필수적이며, 신중한 데이터 수집과 주석이 필요한 경우가 많습니다.
  • 그라데이션: 손실 함수에서 가장 가파른 증가 방향을 나타내는 벡터입니다. SGD는 샘플 또는 미니 배치에서 계산된 기울기의 반대 방향으로 매개변수를 이동합니다.
  • Epoch: 전체 훈련 데이터 세트에 대한 한 번의 완전한 통과. 훈련에는 일반적으로 여러 개의 에포크가 포함됩니다.

관련 개념과의 차이점

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

  • 일괄 경사 하강(BGD): 각 단계의 전체 학습 데이터 세트를 사용하여 기울기를 계산합니다. 이 방법은 정확한 기울기 추정치를 제공하지만 대규모 데이터 세트의 경우 계산 비용이 많이 들고 메모리 집약적입니다. SGD의 노이즈 업데이트에 비해 더 부드러운 수렴 경로를 제공합니다.
  • 미니 배치 그라디언트 하강: BGD와 SGD의 절충안입니다. 데이터의 작은 무작위 하위 집합(미니 배치)을 사용하여 기울기를 계산합니다. 이는 BGD의 정확성과 SGD의 효율성의 균형을 맞추며, 실제로 가장 일반적인 접근 방식입니다. 성능은 배치 크기에 따라 달라질 수 있습니다.
  • 아담 옵티마이저: 다양한 매개변수에 대해 개별 적응 학습률을 계산하는 적응 학습률 최적화 알고리즘입니다. "머신 러닝에서 적응형 경사법의 한계값"과 같은 연구에서 논의된 것처럼 표준 SGD보다 빠르게 수렴하는 경우가 많지만 때로는 덜 효과적으로 일반화할 수 있습니다. 이 외에도 다양한 경사 하강 변형이 존재합니다.

실제 애플리케이션

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

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

자연어 처리(NLP) 에 사용되는 것과 같은 학습 모델에는 종종 수십억 개의 단어가 포함된 방대한 텍스트 데이터 세트가 포함됩니다. SGD와 그 변형(예: Adam)은 이러한 데이터를 효율적으로 반복하는 데 필수적이며, 이를 통해 GPT-4 또는 다음과 같은 모델을 사용할 수 있습니다. Hugging Face 와 같은 모델이 문법, 문맥, 의미를 학습할 수 있게 해줍니다. 확률적 특성은 복잡한 손실 환경에서 열악한 로컬 최소값을 피하는 데 도움이 됩니다.

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

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

모두 보기