Stochastic Gradient Descent가 머신러닝 모델을 최적화하여 대규모 데이터 세트 및 딥러닝 작업에 대한 효율적인 학습을 가능하게 하는 방법을 알아보세요.
확률적 그라디언트 하강SGD은 초석입니다. 최적화 알고리즘의 초석입니다 . 머신 러닝(ML) 및 딥 러닝(DL)에서 많이 활용되는 최적화 알고리즘입니다. 모델 학습의 원동력 역할을 하며 모델 학습의 원동력 역할을 하며, 모델 가중치와 편향성을 최소화하기 위해 반복적으로 모델 가중치와 편향성을 반복적으로 조정하여 오차를 최소화하는 역할을 합니다. 기존의 경사 하강과 달리 SGD 전체 데이터 세트를 처리하여 단일 업데이트를 계산하는 대신, 모델 매개변수를 수정합니다. 한 번에 무작위로 선택된 하나의 훈련 예제만 사용하여 모델 파라미터를 수정합니다. 이 "확률적" 또는 무작위 접근 방식은 알고리즘은 계산 효율이 높고 확장성이 뛰어나며, 전체 데이터를 처리해야 하는 전체 데이터 세트를 한 번에 처리하면 메모리 사용량이 메모리 사용량이 많을 수 있습니다.
신경망 훈련의 주요 목표는 다음과 같습니다. 복잡한 오류 환경을 탐색하여 가장 높은 정확도를 나타내는 최저점을 찾는 것입니다. SGD 이를 달성하기 위해 반복적인 주기를 통해 이를 달성합니다. 먼저, 역전파를 사용하여 특정 샘플에 대한 특정 샘플에 대한 기울기를 계산합니다. 그런 다음 오차를 줄이기 위해 반대 방향으로 가중치를 업데이트합니다.
이 단계의 크기는 학습 중에 설정되는 중요 값인 학습 속도, 하이퍼파라미터 튜닝 중에 설정되는 하이퍼파라미터 튜닝 중에 설정되는 중요 값입니다. SGD 단일 샘플을 사용하기 때문에 단일 샘플을 사용하기 때문에 최소값에 이르는 경로는 직선이 아닌 지그재그로 노이즈가 발생합니다. 이러한 노이즈는 종종 모델이 비확률적 알고리즘이 도달할 수 있는 국부적 최소값 차선책에서 벗어나 더 나은 글로벌 솔루션을 찾을 수 있도록 도와주기 때문입니다. 이 프로세스는 많은 에포크 또는 데이터 집합을 통과하는 전체 패스에 대해 반복됩니다. 모델이 수렴할 때까지 이 과정을 반복합니다. 독자는 다음 문서에서 수학적 직관력을 탐구할 수 있습니다. 스탠포드 CS231n 최적화 노트에서 수학적 직관을 살펴볼 수 있습니다.
SGD 관련 개념과 어떻게 다른지 이해하는 것은 학습 데이터에 적합한 전략을 선택하기 위해 매우 중요합니다. 전략을 선택하는 데 중요합니다.
SGD 그 변형은 다양한 산업 분야에서 최신 AI 시스템 학습을 위한 표준입니다.
그리고 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". 추가 사용자 지정에 대해서는
모델 교육 구성 문서를 참조하세요. 다음과 같은 프레임워크
TensorFlow 및
Scikit-learn 또한 다양한 머신 러닝 작업을 위한 강력한 SGD
의 강력한 구현도 제공합니다.

