Yolo 비전 선전
선전
지금 참여하기
용어집

확률적 그라디언트 하강SGD

Stochastic Gradient Descent가 머신러닝 모델을 최적화하여 대규모 데이터 세트 및 딥러닝 작업에 대한 효율적인 학습을 가능하게 하는 방법을 알아보세요.

확률적 그라디언트 하강SGD은 초석입니다. 최적화 알고리즘의 초석입니다 . 머신 러닝(ML)딥 러닝(DL)에서 많이 활용되는 최적화 알고리즘입니다. 모델 학습의 원동력 역할을 하며 모델 학습의 원동력 역할을 하며, 모델 가중치와 편향성을 최소화하기 위해 반복적으로 모델 가중치와 편향성을 반복적으로 조정하여 오차를 최소화하는 역할을 합니다. 기존의 경사 하강과 달리 SGD 전체 데이터 세트를 처리하여 단일 업데이트를 계산하는 대신, 모델 매개변수를 수정합니다. 한 번에 무작위로 선택된 하나의 훈련 예제만 사용하여 모델 파라미터를 수정합니다. 이 "확률적" 또는 무작위 접근 방식은 알고리즘은 계산 효율이 높고 확장성이 뛰어나며, 전체 데이터를 처리해야 하는 전체 데이터 세트를 한 번에 처리하면 메모리 사용량이 메모리 사용량이 많을 수 있습니다.

Stochastic Gradient Descent 작동 방식

신경망 훈련의 주요 목표는 다음과 같습니다. 복잡한 오류 환경을 탐색하여 가장 높은 정확도를 나타내는 최저점을 찾는 것입니다. SGD 이를 달성하기 위해 반복적인 주기를 통해 이를 달성합니다. 먼저, 역전파를 사용하여 특정 샘플에 대한 특정 샘플에 대한 기울기를 계산합니다. 그런 다음 오차를 줄이기 위해 반대 방향으로 가중치를 업데이트합니다.

이 단계의 크기는 학습 중에 설정되는 중요 값인 학습 속도, 하이퍼파라미터 튜닝 중에 설정되는 하이퍼파라미터 튜닝 중에 설정되는 중요 값입니다. SGD 단일 샘플을 사용하기 때문에 단일 샘플을 사용하기 때문에 최소값에 이르는 경로는 직선이 아닌 지그재그로 노이즈가 발생합니다. 이러한 노이즈는 종종 모델이 비확률적 알고리즘이 도달할 수 있는 국부적 최소값 차선책에서 벗어나 더 나은 글로벌 솔루션을 찾을 수 있도록 도와주기 때문입니다. 이 프로세스는 많은 에포크 또는 데이터 집합을 통과하는 전체 패스에 대해 반복됩니다. 모델이 수렴할 때까지 이 과정을 반복합니다. 독자는 다음 문서에서 수학적 직관력을 탐구할 수 있습니다. 스탠포드 CS231n 최적화 노트에서 수학적 직관을 살펴볼 수 있습니다.

SGD 다른 최적화 알고리즘 비교

SGD 관련 개념과 어떻게 다른지 이해하는 것은 학습 데이터에 적합한 전략을 선택하기 위해 매우 중요합니다. 전략을 선택하는 데 중요합니다.

  • 일괄 그라데이션 하강: 이 방법은 모든 단계에 대해 전체 데이터 세트를 사용하여 기울기를 계산합니다. 안정적인 오차 곡선을 생성하지만, 대규모 데이터 세트의 경우 매우 느리고 계산 비용이 많이 듭니다.
  • 미니 배치 그라디언트 하강: In 실제로는 다음과 같은 프레임워크에서 대부분의SGD" 구현은 PyTorch 와 같은 프레임워크의 대부분의 "SGD" 구현은 실제로 미니 배치를 사용합니다. 이 접근 방식은 작은 샘플 그룹을 사용하여 매개변수를 업데이트합니다(예: 32개 또는 64개 이미지). 이 방식은 일괄 처리의 안정성과 SGD의 계산 계산 효율성과 배치 처리의 안정성이 균형을 이룹니다.
  • Adam 옵티마이저: Adam 알고리즘은 각 파라미터에 적응형 학습 속도를 도입하여 SGD 확장합니다. Adam 종종 더 빠르게 수렴합니다, 더 나은 일반화를 달성하고 과적합을 피하기 위해 컴퓨터 비전 작업에 모멘텀이 있는 SGD 선호되기도 합니다. 과적합.

실제 애플리케이션

SGD 그 변형은 다양한 산업 분야에서 최신 AI 시스템 학습을 위한 표준입니다.

  1. 실시간 물체 감지: 다음과 같은 고성능 모델을 학습할 때 Ultralytics YOLO11 와 같은 같은 고성능 모델을 훈련할 때, 옵티마이저는 다음과 같은 데이터에서 다음과 같은 데이터 세트에서 수천 개의 이미지를 처리해야 합니다. COCO. SGD 를 사용하면 모델이 가장자리와 물체 모양과 같은 특징을 빠르게 학습할 수 있습니다. 확률적 특성은 모델이 일반화하는 데 도움이 되며, 이는 다음과 같은 안전이 중요한 애플리케이션에 매우 중요합니다. 다양한 기상 조건에서 보행자를 감지하는 자율주행 차량 안전 애플리케이션에 매우 중요합니다.
  2. 자연어 처리(NLP): 교육 대규모 언어 모델(LLM) 에는 다음이 포함됩니다. 수십억 개의 단어가 포함된 데이터 세트가 포함됩니다. 이 모든 데이터를 한 번에 메모리에 로드하는 것은 불가능합니다. SGD 사용하면 문법, 문맥, 그리고 감정 분석을 점진적으로 학습할 수 있습니다. 이러한 효율성은 정교한 가상 비서 및 번역 도구의 개발을 지원합니다.

Ultralytics SGD 구현하기

그리고 ultralytics 라이브러리를 사용하면 최적화 프로그램 간에 쉽게 전환할 수 있습니다. 일부 작업에서는 AdamW 를 기본값으로 사용할 수도 있지만, 미세 조정이나 특정 연구 요구 사항에는 SGD 사용하는 경우가 많습니다. 아래 스니펫 은 모델 학습을 위해 SGD 명시적으로 선택하는 방법을 보여줍니다.

from ultralytics import YOLO

# Load the latest YOLO11 model (nano version)
model = YOLO("yolo11n.pt")

# Train the model on the COCO8 dataset using the SGD optimizer
# The 'lr0' argument sets the initial learning rate
results = model.train(data="coco8.yaml", epochs=50, optimizer="SGD", lr0=0.01)

이 코드는 YOLO11 모델을 선택하고 와 함께 optimizer="SGD". 추가 사용자 지정에 대해서는 모델 교육 구성 문서를 참조하세요. 다음과 같은 프레임워크 TensorFlowScikit-learn 또한 다양한 머신 러닝 작업을 위한 강력한 SGD 의 강력한 구현도 제공합니다.

Ultralytics 커뮤니티 가입

AI의 미래에 동참하세요. 글로벌 혁신가들과 연결하고, 협력하고, 성장하세요.

지금 참여하기