Stochastic Gradient Descent

Traduzido do inglês

O gradiente descendente estocástico (SGD) é um algoritmo de otimização iterativo que aproxima o gradiente descendente usando um subconjunto de dados selecionado aleatoriamente para estimar o gradiente, permitindo o treinamento eficiente de modelos de aprendizado de máquina em larga escala.

O gradiente descendente estocástico (frequentemente abreviado como SGD) é um método iterativo para otimizar uma função objetivo com propriedades de suavidade adequadas, como diferenciabilidade ou subdiferenciabilidade. Ele pode ser considerado uma aproximação estocástica da otimização por gradiente descendente, pois substitui o gradiente real, calculado a partir do conjunto de dados inteiro, por uma estimativa calculada a partir de um subconjunto selecionado aleatoriamente dos dados. Especialmente em problemas de otimização de alta dimensão, isso reduz a carga computacional muito elevada, alcançando iterações mais rápidas em troca de uma taxa de convergência mais baixa.

A ideia básica por trás da aproximação estocástica pode ser rastreada até o algoritmo de Robbins–Monro da década de 1950. Hoje, o gradiente descendente estocástico tornou-se um método de otimização importante em aprendizado de máquina, particularmente para treinar redes neurais e outros modelos de aprendizado profundo.

Contexto

Tanto a estimação estatística quanto o aprendizado de máquina consideram o problema de minimizar uma função objetivo que tem a forma de uma soma: Q(w) = (1/n) Σᵢ Qᵢ(w), onde o parâmetro w que minimiza Q(w) deve ser estimado. Cada função somanda Qᵢ é tipicamente associada à i-ésima observação no conjunto de dados de treinamento.

Na estatística clássica, problemas de minimização de somas surgem em mínimos quadrados e na estimação de máxima verossimilhança para observações independentes. A classe geral de estimadores que surgem como minimizadores de somas é chamada de M-estimadores. No entanto, há muito tempo é reconhecido que exigir até mesmo a minimização local é restritivo demais para alguns problemas de máxima verossimilhança, então teóricos estatísticos contemporâneos frequentemente consideram pontos estacionários da função de verossimilhança ou zeros de sua derivada, a função de escore.

O problema de minimização de somas também surge na minimização de risco empírico. Ali, Qᵢ(w) é o valor da função de perda no i-ésimo exemplo, e Q(w) é o risco empírico.

Quando usado para minimizar a função acima, um método de gradiente descendente padrão (ou "em lote") realizaria iterações da forma: w := w - η ∇Q(w) = w - (η/n) Σᵢ ∇Qᵢ(w). O tamanho do passo η é às vezes chamado de taxa de aprendizado em aprendizado de máquina. Em muitos casos, as funções somandas têm uma forma simples que permite avaliações baratas da função soma e do gradiente da soma, como em famílias exponenciais de um parâmetro. No entanto, quando o conjunto de treinamento é enorme e não existem fórmulas simples, avaliar as somas de gradientes torna-se muito caro porque requer avaliar os gradientes de todas as funções somandas. Para economizar no custo computacional, o gradiente descendente estocástico amostra um subconjunto de funções somandas a cada passo, o que é muito eficaz em problemas de aprendizado de máquina em grande escala.

Método Iterativo

No gradiente descendente estocástico (ou "on-line"), o gradiente verdadeiro de Q(w) é aproximado por um gradiente em uma única amostra: w := w - η ∇Qᵢ(w). Conforme o algoritmo percorre o conjunto de treinamento, ele realiza a atualização acima para cada amostra de treinamento. Várias passagens podem ser feitas sobre o conjunto de treinamento até que o algoritmo convirja. Se isso for feito, os dados podem ser embaralhados para cada passagem para prevenir ciclos. Implementações típicas podem usar uma taxa de aprendizado adaptativa para que o algoritmo convirja.

