Descubra como o Stochastic Gradient Descent otimiza modelos de aprendizado de máquina, permitindo o treinamento eficiente para grandes conjuntos de dados e tarefas de aprendizado profundo.
A Descida de Gradiente EstocásticoSGD) é um algoritmo de otimização algoritmo de otimização muito utilizado em aprendizagem automática (ML) e aprendizagem profunda (DL). Actua como a força motriz força motriz por detrás do treino do modelo, ajustando iterativamente ajustando iterativamente os pesos internos do modelo para minimizar o erro calculado por uma função de perda. Ao contrário do tradicional gradiente tradicional, que processa todo o conjunto de dados para calcular uma única atualização, SGD modifica os parâmetros do modelo usando apenas um único exemplo de treinamento selecionado aleatoriamente de cada vez. Esta abordagem "estocástica" ou aleatória torna o algoritmo computacionalmente eficiente e altamente escalável, criando um caminho viável para o treinamento em para treinar em grandes volumes de dados, onde o processamento de todo o conjunto de dados de uma só vez seria proibitivo em termos de memória.
O principal objetivo do treino de uma rede neuronal é navegar numa paisagem de erros complexa para encontrar o ponto mais baixo, que representa a maior precisão. SGD alcança este objetivo através de um ciclo repetitivo. Primeiro, ele calcula o gradiente - a direção do aumento mais acentuado no erro - para uma amostra específica usando retropropagação. Em seguida, ele actualiza os pesos na direção oposta para reduzir o erro.
A magnitude deste passo é controlada pela taxa de aprendizagem, um valor crítico configurado durante ajuste dos hiperparâmetros. Como SGD utiliza amostras individuais, o caminho para o mínimo é ruidoso e ziguezagueante em vez de uma linha reta. Este ruído é muitas vezes Este ruído é muitas vezes benéfico, pois ajuda o modelo a escapar de mínimos locais - soluções sub-ótimas onde os algoritmos não-estocásticos podem ficar que os algoritmos não-estocásticos podem ficar presos - permitindo-lhe encontrar uma solução global melhor. Este processo repete-se durante muitas épocas, ou passagens completas pelo conjunto de dados, até o modelo converge. Os leitores podem explorar a intuição matemática nas Notas de otimização CS231n de Stanford.
Compreender como SGD difere dos conceitos relacionados é vital para selecionar a estratégia certa para os seus dados de treino.
SGD e as suas variantes são a norma para a formação de sistemas modernos de IA em vários sectores.
O ultralytics permite aos utilizadores alternar facilmente entre optimizadores. Enquanto AdamW pode ser o
padrão para algumas tarefas, SGD é frequentemente usado para ajustes finos ou requisitos específicos de pesquisa. O trecho abaixo
demonstra como selecionar explicitamente SGD para treinar um modelo.
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)
Este código inicializa um YOLO11 modelo e inicia a formação
com optimizer="SGD". Para personalização adicional, consulte o
configuração de treino do modelo documentação. Estruturas como
TensorFlow e
Scikit-learn também fornecem implementações robustas de SGD
para várias tarefas de aprendizagem automática.