Descubra como o Gradient Descent optimiza os modelos de IA como o Ultralytics YOLO, permitindo previsões precisas em tarefas que vão desde os cuidados de saúde aos carros autónomos.
O Gradient Descent é um algoritmo iterativo fundamental utilizado para minimizar uma função movendo-se na direção da descida mais acentuada. No contexto da aprendizagem automática (ML) e aprendizagem profunda (DL), actua como o mecanismo mecanismo de orientação que treina modelos para fazer previsões precisas. O objetivo principal é encontrar o conjunto ótimo de pesos do modelo que minimiza a função de perda, que representa a diferença entre as previsões do modelo e os valores-alvo reais. Pode visualizar este processo como um caminhante a tentar encontrar o fundo de um vale com nevoeiro denso; dando repetidamente passos na direção do declive mais acentuado, o caminhante acaba por atingir o ponto mais baixo. Este conceito central é mais explorado no Curso rápido de aprendizagem automáticaGoogle .
A mecânica central da Descida de Gradiente envolve o cálculo do gradiente - um vetor de derivadas parciais - da função de perda em relação a cada parâmetro. Este cálculo é efectuado de forma eficiente pelo algoritmo de retropropagação. Uma vez que o gradiente é determinado, o modelo actualiza os seus parâmetros dando um passo na direção oposta ao gradiente. O tamanho do O tamanho deste passo é controlado por um parâmetro crucial conhecido como a taxa de aprendizagem. Se a taxa de aprendizagem for demasiado elevada, o Se a taxa de aprendizagem for demasiado elevada, o algoritmo pode ultrapassar o mínimo; se for demasiado baixa, o treino pode demorar demasiado tempo. Este ciclo Este ciclo repete-se ao longo de muitas passagens pelo conjunto de dados, chamadas épocas, até que a perda se estabilize. Para uma perspetiva matemática, Khan Academy oferece uma lição sobre descida de gradiente que detalha o cálculo envolvido.
Existem diferentes variações do algoritmo para equilibrar a eficiência computacional e a velocidade de convergência:
Eis um exemplo conciso de como configurar um optimizador para treinar um Ultralytics YOLO11 do Ultralytics:
from ultralytics import YOLO
# Load the YOLO11 model
model = YOLO("yolo11n.pt")
# Train the model using the SGD optimizer with a specific learning rate
# The 'optimizer' argument allows you to select the gradient descent variant
results = model.train(data="coco8.yaml", epochs=50, optimizer="SGD", lr0=0.01)
O Gradient Descent é o motor por detrás de muitas aplicações transformadoras de IA em aplicações industriais e de cuidados de saúde.
Para compreender plenamente a Descida de Gradiente, é necessário distingui-la de termos relacionados. Enquanto a retropropagação calcula os gradientes (determinando a "direção"), o Gradiente Descendente é a algoritmo de otimização que actualiza os parâmetros (dando o "passo"). Além disso, enquanto o Gradiente Descendente padrão utiliza uma taxa de aprendizagem fixa, os algoritmos adaptativos como o optimizadorAdam ajustam a taxa de aprendizagem ajustam a taxa de aprendizagem dinamicamente para cada parâmetro, conduzindo frequentemente a uma convergência mais rápida, tal como descrito no Adam original. Desafios como o problema do problema do gradiente de fuga podem dificultar a Gradient Descent em redes muito profundas, necessitando de soluções arquitectónicas como a Normalização em lote ou conexões residuais. É possível encontrar visões gerais abrangentes destes desafios de otimização no blogue de Sebastian Ruder.