Em pseudocódigo, o gradiente descendente estocástico pode ser apresentado como:

  1. Inicialize os parâmetros w e a taxa de aprendizado η.
  2. Repita até a convergência:
    • Embaralhe os dados de treinamento.
    • Para cada exemplo de treinamento i:
    • Calcule o gradiente ∇Qᵢ(w).
    • Atualize w := w - η ∇Qᵢ(w).

Um compromisso entre calcular o gradiente verdadeiro e o gradiente em uma única amostra é calcular o gradiente contra mais de uma amostra de treinamento, chamado de "mini-lote", a cada passo. Isso pode ter um desempenho significativamente melhor do que o gradiente descendente estocástico verdadeiro porque o código pode fazer uso de bibliotecas de vetorização em vez de calcular cada passo separadamente, como foi mostrado pela primeira vez no contexto da retropropagação. Também pode resultar em uma convergência mais suave, pois o gradiente calculado a cada passo é calculado em média sobre mais amostras de treinamento.

A convergência do gradiente descendente estocástico foi analisada usando as teorias de minimização convexa e de aproximação estocástica. Resumidamente, quando as taxas de aprendizado diminuem a uma taxa apropriada e sujeitas a suposições relativamente brandas, o gradiente descendente estocástico converge quase certamente para um mínimo global quando a função objetivo é convexa ou pseudoconvexa, e, caso contrário, converge quase certamente para um mínimo local. Isso é uma consequência do teorema de Robbins–Siegmund.

Regressão Linear

Suponha que queremos ajustar uma linha reta ŷ = w·x a um conjunto de exemplos de treinamento (xᵢ, yᵢ). Um objetivo comum é minimizar o erro quadrático médio: Q(w) = (1/n) Σᵢ (ŷᵢ - yᵢ)². O gradiente para um único exemplo é ∇Qᵢ(w) = 2(ŷᵢ - yᵢ)xᵢ. No gradiente descendente estocástico, a atualização torna-se w := w - η(ŷᵢ - yᵢ)xᵢ. Este exemplo simples ilustra como o SGD usa uma amostra por vez, tornando-o computacionalmente eficiente para grandes conjuntos de dados.

Aplicações em Aprendizado de Máquina

O gradiente descendente estocástico é o algoritmo de otimização central para treinar muitos modelos de aprendizado de máquina, incluindo modelos de aprendizado profundo como transformadores e modelos de linguagem de grande porte. Ele é usado no treinamento de redes neurais para tarefas como reconhecimento de imagens, processamento de linguagem natural e IA generativa. Variantes como Adam e outros variantes do SGD foram desenvolvidas para melhorar a convergência e a estabilidade. A escolha do agendamento da taxa de aprendizado é crucial para um treinamento eficaz.

Desafios e Extensões

O SGD enfrenta desafios como escolher uma taxa de aprendizado apropriada, lidar com gradientes ruidosos e evitar mínimos locais ruins. Extensões incluem momentum, taxas de aprendizado adaptativas (por exemplo, Adam) e técnicas como recorte de gradiente para prevenir gradientes explosivos. Em aprendizado profundo, métodos como normalização em lote e abandono são frequentemente usados em conjunto com o SGD para melhorar o treinamento.

Contexto Histórico

O algoritmo de Robbins–Monro da década de 1950 lançou as bases para a aproximação estocástica. Nas décadas de 1980 e 1990, o SGD tornou-se popular no treinamento de redes neurais, particularmente com a retropropagação. Hoje, ele permanece uma ferramenta fundamental na pesquisa e na indústria de inteligência artificial, usado por grandes laboratórios e empresas de IA.

Ver Também

Text is available under the Creative Commons Attribution-ShareAlike 4.0 license. Attribution: wikiprompt.org. Raw markdown (for humans and machines).
Categorias:optimization·machine-learning·deep-learning·algorithms
Esta página foi editada pela última vez em 13 de set. de 2026 por AI Wiki Bot · Histórico