Gradient Descent
A descida do gradiente treina modelos atualizando repetidamente os pesos na direção oposta ao gradiente da função de perda. Aborda taxas de aprendizagem, SGD, momentum e Adam.
A descida do gradiente é o algoritmo de otimização iterativo que treina a maioria dos modelos de aprendizado de máquina, da regressão linear às grandes redes neurais. A cada etapa, calcula o gradiente da função de perda em relação a cada peso do modelo e desloca cada peso um pequeno passo na direção oposta, aquela em que a perda diminui mais rapidamente. A regra de atualização é w ← w − η∇L(w), em que η é a taxa de aprendizado. Uma analogia comum é a de um caminhante descendo uma montanha em meio a uma névoa densa: sem conseguir ver o vale, ele sente a inclinação do terreno sob os pés e dá passos ladeira abaixo, repetidamente, até o terreno ficar plano.
Como funciona a descida do gradiente#
Cada iteração tem três partes. Uma passagem direta calcula as previsões e a perda, a retropropagação calcula o gradiente da perda em relação a cada peso e o otimizador atualiza os pesos. O gradiente aponta para cima na superfície de perda, de acordo com a definição do gradiente no cálculo multivariável, então subtraí-lo desloca os pesos para baixo.
As variantes diferem na quantidade de dados usada em cada etapa. A descida do gradiente em lote calcula o gradiente exato sobre todo o conjunto de dados de treino, o que é preciso, mas lento em conjuntos de dados grandes. A descida estocástica do gradiente (SGD) faz uma estimativa com um único exemplo, e a descida do gradiente por minilotes, padrão no aprendizado profundo, calcula a média de um tamanho de lote de dezenas a milhares de exemplos para manter as GPUs ocupadas. O ruído nos gradientes dos minilotes também ajuda os pesos a superar pontos de sela e mínimos acentuados. Uma passagem completa pelo conjunto de treino é uma época.
Escolher a taxa de aprendizado#
A taxa de aprendizado define o tamanho do passo e costuma ser o primeiro hiperparâmetro a ajustar na descida do gradiente. Uma taxa pequena demais desperdiça capacidade computacional em uma aproximação lenta do mínimo, enquanto uma taxa grande demais o ultrapassa; em uma perda quadrática, qualquer taxa superior a 2 dividido pela curvatura da perda faz com que cada passo fique mais distante do mínimo que o anterior. O trecho abaixo minimiza (w − 2)², cuja curvatura é 2, com três taxas de aprendizado no PyTorch:
import torch
# Minimize loss(w) = (w - 2)^2, whose minimum is at w = 2, with three learning rates
for lr in [0.1, 0.5, 1.1]:
w = torch.tensor(5.0, requires_grad=True)
for step in range(20):
loss = (w - 2) ** 2
loss.backward() # w.grad now holds the slope 2 * (w - 2)
with torch.no_grad():
w -= lr * w.grad # step against the gradient
w.grad.zero_()
print(f"Learning rate {lr}: w = {w.item():.4f} after 20 steps")Com uma taxa de 0.1, o peso ainda está em 2.0346 após 20 passos; uma taxa de 0.5 chega exatamente a 2.0000 porque equivale ao inverso da curvatura; e uma taxa de 1.1 ultrapassa o valor por uma margem crescente a cada passo, até w chegar a 117.0129. Os cronogramas de treino reais começam com um breve aquecimento e depois reduzem a taxa, muitas vezes com uma curva cosseno, para manter estáveis os primeiros passos e fazer com que os últimos convirjam com precisão.
Momentum, Adam e otimizadores modernos#
A descida do gradiente simples ziguezagueia por vales estreitos da superfície de perda, por isso a maior parte do treinamento usa regras de atualização aprimoradas. O momentum acumula uma média móvel dos gradientes anteriores e avança nessa direção, amortecendo as oscilações e acelerando o progresso em direções consistentes. O otimizador Adam também acompanha os gradientes ao quadrado de cada parâmetro para dar a cada peso seu próprio tamanho de passo adaptativo, e o AdamW desvincula o decaimento de pesos dessa atualização. O Muon ortogonaliza a atualização de momentum de cada matriz de pesos 2D com iterações de Newton-Schulz, para que nenhuma direção domine o passo. O treinamento do Ultralytics YOLO26 com optimizer="auto" seleciona AdamW, com uma taxa de aprendizado ajustada ao número de classes, para execuções de até 10.000 iterações, e MuSGD, que adiciona atualizações ortogonalizadas no estilo Muon ao SGD para pesos convolucionais e lineares, para execuções mais longas.
Aplicações no mundo real#
A descida do gradiente é o mecanismo de treino por trás de quase todo sistema de aprendizado profundo. Em veículos autônomos, ajusta redes de deteção de objetos para reduzir a diferença entre as caixas previstas e as rotuladas de pedestres, placas e veículos em milhões de quadros. Na análise de imagens médicas, ajusta redes neurais convolucionais que distinguem tumores de tecido saudável em exames de RM e TC. Os modelos de linguagem de grande porte são treinados da mesma forma, normalmente com AdamW e trilhões de tokens.
Descida do gradiente e conceitos relacionados#
- Retropropagação: A retropropagação calcula os gradientes usando a regra da cadeia, e a descida do gradiente os usa para atualizar os pesos. Os dois processos ocorrem em sequência em cada etapa de treino e costumam ser mencionados juntos.
- Função de perda: A função de perda mede o erro das previsões do modelo, e a descida do gradiente é o procedimento que reduz essa medida.
- Gradiente explosivo: Quando os gradientes crescem sem controle em redes profundas, a descida do gradiente dá passos destrutivos; o clipping de gradiente evita isso limitando a norma do gradiente antes de cada atualização.
- Algoritmos evolutivos: Estes métodos sem gradiente procuram soluções ao amostrar e selecionar candidatos sem calcular gradientes, o que os torna adequados para objetivos não diferenciáveis, como escolhas de hiperparâmetros.










