Glossário

Descida de Gradiente Estocástico (SGD)

Descubra como o Stochastic Gradient Descent optimiza os modelos de aprendizagem automática, permitindo uma formação eficiente para grandes conjuntos de dados e tarefas de aprendizagem profunda.

O Stochastic Gradient Descent (SGD) é um algoritmo de otimização fundamental e amplamente utilizado na aprendizagem automática (ML). É um método iterativo utilizado para treinar modelos, ajustando os seus parâmetros internos, como pesos e enviesamentos, para minimizar uma função de perda. Ao contrário do Gradient Descent tradicional, que processa todo o conjunto de dados para cada atualização, o SGD actualiza os parâmetros utilizando apenas uma única amostra de treino selecionada aleatoriamente. Esta abordagem "estocástica" torna o processo de treinamento significativamente mais rápido e mais escalável, o que é especialmente importante quando se trabalha com grandes volumes de dados. As atualizações ruidosas também podem ajudar o modelo a escapar de mínimos locais pobres no cenário de erros e potencialmente encontrar uma solução geral melhor.

Como funciona a Descida do Gradiente Estocástico

A ideia central por trás do SGD é aproximar o gradiente verdadeiro da função de perda, que é calculado sobre todo o conjunto de dados, usando o gradiente da perda para uma única amostra. Embora este gradiente de uma única amostra seja uma estimativa com ruído, é computacionalmente barato e, em média, aponta na direção certa. O processo envolve a repetição de um ciclo simples de duas etapas para cada amostra de treinamento:

  1. Calcular o gradiente: Calcule o gradiente da função de perda em relação aos parâmetros do modelo para um único exemplo de treinamento.
  2. Atualizar os parâmetros: Ajustar os parâmetros na direção oposta ao gradiente, escalado por uma taxa de aprendizagem. Isto move o modelo para um estado com menor erro para essa amostra específica.

Este ciclo é repetido por muitas passagens em todo o conjunto de dados, conhecidas como épocas, melhorando gradualmente o desempenho do modelo. A eficiência do SGD tornou-o numa pedra angular da aprendizagem profunda (DL) moderna e é suportado por todas as principais estruturas, como o PyTorch e o TensorFlow.

Sgd Vs. Outros Optimizadores

O SGD é um dos vários métodos de otimização baseados em gradientes, cada um com os seus próprios compromissos.

  • Descida de gradiente em lote: Este método calcula o gradiente utilizando todo o conjunto de dados de treino. Fornece um caminho estável e direto para o mínimo, mas é extremamente lento e consome muita memória para grandes conjuntos de dados, tornando-o impraticável para a maioria das aplicações modernas.
  • Descida de Gradiente em Mini-Lote: Este é um compromisso entre o GD em lote e o SGD. Actualiza os parâmetros utilizando um subconjunto pequeno e aleatório (um "mini-lote") dos dados. Equilibra a estabilidade da GD em lote com a eficiência do SGD e é a abordagem mais comum utilizada na prática.
  • Optimizador Adam: O Adam é um algoritmo de otimização adaptativo que mantém uma taxa de aprendizagem separada para cada parâmetro e ajusta-a à medida que a aprendizagem progride. Muitas vezes converge mais rapidamente do que o SGD, mas o SGD pode por vezes encontrar um mínimo melhor e oferecer uma melhor generalização, ajudando a evitar o sobreajuste.

Aplicações no mundo real

O SGD e as suas variantes são fundamentais para treinar uma vasta gama de modelos de IA em diferentes domínios.

  • Treino de deteção de objectos em tempo real: Para modelos como o Ultralytics YOLO, projetado para inferência em tempo real, o treinamento precisa ser eficiente. O SGD permite que os desenvolvedores treinem esses modelos em grandes conjuntos de dados de imagens como o COCO ou conjuntos de dados personalizados gerenciados por meio de plataformas como o Ultralytics HUB. As atualizações rápidas permitem uma convergência mais rápida em comparação com o Batch GD, crucial para iterar rapidamente durante o desenvolvimento do modelo e o ajuste de hiperparâmetros. Esta eficiência suporta aplicações em áreas como veículos autónomos e robótica.
  • Formação de grandes modelos linguísticos (LLM): Os modelos de treino para Processamento de Linguagem Natural (PLN) envolvem frequentemente conjuntos de dados de texto massivos. O SGD e as suas variantes são essenciais para iterar através destes dados de forma eficiente, permitindo que modelos como o GPT-4 ou os encontrados no Hugging Face aprendam gramática, contexto e semântica. A natureza estocástica ajuda a escapar de mínimos locais pobres no complexo cenário de perdas, um desafio comum no treinamento de grandes redes neurais. Este processo é fundamental para tarefas como a tradução automática e a análise de sentimentos.

Junte-se à comunidade Ultralytics

Junte-se ao futuro da IA. Ligue-se, colabore e cresça com inovadores globais

Aderir agora
Ligação copiada para a área de transferência