Explore o Adam para aprendizagem profunda. Saiba como ele combina momentum e RMSProp para uma convergência mais rápida em modelos como Ultralytics .
O Adam , abreviação de Adaptive Moment Estimation (Estimativa Adaptativa de Momento), é um sofisticado algoritmo de otimização amplamente utilizado para treinar modelos de aprendizagem profunda. Ele revolucionou o campo ao combinar as vantagens de duas outras extensões populares do descida de gradiente estocástico (SGD): Algoritmo de Gradiente Adaptativo (AdaGrad) e Propagação da Média Quadrática (RMSProp). Ao calcular taxas de aprendizagem adaptativas individuais para diferentes parâmetros a partir de estimativas do primeiro e segundo momentos dos gradientes, Adam as redes neurais convergem significativamente mais rápido do que os métodos tradicionais. A sua robustez e requisitos mínimos de ajuste tornam-no a escolha padrão para muitos profissionais que estão a iniciar um novo projeto de aprendizagem automática (ML).
Em sua essência, treinar um modelo envolve minimizar uma função de perda, que mede a diferença entre as previsões do modelo e os dados reais. Algoritmos padrão normalmente usam um tamanho de passo constante (taxa de aprendizagem) para descer a "paisagem de perda" em direção ao erro mínimo. No entanto, essa paisagem costuma ser complexa, apresentando ravinas e planaltos que podem prender algoritmos mais simples.
Adam isso mantendo dois buffers históricos para cada parâmetro:
Essa combinação permite que o otimizador dê passos maiores em áreas planas da paisagem e passos menores e mais cautelosos em áreas íngremes ou ruidosas. A mecânica específica é detalhada no artigoAdam fundamental Adam , de Kingma e Ba, que demonstrou sua superioridade empírica em várias tarefas de aprendizagem profunda (DL).
A versatilidade do Adam levou à sua adoção em praticamente todos os setores da inteligência artificial (IA).
Embora Adam geralmente mais rápido a convergir, é importante distingui-lo do Stochastic Gradient Descent (SGD). SGD atualiza os pesos do modelo usando uma taxa de aprendizagem fixa e é frequentemente preferido para as etapas finais do treino de modelos de deteção de objetos de última geração, pois às vezes pode alcançar uma generalização ligeiramente melhor (precisão final) nos dados de teste.
No entanto, Adam «adaptativo», o que significa que lida com o ajuste da taxa de aprendizagem automaticamente. Isso torna-o muito mais fácil de usar para experiências iniciais e arquiteturas complexas, onde ajustar SGD difícil. Para os utilizadores que gerem experiências na Ultralytics , alternar entre esses otimizadores para comparar o desempenho é frequentemente um passo fundamental no ajuste de hiperparâmetros.
Frameworks modernos como PyTorch e a Ultralytics facilitam a utilização Adam . Uma variante popular chamada AdamW (Adam decaimento de peso) é frequentemente recomendada, pois corrige problemas com a regularização no Adam original. Isso é particularmente eficaz para as arquiteturas mais recentes, como YOLO26, que se beneficiam da estabilidade AdamW .
O exemplo a seguir demonstra como treinar um modelo YOLO26 usando o AdamW :
from ultralytics import YOLO
# Load the cutting-edge YOLO26n model
model = YOLO("yolo26n.pt")
# Train the model using the 'AdamW' optimizer
# The 'optimizer' argument allows easy switching between SGD, Adam, AdamW, etc.
results = model.train(data="coco8.yaml", epochs=5, optimizer="AdamW")
Para programadores interessados nos fundamentos teóricos mais profundos, recursos como as Notas de Otimização CS231n da Stanford fornecem excelentes visualizações de como Adam a outros algoritmos, como RMSProp e AdaGrad. Além disso, a DocumentaçãoPyTorch oferece detalhes técnicos sobre os argumentos e especificidades de implementação disponíveis para personalização.