Ultralytics YOLO27: Entre na lista de espera.
Licenciar o YOLO
Voltar ao glossário da Ultralytics

Momentum (Optimization)

A otimização por momentum usa gradientes passados para acelerar o treinamento do modelo, suavizar atualizações ruidosas e melhorar a convergência, equilibrando a taxa de aprendizado.

Momentum é uma técnica de otimização que dá ao treinamento baseado em gradientes uma memória das atualizações anteriores. Ao combinar o gradiente atual com um histórico decrescente de gradientes anteriores, ela aumenta a velocidade nas direções consistentes e reduz os movimentos de vaivém. Isso ajuda os modelos de aprendizado de máquina a minimizar o objetivo de treinamento com mais eficiência. A otimização para mecanismos de busca diz respeito à visibilidade de sites; o momentum diz respeito às atualizações numéricas dos parâmetros do modelo.

Como funciona o Momentum#

Durante a descida do gradiente, um modelo ajusta seus pesos no sentido oposto ao gradiente — a direção em que sua função de perda aumenta mais rapidamente. O momentum clássico, também chamado de momentum de Polyak ou método da bola pesada, acrescenta inércia a esse movimento. Boris Polyak o apresentou em seu trabalho de 1964 sobre a aceleração de métodos iterativos.

O otimizador mantém um buffer de velocidade, com um valor acumulado para cada parâmetro. Cada atualização multiplica o buffer antigo por um coeficiente de momentum, soma o gradiente atual e subtrai dos pesos o buffer resultante multiplicado pela taxa de aprendizado. Em redes neurais, a retropropagação fornece esses gradientes; o otimizador mantém o buffer entre as atualizações.

O momentum é especialmente útil em superfícies de perda alongadas, nas quais a curvatura é acentuada na direção transversal ao vale e suave ao longo de seu fundo. Os gradientes que apontam repetidamente ao longo do vale se acumulam, enquanto os componentes alternados na direção transversal se cancelam parcialmente. Com a descida estocástica do gradiente, essa memória também suaviza as flutuações entre minilotes. A dinâmica do momentum em perdas quadráticas explica tanto a aceleração quanto as oscilações que ele pode introduzir perto de um mínimo.

O coeficiente de momentum, geralmente escrito como beta ou mu, costuma variar entre zero e um. Zero equivale à descida do gradiente comum; valores mais próximos de um retêm gradientes antigos por mais tempo. 0.9 é um valor inicial comum. Com um buffer de velocidade não normalizado e um gradiente constante, a velocidade acumulada se aproxima de dez vezes esse gradiente com 0.9, contra 100 vezes com 0.99. Por isso, o momentum e a taxa de aprendizado interagem fortemente durante o ajuste de hiperparâmetros.

Uma combinação excessivamente agressiva causa ultrapassagem do mínimo: as atualizações o atravessam repetidamente, provocando oscilações na perda ou divergência. Isso ocorre até mesmo em objetivos quadráticos suaves. Um cronograma da taxa de aprendizado altera a magnitude das atualizações ao longo do treinamento, enquanto o momentum determina por quanto tempo o histórico direcional persiste.

Dois algoritmos de otimização estreitamente relacionados usam esse histórico de maneiras diferentes:

  • O momentum de Nesterov avalia o gradiente em uma posição futura estimada com a velocidade retida, permitindo que o gradiente corrija o movimento previsto.
  • O Adam combina uma média do gradiente ponderada exponencialmente com uma média do gradiente ao quadrado, que dimensiona as atualizações separadamente para cada parâmetro. Seu beta1 controla a memória dos gradientes.

Um exemplo mínimo com PyTorch#

Este exemplo de PyTorch compara pontos iniciais e taxas de aprendizado idênticos em um objetivo quadrático alongado. A implementação de SGD oficial gerencia automaticamente o buffer de momentum.

import torch

# Curvature is 50 times greater along the second coordinate.
scale = torch.tensor([1.0, 50.0])

for momentum in (0.0, 0.9):
    weights = torch.tensor([5.0, 1.0], requires_grad=True)
    optimizer = torch.optim.SGD([weights], lr=0.015, momentum=momentum)

    for step in range(100):
        optimizer.zero_grad()
        loss = (scale * weights.square()).sum()
        loss.backward()
        optimizer.step()

    final_loss = (scale * weights.square()).sum().item()
    print(f"Momentum {momentum}: loss = {final_loss:.6f}")

Após 100 atualizações, a perda é de aproximadamente 0.056531 sem momentum e 0.000216 com momentum. O histórico direcional acumulado acelera o progresso ao longo da coordenada mais suave.

Usos no treinamento de visão computacional#

O momentum contribui para o treinamento de redes neurais convolucionais para classificação de imagens e detecção de objetos. O treinamento do Ultralytics YOLO ativa o momentum de Nesterov quando optimizer="SGD" é selecionado, e a configuração momentum controla o histórico de atualizações retido. A implementação do treinador passa esse coeficiente para o otimizador com nesterov=True.

Uma aplicação marcante é o procedimento original de treinamento do ResNet para ImageNet. Esses modelos usaram SGD com momentum 0.9, tamanho do lote de 256, decaimento de pesos de 0.0001 e taxa de aprendizado inicial de 0.1, reduzida em dez vezes quando o erro estagnava.

Explore as soluções

Visão computacional no desporto

Visão computacional no desporto

Descubra como o Ultralytics YOLO impulsiona a visão computacional no esporte com rastreamento de jogadores e bolas, análise de desempenho, insights para treinadores e reabilitação de atletas.
Saiba mais
Visão computacional para imagens aéreas

Visão computacional para imagens aéreas

Transforma imagens de drones e aéreas em informações em tempo real para a agricultura, a aquacultura, a conservação e a análise geoespacial com Ultralytics YOLO.
Saiba mais
Visão computacional no setor aeroespacial

Visão computacional no setor aeroespacial

Aplica visão computacional na indústria aeroespacial com Ultralytics YOLO para inspecionar aeronaves, detetar objetos estranhos na pista (FOD), apoiar operações aeroportuárias em terra e detetar defeitos em materiais compósitos.
Saiba mais
Visão computacional na segurança

Visão computacional na segurança

Protege todas as instalações com os modelos Ultralytics YOLO. A IA visual permite monitorizar perímetros, detetar ameaças, reconhecer matrículas e melhorar a segurança no local de trabalho.
Saiba mais
Visão computacional na robótica

Visão computacional na robótica

Potencia máquinas mais inteligentes com os modelos Ultralytics YOLO. A IA visual na robótica permite navegação autónoma, perceção, rastreamento de objetos e controlo em tempo real.
Saiba mais
Visão computacional na logística

Visão computacional na logística

Otimize a logística com os modelos Ultralytics YOLO. A IA de visão permite inspecionar pacotes, fazer triagem, rastrear veículos e monitorar a segurança em tempo real nos armazéns.
Saiba mais
Visão computacional no varejo

Visão computacional no varejo

Reinvente o varejo com os modelos Ultralytics YOLO. A IA de visão permite rastrear o estoque, monitorar prateleiras, gerenciar filas e obter insights mais inteligentes sobre clientes.
Saiba mais
Visão computacional na área da saúde

Visão computacional na área da saúde

Desenvolva soluções de saúde com os modelos Ultralytics YOLO. A IA de visão na área da saúde permite obter imagens médicas mais rapidamente, diagnósticos mais inteligentes e monitoramento de pacientes.
Saiba mais
Visão computacional na manufatura

Visão computacional na manufatura

Otimize a manufatura com modelos Ultralytics YOLO. A IA visual impulsiona o controle de qualidade, a detecção de defeitos, a conformidade com o uso de EPI e a automação da linha de montagem.
Saiba mais
Visão computacional no setor automotivo

Visão computacional no setor automotivo

Aplique visão computacional no setor automotivo com modelos Ultralytics YOLO. A IA visual aumenta a segurança viária, aprimora a assistência ao condutor e viabiliza a automação de veículos para estradas mais inteligentes.
Saiba mais
Visão computacional na agricultura

Visão computacional na agricultura

Leve a IA de visão à agricultura inteligente com os modelos Ultralytics YOLO. Aprimore o monitoramento de plantações, o rastreamento de animais e a agricultura de precisão para obter safras maiores e mais inteligentes.
Saiba mais

Vamos construir juntos o futuro da IA!

Comece sua jornada rumo ao futuro do aprendizado de máquina